diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index a2330ff92..bb16fbc84 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -24,7 +24,7 @@ If applicable, add screenshots to help explain your problem. **Desktop (please complete the following information):** - OS: [e.g. mac/linux/windows] - - Version [e.g. 1.3.9] + - Version [e.g. 1.4.0] **Additional context** Add any other context about the problem here. diff --git a/CMakeLists.txt b/CMakeLists.txt index 9536399a0..ebe6bfa2d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.10.0) set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9" CACHE STRING "Minimum OS X deployment version") -project(Griddly VERSION 1.3.9) +project(Griddly VERSION 1.4.0) set(BINARY ${CMAKE_PROJECT_NAME}) @@ -133,12 +133,12 @@ if(WASM) file(GLOB_RECURSE JIDDLY_SOURCES "js/bindings/*.cpp") - add_executable(jiddly ${JIDDLY_SOURCES} ) - target_link_libraries(jiddly PRIVATE ${BINARY} yaml-cpp glm) + add_executable(griddlyjs ${JIDDLY_SOURCES} ) + target_link_libraries(griddlyjs PRIVATE ${BINARY} yaml-cpp glm) # These properties specify what kind of Emscripten build to perform and are assigned to our 'a-simple-triangle' executable target. set_target_properties( - jiddly + griddlyjs PROPERTIES LINK_FLAGS "-lembind -fexceptions -s ENVIRONMENT=web -s ALLOW_MEMORY_GROWTH=1 -sNO_DISABLE_EXCEPTION_THROWING -sASYNCIFY -sMODULARIZE=1" diff --git a/README.md b/README.md index a14fa588d..90dc0a47a 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -#

![Griddly Bear](resources/images/gvgai/oryx/bear2.png) Griddly ![Griddly Bear](resources/images/gvgai/oryx/bear2.png)

+#

![Griddly](resources/logo.png)

[![Discord Chat](https://img.shields.io/discord/728222413397164142.svg)](https://discord.gg/xuR8Dsv) diff --git a/bindings/python.cpp b/bindings/python.cpp index 07c6fd88f..a1341ebbf 100644 --- a/bindings/python.cpp +++ b/bindings/python.cpp @@ -12,7 +12,7 @@ namespace griddly { PYBIND11_MODULE(python_griddly, m) { m.doc() = "Griddly python bindings"; - m.attr("version") = "1.3.9"; + m.attr("version") = "1.4.0"; #ifndef NDEBUG spdlog::set_level(spdlog::level::debug); diff --git a/docs/_static/custom.css b/docs/_static/custom.css index aae786a78..99d3539d0 100644 --- a/docs/_static/custom.css +++ b/docs/_static/custom.css @@ -20,4 +20,12 @@ .embedded-video { text-align: center; -} \ No newline at end of file +} + +.level-gallery img { + max-height: 200px !important; + width: auto !important; + max-width: 200px !important; + height: auto !important; +} + diff --git a/docs/conf.py b/docs/conf.py index 16d830b03..cf3b621d6 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -22,7 +22,7 @@ author = 'Chris Bamford' # The full version, including alpha/beta/rc tags -release = '1.3.9' +release = '1.4.0' # -- General configuration --------------------------------------------------- diff --git a/docs/games/Bait/img/Bait-level-Block2D-0.png b/docs/games/Bait/img/Bait-level-Block2D-0.png index d784fd97e..af95ef5f8 100644 Binary files a/docs/games/Bait/img/Bait-level-Block2D-0.png and b/docs/games/Bait/img/Bait-level-Block2D-0.png differ diff --git a/docs/games/Bait/img/Bait-level-Block2D-1.png b/docs/games/Bait/img/Bait-level-Block2D-1.png index 7a791ad8d..69a5e700f 100644 Binary files a/docs/games/Bait/img/Bait-level-Block2D-1.png and b/docs/games/Bait/img/Bait-level-Block2D-1.png differ diff --git a/docs/games/Bait/img/Bait-level-Block2D-2.png b/docs/games/Bait/img/Bait-level-Block2D-2.png index 7c8e897b6..0ba22d932 100644 Binary files a/docs/games/Bait/img/Bait-level-Block2D-2.png and b/docs/games/Bait/img/Bait-level-Block2D-2.png differ diff --git a/docs/games/Bait/img/Bait-level-Block2D-3.png b/docs/games/Bait/img/Bait-level-Block2D-3.png index aa6b2ec8d..6c9f04b37 100644 Binary files a/docs/games/Bait/img/Bait-level-Block2D-3.png and b/docs/games/Bait/img/Bait-level-Block2D-3.png differ diff --git a/docs/games/Bait/img/Bait-level-Block2D-4.png b/docs/games/Bait/img/Bait-level-Block2D-4.png index efb1b3b17..f9ed98d26 100644 Binary files a/docs/games/Bait/img/Bait-level-Block2D-4.png and b/docs/games/Bait/img/Bait-level-Block2D-4.png differ diff --git a/docs/games/Bait/img/Bait-level-Vector-0.png b/docs/games/Bait/img/Bait-level-Vector-0.png index c0b1323be..080179f91 100644 Binary files a/docs/games/Bait/img/Bait-level-Vector-0.png and b/docs/games/Bait/img/Bait-level-Vector-0.png differ diff --git a/docs/games/Bait/img/Bait-level-Vector-1.png b/docs/games/Bait/img/Bait-level-Vector-1.png index 3c530b09c..6cbedd7f3 100644 Binary files a/docs/games/Bait/img/Bait-level-Vector-1.png and b/docs/games/Bait/img/Bait-level-Vector-1.png differ diff --git a/docs/games/Bait/img/Bait-level-Vector-2.png b/docs/games/Bait/img/Bait-level-Vector-2.png index a85c94c6e..32d4513a4 100644 Binary files a/docs/games/Bait/img/Bait-level-Vector-2.png and b/docs/games/Bait/img/Bait-level-Vector-2.png differ diff --git a/docs/games/Bait/img/Bait-level-Vector-3.png b/docs/games/Bait/img/Bait-level-Vector-3.png index 8b3d31509..ea27a7232 100644 Binary files a/docs/games/Bait/img/Bait-level-Vector-3.png and b/docs/games/Bait/img/Bait-level-Vector-3.png differ diff --git a/docs/games/Bait/img/Bait-level-Vector-4.png b/docs/games/Bait/img/Bait-level-Vector-4.png index e1eadc174..cbebb4efd 100644 Binary files a/docs/games/Bait/img/Bait-level-Vector-4.png and b/docs/games/Bait/img/Bait-level-Vector-4.png differ diff --git a/docs/games/Bait/img/Bait-tile-avatar-Vector.png b/docs/games/Bait/img/Bait-tile-avatar-Vector.png index 6985a0878..3fb1db731 100644 Binary files a/docs/games/Bait/img/Bait-tile-avatar-Vector.png and b/docs/games/Bait/img/Bait-tile-avatar-Vector.png differ diff --git a/docs/games/Bait/img/Bait-tile-box-Block2D.png b/docs/games/Bait/img/Bait-tile-box-Block2D.png index 5556781fb..2cee22959 100644 Binary files a/docs/games/Bait/img/Bait-tile-box-Block2D.png and b/docs/games/Bait/img/Bait-tile-box-Block2D.png differ diff --git a/docs/games/Bait/img/Bait-tile-box-Vector.png b/docs/games/Bait/img/Bait-tile-box-Vector.png index 1460b3271..6985a0878 100644 Binary files a/docs/games/Bait/img/Bait-tile-box-Vector.png and b/docs/games/Bait/img/Bait-tile-box-Vector.png differ diff --git a/docs/games/Bait/img/Bait-tile-goal-Vector.png b/docs/games/Bait/img/Bait-tile-goal-Vector.png index a5cdcff22..e7623ec6f 100644 Binary files a/docs/games/Bait/img/Bait-tile-goal-Vector.png and b/docs/games/Bait/img/Bait-tile-goal-Vector.png differ diff --git a/docs/games/Bait/img/Bait-tile-hole-Vector.png b/docs/games/Bait/img/Bait-tile-hole-Vector.png index 50a43e1f7..1460b3271 100644 Binary files a/docs/games/Bait/img/Bait-tile-hole-Vector.png and b/docs/games/Bait/img/Bait-tile-hole-Vector.png differ diff --git a/docs/games/Bait/img/Bait-tile-key-Block2D.png b/docs/games/Bait/img/Bait-tile-key-Block2D.png index f3a371b8a..009ae95f9 100644 Binary files a/docs/games/Bait/img/Bait-tile-key-Block2D.png and b/docs/games/Bait/img/Bait-tile-key-Block2D.png differ diff --git a/docs/games/Bait/img/Bait-tile-key-Vector.png b/docs/games/Bait/img/Bait-tile-key-Vector.png index 77a281909..bbb0c9965 100644 Binary files a/docs/games/Bait/img/Bait-tile-key-Vector.png and b/docs/games/Bait/img/Bait-tile-key-Vector.png differ diff --git a/docs/games/Bait/img/Bait-tile-mushroom-Vector.png b/docs/games/Bait/img/Bait-tile-mushroom-Vector.png index f5ac61ae0..a5cdcff22 100644 Binary files a/docs/games/Bait/img/Bait-tile-mushroom-Vector.png and b/docs/games/Bait/img/Bait-tile-mushroom-Vector.png differ diff --git a/docs/games/Bait/img/Bait-tile-wall-Block2D.png b/docs/games/Bait/img/Bait-tile-wall-Block2D.png index 2940576bf..354d34021 100644 Binary files a/docs/games/Bait/img/Bait-tile-wall-Block2D.png and b/docs/games/Bait/img/Bait-tile-wall-Block2D.png differ diff --git a/docs/games/Bait/img/Bait-tile-wall-Vector.png b/docs/games/Bait/img/Bait-tile-wall-Vector.png index 0dea1ddca..c699d613a 100644 Binary files a/docs/games/Bait/img/Bait-tile-wall-Vector.png and b/docs/games/Bait/img/Bait-tile-wall-Vector.png differ diff --git a/docs/games/Bait/index.rst b/docs/games/Bait/index.rst index 353254850..6b81ce4c9 100644 --- a/docs/games/Bait/index.rst +++ b/docs/games/Bait/index.rst @@ -16,6 +16,7 @@ Levels --------- .. list-table:: Levels + :class: level-gallery :header-rows: 1 * - diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-0.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-0.png index d784fd97e..af95ef5f8 100644 Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-0.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-0.png differ diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-1.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-1.png index 7a791ad8d..69a5e700f 100644 Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-1.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-1.png differ diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-2.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-2.png index 7c8e897b6..0ba22d932 100644 Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-2.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-2.png differ diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-3.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-3.png index aa6b2ec8d..6c9f04b37 100644 Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-3.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-3.png differ diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-4.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-4.png index efb1b3b17..f9ed98d26 100644 Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-4.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-4.png differ diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-0.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-0.png index c0b1323be..080179f91 100644 Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-0.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-0.png differ diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-1.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-1.png index 3c530b09c..6cbedd7f3 100644 Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-1.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-1.png differ diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-2.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-2.png index a85c94c6e..32d4513a4 100644 Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-2.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-2.png differ diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-3.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-3.png index 8b3d31509..ea27a7232 100644 Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-3.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-3.png differ diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-4.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-4.png index e1eadc174..cbebb4efd 100644 Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-4.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-4.png differ diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-avatar-Vector.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-avatar-Vector.png index 6985a0878..3fb1db731 100644 Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-avatar-Vector.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-avatar-Vector.png differ diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-box-Block2D.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-box-Block2D.png index 5556781fb..2cee22959 100644 Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-box-Block2D.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-box-Block2D.png differ diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-box-Vector.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-box-Vector.png index 1460b3271..6985a0878 100644 Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-box-Vector.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-box-Vector.png differ diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-goal-Vector.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-goal-Vector.png index a5cdcff22..e7623ec6f 100644 Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-goal-Vector.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-goal-Vector.png differ diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-hole-Vector.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-hole-Vector.png index 50a43e1f7..1460b3271 100644 Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-hole-Vector.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-hole-Vector.png differ diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-key-Block2D.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-key-Block2D.png index f3a371b8a..009ae95f9 100644 Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-key-Block2D.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-key-Block2D.png differ diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-key-Vector.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-key-Vector.png index 77a281909..bbb0c9965 100644 Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-key-Vector.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-key-Vector.png differ diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-mushroom-Vector.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-mushroom-Vector.png index f5ac61ae0..a5cdcff22 100644 Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-mushroom-Vector.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-mushroom-Vector.png differ diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-wall-Block2D.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-wall-Block2D.png index 2940576bf..354d34021 100644 Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-wall-Block2D.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-wall-Block2D.png differ diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-wall-Vector.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-wall-Vector.png index 0dea1ddca..c699d613a 100644 Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-wall-Vector.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-wall-Vector.png differ diff --git a/docs/games/Bait_With_Keys/index.rst b/docs/games/Bait_With_Keys/index.rst index c51093865..993382610 100644 --- a/docs/games/Bait_With_Keys/index.rst +++ b/docs/games/Bait_With_Keys/index.rst @@ -16,6 +16,7 @@ Levels --------- .. list-table:: Levels + :class: level-gallery :header-rows: 1 * - diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-0.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-0.png index a598b7af7..83e7e34bf 100644 Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-0.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-0.png differ diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-1.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-1.png index 2d70394f6..450f29787 100644 Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-1.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-1.png differ diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-2.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-2.png index ed437d837..a7ac9076b 100644 Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-2.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-2.png differ diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-3.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-3.png index 1d28bce65..0fd7caa26 100644 Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-3.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-3.png differ diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-4.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-4.png index f9a62ddf2..1e5bfb4ae 100644 Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-4.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-4.png differ diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-5.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-5.png index 4931ffb98..364ee0367 100644 Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-5.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-5.png differ diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-6.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-6.png index 02cf0157d..5bce1477e 100644 Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-6.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-6.png differ diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-7.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-7.png index ed437d837..a7ac9076b 100644 Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-7.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-7.png differ diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-8.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-8.png index e2675478a..cc825c258 100644 Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-8.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-8.png differ diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-9.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-9.png index de21d75c1..1e0fda094 100644 Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-9.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-9.png differ diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-0.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-0.png index 163d98539..d2856442e 100644 Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-0.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-0.png differ diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-1.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-1.png index 821ce42f3..dd5ab3c71 100644 Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-1.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-1.png differ diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-2.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-2.png index 687bdfbf6..fbda95f52 100644 Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-2.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-2.png differ diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-3.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-3.png index 79269be2c..a485f8ff4 100644 Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-3.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-3.png differ diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-4.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-4.png index af634c717..86c45c7bd 100644 Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-4.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-4.png differ diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-5.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-5.png index 150ebed02..c331a49a7 100644 Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-5.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-5.png differ diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-6.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-6.png index 79de5a154..07aa502ed 100644 Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-6.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-6.png differ diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-7.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-7.png index 687bdfbf6..fbda95f52 100644 Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-7.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-7.png differ diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-8.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-8.png index e4ff8bad3..2cc70fd07 100644 Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-8.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-8.png differ diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-9.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-9.png index 854da06e3..348d4d4a6 100644 Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-9.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-9.png differ diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-butterfly-Vector.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-butterfly-Vector.png index c23edfdd3..a2f51f612 100644 Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-butterfly-Vector.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-butterfly-Vector.png differ diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-catcher-Vector.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-catcher-Vector.png index c0ac27968..c23edfdd3 100644 Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-catcher-Vector.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-catcher-Vector.png differ diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-cocoon-Vector.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-cocoon-Vector.png index 50a43e1f7..1460b3271 100644 Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-cocoon-Vector.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-cocoon-Vector.png differ diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-spider-Vector.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-spider-Vector.png index 5423baded..c0ac27968 100644 Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-spider-Vector.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-spider-Vector.png differ diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-wall-Block2D.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-wall-Block2D.png index 99a0dd88a..4ff6f5785 100644 Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-wall-Block2D.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-wall-Block2D.png differ diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-wall-Vector.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-wall-Vector.png index 758055b8f..7d7ba957a 100644 Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-wall-Vector.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-wall-Vector.png differ diff --git a/docs/games/Butterflies_and_Spiders/index.rst b/docs/games/Butterflies_and_Spiders/index.rst index 3cd5f2f04..649bd4659 100644 --- a/docs/games/Butterflies_and_Spiders/index.rst +++ b/docs/games/Butterflies_and_Spiders/index.rst @@ -19,6 +19,7 @@ Levels --------- .. list-table:: Levels + :class: level-gallery :header-rows: 1 * - diff --git a/docs/games/Clusters/img/Clusters-level-Block2D-0.png b/docs/games/Clusters/img/Clusters-level-Block2D-0.png index 1dfd15e40..716016102 100644 Binary files a/docs/games/Clusters/img/Clusters-level-Block2D-0.png and b/docs/games/Clusters/img/Clusters-level-Block2D-0.png differ diff --git a/docs/games/Clusters/img/Clusters-level-Block2D-1.png b/docs/games/Clusters/img/Clusters-level-Block2D-1.png index 3d0ad655b..902bb2a53 100644 Binary files a/docs/games/Clusters/img/Clusters-level-Block2D-1.png and b/docs/games/Clusters/img/Clusters-level-Block2D-1.png differ diff --git a/docs/games/Clusters/img/Clusters-level-Block2D-2.png b/docs/games/Clusters/img/Clusters-level-Block2D-2.png index bf5f97d45..3b1143c4e 100644 Binary files a/docs/games/Clusters/img/Clusters-level-Block2D-2.png and b/docs/games/Clusters/img/Clusters-level-Block2D-2.png differ diff --git a/docs/games/Clusters/img/Clusters-level-Block2D-3.png b/docs/games/Clusters/img/Clusters-level-Block2D-3.png index c6b8d4153..5fa9434c1 100644 Binary files a/docs/games/Clusters/img/Clusters-level-Block2D-3.png and b/docs/games/Clusters/img/Clusters-level-Block2D-3.png differ diff --git a/docs/games/Clusters/img/Clusters-level-Block2D-4.png b/docs/games/Clusters/img/Clusters-level-Block2D-4.png index f6b701fd4..451342bd8 100644 Binary files a/docs/games/Clusters/img/Clusters-level-Block2D-4.png and b/docs/games/Clusters/img/Clusters-level-Block2D-4.png differ diff --git a/docs/games/Clusters/img/Clusters-level-Vector-0.png b/docs/games/Clusters/img/Clusters-level-Vector-0.png index 4e2f284be..47914b365 100644 Binary files a/docs/games/Clusters/img/Clusters-level-Vector-0.png and b/docs/games/Clusters/img/Clusters-level-Vector-0.png differ diff --git a/docs/games/Clusters/img/Clusters-level-Vector-1.png b/docs/games/Clusters/img/Clusters-level-Vector-1.png index bfee64909..7a73f6b26 100644 Binary files a/docs/games/Clusters/img/Clusters-level-Vector-1.png and b/docs/games/Clusters/img/Clusters-level-Vector-1.png differ diff --git a/docs/games/Clusters/img/Clusters-level-Vector-2.png b/docs/games/Clusters/img/Clusters-level-Vector-2.png index d7f38bd91..ca4ef2390 100644 Binary files a/docs/games/Clusters/img/Clusters-level-Vector-2.png and b/docs/games/Clusters/img/Clusters-level-Vector-2.png differ diff --git a/docs/games/Clusters/img/Clusters-level-Vector-3.png b/docs/games/Clusters/img/Clusters-level-Vector-3.png index 0a42e1db6..063409d0d 100644 Binary files a/docs/games/Clusters/img/Clusters-level-Vector-3.png and b/docs/games/Clusters/img/Clusters-level-Vector-3.png differ diff --git a/docs/games/Clusters/img/Clusters-level-Vector-4.png b/docs/games/Clusters/img/Clusters-level-Vector-4.png index c41ea274d..c440322b4 100644 Binary files a/docs/games/Clusters/img/Clusters-level-Vector-4.png and b/docs/games/Clusters/img/Clusters-level-Vector-4.png differ diff --git a/docs/games/Clusters/img/Clusters-tile-avatar-Vector.png b/docs/games/Clusters/img/Clusters-tile-avatar-Vector.png index 449dbd771..bc5c2b3ee 100644 Binary files a/docs/games/Clusters/img/Clusters-tile-avatar-Vector.png and b/docs/games/Clusters/img/Clusters-tile-avatar-Vector.png differ diff --git a/docs/games/Clusters/img/Clusters-tile-blue_block-Vector.png b/docs/games/Clusters/img/Clusters-tile-blue_block-Vector.png index cddd4d04e..449dbd771 100644 Binary files a/docs/games/Clusters/img/Clusters-tile-blue_block-Vector.png and b/docs/games/Clusters/img/Clusters-tile-blue_block-Vector.png differ diff --git a/docs/games/Clusters/img/Clusters-tile-blue_box-Block2D.png b/docs/games/Clusters/img/Clusters-tile-blue_box-Block2D.png index 04c0f1ab7..02cfa53bd 100644 Binary files a/docs/games/Clusters/img/Clusters-tile-blue_box-Block2D.png and b/docs/games/Clusters/img/Clusters-tile-blue_box-Block2D.png differ diff --git a/docs/games/Clusters/img/Clusters-tile-blue_box-Vector.png b/docs/games/Clusters/img/Clusters-tile-blue_box-Vector.png index 1ea637a7b..a3febd5dd 100644 Binary files a/docs/games/Clusters/img/Clusters-tile-blue_box-Vector.png and b/docs/games/Clusters/img/Clusters-tile-blue_box-Vector.png differ diff --git a/docs/games/Clusters/img/Clusters-tile-green_block-Vector.png b/docs/games/Clusters/img/Clusters-tile-green_block-Vector.png index bc5c2b3ee..1ea637a7b 100644 Binary files a/docs/games/Clusters/img/Clusters-tile-green_block-Vector.png and b/docs/games/Clusters/img/Clusters-tile-green_block-Vector.png differ diff --git a/docs/games/Clusters/img/Clusters-tile-green_box-Block2D.png b/docs/games/Clusters/img/Clusters-tile-green_box-Block2D.png index e7ce880ab..462b72f1e 100644 Binary files a/docs/games/Clusters/img/Clusters-tile-green_box-Block2D.png and b/docs/games/Clusters/img/Clusters-tile-green_box-Block2D.png differ diff --git a/docs/games/Clusters/img/Clusters-tile-green_box-Vector.png b/docs/games/Clusters/img/Clusters-tile-green_box-Vector.png index bdb0ce86a..1ea637a7b 100644 Binary files a/docs/games/Clusters/img/Clusters-tile-green_box-Vector.png and b/docs/games/Clusters/img/Clusters-tile-green_box-Vector.png differ diff --git a/docs/games/Clusters/img/Clusters-tile-red_block-Vector.png b/docs/games/Clusters/img/Clusters-tile-red_block-Vector.png index c59c09c03..cddd4d04e 100644 Binary files a/docs/games/Clusters/img/Clusters-tile-red_block-Vector.png and b/docs/games/Clusters/img/Clusters-tile-red_block-Vector.png differ diff --git a/docs/games/Clusters/img/Clusters-tile-red_box-Block2D.png b/docs/games/Clusters/img/Clusters-tile-red_box-Block2D.png index 70e7a6cfc..e97e205e3 100644 Binary files a/docs/games/Clusters/img/Clusters-tile-red_box-Block2D.png and b/docs/games/Clusters/img/Clusters-tile-red_box-Block2D.png differ diff --git a/docs/games/Clusters/img/Clusters-tile-red_box-Vector.png b/docs/games/Clusters/img/Clusters-tile-red_box-Vector.png index 1843eaae9..a3febd5dd 100644 Binary files a/docs/games/Clusters/img/Clusters-tile-red_box-Vector.png and b/docs/games/Clusters/img/Clusters-tile-red_box-Vector.png differ diff --git a/docs/games/Clusters/img/Clusters-tile-spike-Block2D.png b/docs/games/Clusters/img/Clusters-tile-spike-Block2D.png index b19a62955..4e0852ee5 100644 Binary files a/docs/games/Clusters/img/Clusters-tile-spike-Block2D.png and b/docs/games/Clusters/img/Clusters-tile-spike-Block2D.png differ diff --git a/docs/games/Clusters/img/Clusters-tile-spike-Vector.png b/docs/games/Clusters/img/Clusters-tile-spike-Vector.png index 8722650d1..449dbd771 100644 Binary files a/docs/games/Clusters/img/Clusters-tile-spike-Vector.png and b/docs/games/Clusters/img/Clusters-tile-spike-Vector.png differ diff --git a/docs/games/Clusters/img/Clusters-tile-wall-Block2D.png b/docs/games/Clusters/img/Clusters-tile-wall-Block2D.png index 2940576bf..354d34021 100644 Binary files a/docs/games/Clusters/img/Clusters-tile-wall-Block2D.png and b/docs/games/Clusters/img/Clusters-tile-wall-Block2D.png differ diff --git a/docs/games/Clusters/img/Clusters-tile-wall-Vector.png b/docs/games/Clusters/img/Clusters-tile-wall-Vector.png index 91397096b..bc5c2b3ee 100644 Binary files a/docs/games/Clusters/img/Clusters-tile-wall-Vector.png and b/docs/games/Clusters/img/Clusters-tile-wall-Vector.png differ diff --git a/docs/games/Clusters/index.rst b/docs/games/Clusters/index.rst index be2fa8ef5..1b2a5dcfd 100644 --- a/docs/games/Clusters/index.rst +++ b/docs/games/Clusters/index.rst @@ -16,6 +16,7 @@ Levels --------- .. list-table:: Levels + :class: level-gallery :header-rows: 1 * - diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-0.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-0.png index e08f72af0..4482602f6 100644 Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-0.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-0.png differ diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-1.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-1.png index e08f72af0..4482602f6 100644 Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-1.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-1.png differ diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-2.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-2.png index 7e5bd5734..273048305 100644 Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-2.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-2.png differ diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-3.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-3.png index 927ca05a0..d8d385146 100644 Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-3.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-3.png differ diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-4.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-4.png index 965458aba..e8731ad45 100644 Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-4.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-4.png differ diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-5.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-5.png index 63ecb598f..abb456247 100644 Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-5.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-5.png differ diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Sprite2D-2.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Sprite2D-2.png index 573d02fe3..f3464f673 100644 Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Sprite2D-2.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Sprite2D-2.png differ diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Sprite2D-3.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Sprite2D-3.png index 4472f05d5..f7584150b 100644 Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Sprite2D-3.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Sprite2D-3.png differ diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Sprite2D-4.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Sprite2D-4.png index bf84e2527..130fff973 100644 Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Sprite2D-4.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Sprite2D-4.png differ diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Sprite2D-5.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Sprite2D-5.png index b97ca4ff6..16500dd79 100644 Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Sprite2D-5.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Sprite2D-5.png differ diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-0.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-0.png index a6b8fdf37..71fd39ba1 100644 Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-0.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-0.png differ diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-1.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-1.png index a6b8fdf37..71fd39ba1 100644 Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-1.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-1.png differ diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-2.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-2.png index 11e729c64..e05782f3b 100644 Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-2.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-2.png differ diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-3.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-3.png index 5eb4ce51a..c01d45924 100644 Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-3.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-3.png differ diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-4.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-4.png index 91312faad..e665e8c01 100644 Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-4.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-4.png differ diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-5.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-5.png index 1e02b03d6..c801bb6a0 100644 Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-5.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-5.png differ diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-avatar-Block2D.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-avatar-Block2D.png index e163562b3..e1720c195 100644 Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-avatar-Block2D.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-avatar-Block2D.png differ diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-avatar-Vector.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-avatar-Vector.png index 3b1230202..0efac0d90 100644 Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-avatar-Vector.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-avatar-Vector.png differ diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-boiling_water-Vector.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-boiling_water-Vector.png index 81269459b..3b1230202 100644 Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-boiling_water-Vector.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-boiling_water-Vector.png differ diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-key-Block2D.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-key-Block2D.png index 40a6d056a..a50ac3590 100644 Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-key-Block2D.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-key-Block2D.png differ diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-key-Sprite2D.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-key-Sprite2D.png index af95f3e10..c0761c930 100644 Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-key-Sprite2D.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-key-Sprite2D.png differ diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-key-Vector.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-key-Vector.png index b777829b0..34f07f038 100644 Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-key-Vector.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-key-Vector.png differ diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-lock-Block2D.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-lock-Block2D.png index a284f9eb9..48d905a59 100644 Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-lock-Block2D.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-lock-Block2D.png differ diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-lock-Vector.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-lock-Vector.png index 0efac0d90..3f6bf0a16 100644 Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-lock-Vector.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-lock-Vector.png differ diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-raw_pasta-Vector.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-raw_pasta-Vector.png index fd002494a..34f07f038 100644 Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-raw_pasta-Vector.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-raw_pasta-Vector.png differ diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-tomato-Vector.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-tomato-Vector.png index 55f2af5df..81269459b 100644 Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-tomato-Vector.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-tomato-Vector.png differ diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-tuna-Vector.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-tuna-Vector.png index e786c582e..b777829b0 100644 Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-tuna-Vector.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-tuna-Vector.png differ diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-wall-Block2D.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-wall-Block2D.png index 40a6d056a..a50ac3590 100644 Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-wall-Block2D.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-wall-Block2D.png differ diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-wall-Vector.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-wall-Vector.png index 40f1980b9..3b1230202 100644 Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-wall-Vector.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-wall-Vector.png differ diff --git a/docs/games/Cook_Me_Pasta/index.rst b/docs/games/Cook_Me_Pasta/index.rst index 96d597248..88610e7cb 100644 --- a/docs/games/Cook_Me_Pasta/index.rst +++ b/docs/games/Cook_Me_Pasta/index.rst @@ -16,6 +16,7 @@ Levels --------- .. list-table:: Levels + :class: level-gallery :header-rows: 1 * - diff --git a/docs/games/Doggo/img/Doggo-level-Block2D-0.png b/docs/games/Doggo/img/Doggo-level-Block2D-0.png index 7fd941612..a7c0f7c1a 100644 Binary files a/docs/games/Doggo/img/Doggo-level-Block2D-0.png and b/docs/games/Doggo/img/Doggo-level-Block2D-0.png differ diff --git a/docs/games/Doggo/img/Doggo-level-Block2D-1.png b/docs/games/Doggo/img/Doggo-level-Block2D-1.png index 8208d25ff..b83a0c714 100644 Binary files a/docs/games/Doggo/img/Doggo-level-Block2D-1.png and b/docs/games/Doggo/img/Doggo-level-Block2D-1.png differ diff --git a/docs/games/Doggo/img/Doggo-level-Block2D-2.png b/docs/games/Doggo/img/Doggo-level-Block2D-2.png index d60d0000e..ba61b0f5d 100644 Binary files a/docs/games/Doggo/img/Doggo-level-Block2D-2.png and b/docs/games/Doggo/img/Doggo-level-Block2D-2.png differ diff --git a/docs/games/Doggo/img/Doggo-level-Block2D-3.png b/docs/games/Doggo/img/Doggo-level-Block2D-3.png index 5d51ab5d6..436893b11 100644 Binary files a/docs/games/Doggo/img/Doggo-level-Block2D-3.png and b/docs/games/Doggo/img/Doggo-level-Block2D-3.png differ diff --git a/docs/games/Doggo/img/Doggo-level-Block2D-4.png b/docs/games/Doggo/img/Doggo-level-Block2D-4.png index 3fff66993..f3c643116 100644 Binary files a/docs/games/Doggo/img/Doggo-level-Block2D-4.png and b/docs/games/Doggo/img/Doggo-level-Block2D-4.png differ diff --git a/docs/games/Doggo/img/Doggo-level-Vector-0.png b/docs/games/Doggo/img/Doggo-level-Vector-0.png index 94663168a..3cfffad54 100644 Binary files a/docs/games/Doggo/img/Doggo-level-Vector-0.png and b/docs/games/Doggo/img/Doggo-level-Vector-0.png differ diff --git a/docs/games/Doggo/img/Doggo-level-Vector-1.png b/docs/games/Doggo/img/Doggo-level-Vector-1.png index c1445507a..6c998fec7 100644 Binary files a/docs/games/Doggo/img/Doggo-level-Vector-1.png and b/docs/games/Doggo/img/Doggo-level-Vector-1.png differ diff --git a/docs/games/Doggo/img/Doggo-level-Vector-2.png b/docs/games/Doggo/img/Doggo-level-Vector-2.png index c3e8d66d5..04cde3c5f 100644 Binary files a/docs/games/Doggo/img/Doggo-level-Vector-2.png and b/docs/games/Doggo/img/Doggo-level-Vector-2.png differ diff --git a/docs/games/Doggo/img/Doggo-level-Vector-3.png b/docs/games/Doggo/img/Doggo-level-Vector-3.png index c88e29cc3..f2b554467 100644 Binary files a/docs/games/Doggo/img/Doggo-level-Vector-3.png and b/docs/games/Doggo/img/Doggo-level-Vector-3.png differ diff --git a/docs/games/Doggo/img/Doggo-level-Vector-4.png b/docs/games/Doggo/img/Doggo-level-Vector-4.png index 1554df2eb..b448d44d4 100644 Binary files a/docs/games/Doggo/img/Doggo-level-Vector-4.png and b/docs/games/Doggo/img/Doggo-level-Vector-4.png differ diff --git a/docs/games/Doggo/img/Doggo-tile-doggo-Vector.png b/docs/games/Doggo/img/Doggo-tile-doggo-Vector.png index 1460b3271..a5cdcff22 100644 Binary files a/docs/games/Doggo/img/Doggo-tile-doggo-Vector.png and b/docs/games/Doggo/img/Doggo-tile-doggo-Vector.png differ diff --git a/docs/games/Doggo/img/Doggo-tile-stick-Vector.png b/docs/games/Doggo/img/Doggo-tile-stick-Vector.png index 50a43e1f7..1460b3271 100644 Binary files a/docs/games/Doggo/img/Doggo-tile-stick-Vector.png and b/docs/games/Doggo/img/Doggo-tile-stick-Vector.png differ diff --git a/docs/games/Doggo/img/Doggo-tile-wall-Block2D.png b/docs/games/Doggo/img/Doggo-tile-wall-Block2D.png index 672268aa4..b98b77ffc 100644 Binary files a/docs/games/Doggo/img/Doggo-tile-wall-Block2D.png and b/docs/games/Doggo/img/Doggo-tile-wall-Block2D.png differ diff --git a/docs/games/Doggo/img/Doggo-tile-wall-Vector.png b/docs/games/Doggo/img/Doggo-tile-wall-Vector.png index f5ac61ae0..6985a0878 100644 Binary files a/docs/games/Doggo/img/Doggo-tile-wall-Vector.png and b/docs/games/Doggo/img/Doggo-tile-wall-Vector.png differ diff --git a/docs/games/Doggo/index.rst b/docs/games/Doggo/index.rst index ffa6f745c..7af01cd0a 100644 --- a/docs/games/Doggo/index.rst +++ b/docs/games/Doggo/index.rst @@ -16,6 +16,7 @@ Levels --------- .. list-table:: Levels + :class: level-gallery :header-rows: 1 * - diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-0.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-0.png index f82ef56a5..7a92c16b5 100644 Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-0.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-0.png differ diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-1.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-1.png index 537c7251c..c76d316c2 100644 Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-1.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-1.png differ diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-2.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-2.png index 97e24a7f6..2022c131f 100644 Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-2.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-2.png differ diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-3.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-3.png index 58fae4039..442e15e0c 100644 Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-3.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-3.png differ diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-4.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-4.png index 83c51ba9b..ebd513251 100644 Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-4.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-4.png differ diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-0.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-0.png index bfc4d4a07..ae51995da 100644 Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-0.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-0.png differ diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-1.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-1.png index b6308dd3b..936b7275e 100644 Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-1.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-1.png differ diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-2.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-2.png index 2cab92ce9..f5c956e6d 100644 Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-2.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-2.png differ diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-3.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-3.png index 82588811d..9f5d17d1c 100644 Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-3.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-3.png differ diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-4.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-4.png index 020c2cdf7..a5307d5f9 100644 Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-4.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-4.png differ diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-bookshelf-Block2D.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-bookshelf-Block2D.png index 2161e673f..9ecb00099 100644 Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-bookshelf-Block2D.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-bookshelf-Block2D.png differ diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-bookshelf-Vector.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-bookshelf-Vector.png index 449dbd771..bc5c2b3ee 100644 Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-bookshelf-Vector.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-bookshelf-Vector.png differ diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-chair-Block2D.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-chair-Block2D.png index 9ee6aa806..2e1cd0025 100644 Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-chair-Block2D.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-chair-Block2D.png differ diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-chair-Vector.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-chair-Vector.png index cddd4d04e..449dbd771 100644 Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-chair-Vector.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-chair-Vector.png differ diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-coffin_bed-Vector.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-coffin_bed-Vector.png index 1ea637a7b..a3febd5dd 100644 Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-coffin_bed-Vector.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-coffin_bed-Vector.png differ diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-doggo-Block2D.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-doggo-Block2D.png index ed53dc4fb..48d075036 100644 Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-doggo-Block2D.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-doggo-Block2D.png differ diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-doggo-Vector.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-doggo-Vector.png index a3febd5dd..cddd4d04e 100644 Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-doggo-Vector.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-doggo-Vector.png differ diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-door-Block2D.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-door-Block2D.png index 93283aabd..b41e5a08d 100644 Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-door-Block2D.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-door-Block2D.png differ diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-door-Vector.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-door-Vector.png index bc5c2b3ee..1ea637a7b 100644 Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-door-Vector.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-door-Vector.png differ diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-drunk_dwarf-Vector.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-drunk_dwarf-Vector.png index bdb0ce86a..1ea637a7b 100644 Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-drunk_dwarf-Vector.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-drunk_dwarf-Vector.png differ diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-key-Vector.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-key-Vector.png index c59c09c03..cddd4d04e 100644 Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-key-Vector.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-key-Vector.png differ diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-table-Block2D.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-table-Block2D.png index d2ea5b82c..5a476fd9a 100644 Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-table-Block2D.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-table-Block2D.png differ diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-table-Vector.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-table-Vector.png index 8722650d1..449dbd771 100644 Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-table-Vector.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-table-Vector.png differ diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-wall-Block2D.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-wall-Block2D.png index 672268aa4..b98b77ffc 100644 Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-wall-Block2D.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-wall-Block2D.png differ diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-wall-Vector.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-wall-Vector.png index 91397096b..bc5c2b3ee 100644 Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-wall-Vector.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-wall-Vector.png differ diff --git a/docs/games/Drunk_Dwarf/index.rst b/docs/games/Drunk_Dwarf/index.rst index 6e755064c..da95cdbe7 100644 --- a/docs/games/Drunk_Dwarf/index.rst +++ b/docs/games/Drunk_Dwarf/index.rst @@ -16,6 +16,7 @@ Levels --------- .. list-table:: Levels + :class: level-gallery :header-rows: 1 * - diff --git a/docs/games/Eyeball/img/Eyeball-level-Block2D-0.png b/docs/games/Eyeball/img/Eyeball-level-Block2D-0.png index d3977baee..6c7d7b179 100644 Binary files a/docs/games/Eyeball/img/Eyeball-level-Block2D-0.png and b/docs/games/Eyeball/img/Eyeball-level-Block2D-0.png differ diff --git a/docs/games/Eyeball/img/Eyeball-level-Vector-0.png b/docs/games/Eyeball/img/Eyeball-level-Vector-0.png index 5ea949592..8e82d41ca 100644 Binary files a/docs/games/Eyeball/img/Eyeball-level-Vector-0.png and b/docs/games/Eyeball/img/Eyeball-level-Vector-0.png differ diff --git a/docs/games/Eyeball/img/Eyeball-tile-eye_drops-Vector.png b/docs/games/Eyeball/img/Eyeball-tile-eye_drops-Vector.png index 1460b3271..a5cdcff22 100644 Binary files a/docs/games/Eyeball/img/Eyeball-tile-eye_drops-Vector.png and b/docs/games/Eyeball/img/Eyeball-tile-eye_drops-Vector.png differ diff --git a/docs/games/Eyeball/img/Eyeball-tile-eyeball-Vector.png b/docs/games/Eyeball/img/Eyeball-tile-eyeball-Vector.png index 50a43e1f7..1460b3271 100644 Binary files a/docs/games/Eyeball/img/Eyeball-tile-eyeball-Vector.png and b/docs/games/Eyeball/img/Eyeball-tile-eyeball-Vector.png differ diff --git a/docs/games/Eyeball/img/Eyeball-tile-wall-Block2D.png b/docs/games/Eyeball/img/Eyeball-tile-wall-Block2D.png index 672268aa4..b98b77ffc 100644 Binary files a/docs/games/Eyeball/img/Eyeball-tile-wall-Block2D.png and b/docs/games/Eyeball/img/Eyeball-tile-wall-Block2D.png differ diff --git a/docs/games/Eyeball/img/Eyeball-tile-wall-Vector.png b/docs/games/Eyeball/img/Eyeball-tile-wall-Vector.png index f5ac61ae0..6985a0878 100644 Binary files a/docs/games/Eyeball/img/Eyeball-tile-wall-Vector.png and b/docs/games/Eyeball/img/Eyeball-tile-wall-Vector.png differ diff --git a/docs/games/Eyeball/index.rst b/docs/games/Eyeball/index.rst index 7a77db94d..b4a373d24 100644 --- a/docs/games/Eyeball/index.rst +++ b/docs/games/Eyeball/index.rst @@ -16,6 +16,7 @@ Levels --------- .. list-table:: Levels + :class: level-gallery :header-rows: 1 * - diff --git a/docs/games/Foragers/img/Foragers-level-Block2D-0.png b/docs/games/Foragers/img/Foragers-level-Block2D-0.png index 7ab884e6a..ed96886a6 100644 Binary files a/docs/games/Foragers/img/Foragers-level-Block2D-0.png and b/docs/games/Foragers/img/Foragers-level-Block2D-0.png differ diff --git a/docs/games/Foragers/img/Foragers-level-Block2D-1.png b/docs/games/Foragers/img/Foragers-level-Block2D-1.png index d83c5f302..96a26c5c5 100644 Binary files a/docs/games/Foragers/img/Foragers-level-Block2D-1.png and b/docs/games/Foragers/img/Foragers-level-Block2D-1.png differ diff --git a/docs/games/Foragers/img/Foragers-level-Block2D-2.png b/docs/games/Foragers/img/Foragers-level-Block2D-2.png index fd555c11a..f2a91a0c5 100644 Binary files a/docs/games/Foragers/img/Foragers-level-Block2D-2.png and b/docs/games/Foragers/img/Foragers-level-Block2D-2.png differ diff --git a/docs/games/Foragers/img/Foragers-level-Sprite2D-0.png b/docs/games/Foragers/img/Foragers-level-Sprite2D-0.png index 35abd40d7..5061a126d 100644 Binary files a/docs/games/Foragers/img/Foragers-level-Sprite2D-0.png and b/docs/games/Foragers/img/Foragers-level-Sprite2D-0.png differ diff --git a/docs/games/Foragers/img/Foragers-level-Sprite2D-1.png b/docs/games/Foragers/img/Foragers-level-Sprite2D-1.png index 52ae70f77..b35999a85 100644 Binary files a/docs/games/Foragers/img/Foragers-level-Sprite2D-1.png and b/docs/games/Foragers/img/Foragers-level-Sprite2D-1.png differ diff --git a/docs/games/Foragers/img/Foragers-level-Sprite2D-2.png b/docs/games/Foragers/img/Foragers-level-Sprite2D-2.png index 730209ea3..3e700aff3 100644 Binary files a/docs/games/Foragers/img/Foragers-level-Sprite2D-2.png and b/docs/games/Foragers/img/Foragers-level-Sprite2D-2.png differ diff --git a/docs/games/Foragers/img/Foragers-level-Vector-0.png b/docs/games/Foragers/img/Foragers-level-Vector-0.png index f431b9807..c6515f31c 100644 Binary files a/docs/games/Foragers/img/Foragers-level-Vector-0.png and b/docs/games/Foragers/img/Foragers-level-Vector-0.png differ diff --git a/docs/games/Foragers/img/Foragers-level-Vector-1.png b/docs/games/Foragers/img/Foragers-level-Vector-1.png index aba5717a9..8e6d79841 100644 Binary files a/docs/games/Foragers/img/Foragers-level-Vector-1.png and b/docs/games/Foragers/img/Foragers-level-Vector-1.png differ diff --git a/docs/games/Foragers/img/Foragers-level-Vector-2.png b/docs/games/Foragers/img/Foragers-level-Vector-2.png index 359ac483a..f527a1267 100644 Binary files a/docs/games/Foragers/img/Foragers-level-Vector-2.png and b/docs/games/Foragers/img/Foragers-level-Vector-2.png differ diff --git a/docs/games/Foragers/img/Foragers-tile-fixed_wall-Block2D.png b/docs/games/Foragers/img/Foragers-tile-fixed_wall-Block2D.png index aa52694a3..47c9cdd28 100644 Binary files a/docs/games/Foragers/img/Foragers-tile-fixed_wall-Block2D.png and b/docs/games/Foragers/img/Foragers-tile-fixed_wall-Block2D.png differ diff --git a/docs/games/Foragers/img/Foragers-tile-fixed_wall-Vector.png b/docs/games/Foragers/img/Foragers-tile-fixed_wall-Vector.png index c23edfdd3..a2f51f612 100644 Binary files a/docs/games/Foragers/img/Foragers-tile-fixed_wall-Vector.png and b/docs/games/Foragers/img/Foragers-tile-fixed_wall-Vector.png differ diff --git a/docs/games/Foragers/img/Foragers-tile-harvester-Block2D.png b/docs/games/Foragers/img/Foragers-tile-harvester-Block2D.png index e07839abf..d5ec97831 100644 Binary files a/docs/games/Foragers/img/Foragers-tile-harvester-Block2D.png and b/docs/games/Foragers/img/Foragers-tile-harvester-Block2D.png differ diff --git a/docs/games/Foragers/img/Foragers-tile-harvester-Vector.png b/docs/games/Foragers/img/Foragers-tile-harvester-Vector.png index c0ac27968..c23edfdd3 100644 Binary files a/docs/games/Foragers/img/Foragers-tile-harvester-Vector.png and b/docs/games/Foragers/img/Foragers-tile-harvester-Vector.png differ diff --git a/docs/games/Foragers/img/Foragers-tile-potion1-Sprite2D.png b/docs/games/Foragers/img/Foragers-tile-potion1-Sprite2D.png index 624648871..e4ff05412 100644 Binary files a/docs/games/Foragers/img/Foragers-tile-potion1-Sprite2D.png and b/docs/games/Foragers/img/Foragers-tile-potion1-Sprite2D.png differ diff --git a/docs/games/Foragers/img/Foragers-tile-potion1-Vector.png b/docs/games/Foragers/img/Foragers-tile-potion1-Vector.png index 50a43e1f7..1460b3271 100644 Binary files a/docs/games/Foragers/img/Foragers-tile-potion1-Vector.png and b/docs/games/Foragers/img/Foragers-tile-potion1-Vector.png differ diff --git a/docs/games/Foragers/img/Foragers-tile-potion2-Sprite2D.png b/docs/games/Foragers/img/Foragers-tile-potion2-Sprite2D.png index 8ae9af01f..352bfdbd0 100644 Binary files a/docs/games/Foragers/img/Foragers-tile-potion2-Sprite2D.png and b/docs/games/Foragers/img/Foragers-tile-potion2-Sprite2D.png differ diff --git a/docs/games/Foragers/img/Foragers-tile-potion2-Vector.png b/docs/games/Foragers/img/Foragers-tile-potion2-Vector.png index 5423baded..c0ac27968 100644 Binary files a/docs/games/Foragers/img/Foragers-tile-potion2-Vector.png and b/docs/games/Foragers/img/Foragers-tile-potion2-Vector.png differ diff --git a/docs/games/Foragers/img/Foragers-tile-potion3-Block2D.png b/docs/games/Foragers/img/Foragers-tile-potion3-Block2D.png index 5ba6187a2..04e75e4fb 100644 Binary files a/docs/games/Foragers/img/Foragers-tile-potion3-Block2D.png and b/docs/games/Foragers/img/Foragers-tile-potion3-Block2D.png differ diff --git a/docs/games/Foragers/img/Foragers-tile-potion3-Vector.png b/docs/games/Foragers/img/Foragers-tile-potion3-Vector.png index 758055b8f..7d7ba957a 100644 Binary files a/docs/games/Foragers/img/Foragers-tile-potion3-Vector.png and b/docs/games/Foragers/img/Foragers-tile-potion3-Vector.png differ diff --git a/docs/games/Foragers/index.rst b/docs/games/Foragers/index.rst index 105effdbb..0ef10f8c7 100644 --- a/docs/games/Foragers/index.rst +++ b/docs/games/Foragers/index.rst @@ -16,6 +16,7 @@ Levels --------- .. list-table:: Levels + :class: level-gallery :header-rows: 1 * - diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-0.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-0.png new file mode 100644 index 000000000..858823222 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-0.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-1.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-1.png new file mode 100644 index 000000000..1d4f6110a Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-1.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-10.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-10.png new file mode 100644 index 000000000..ec3652084 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-10.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-100.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-100.png new file mode 100644 index 000000000..593624a34 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-100.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-11.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-11.png new file mode 100644 index 000000000..eba3cdb84 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-11.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-12.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-12.png new file mode 100644 index 000000000..74843a7d0 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-12.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-13.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-13.png new file mode 100644 index 000000000..4dd03c036 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-13.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-14.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-14.png new file mode 100644 index 000000000..62124e5ca Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-14.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-15.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-15.png new file mode 100644 index 000000000..31cf89524 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-15.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-16.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-16.png new file mode 100644 index 000000000..67cb74863 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-16.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-17.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-17.png new file mode 100644 index 000000000..1b96c47a3 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-17.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-18.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-18.png new file mode 100644 index 000000000..239fef035 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-18.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-19.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-19.png new file mode 100644 index 000000000..d0cb981b0 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-19.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-2.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-2.png new file mode 100644 index 000000000..6f3379056 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-2.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-20.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-20.png new file mode 100644 index 000000000..71fdfd612 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-20.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-21.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-21.png new file mode 100644 index 000000000..5ce9a5ea2 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-21.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-22.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-22.png new file mode 100644 index 000000000..f81a62d8a Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-22.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-23.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-23.png new file mode 100644 index 000000000..26712f94e Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-23.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-24.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-24.png new file mode 100644 index 000000000..06f503cbe Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-24.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-25.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-25.png new file mode 100644 index 000000000..35bc75f5d Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-25.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-26.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-26.png new file mode 100644 index 000000000..077100839 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-26.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-27.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-27.png new file mode 100644 index 000000000..7d3c1030e Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-27.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-28.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-28.png new file mode 100644 index 000000000..e893cde32 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-28.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-29.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-29.png new file mode 100644 index 000000000..ba5ed73c8 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-29.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-3.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-3.png new file mode 100644 index 000000000..04d98e7d2 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-3.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-30.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-30.png new file mode 100644 index 000000000..6e8e4f3ac Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-30.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-31.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-31.png new file mode 100644 index 000000000..682544026 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-31.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-32.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-32.png new file mode 100644 index 000000000..ec1354151 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-32.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-33.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-33.png new file mode 100644 index 000000000..32a08461f Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-33.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-34.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-34.png new file mode 100644 index 000000000..43728ebeb Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-34.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-35.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-35.png new file mode 100644 index 000000000..d9369ac53 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-35.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-36.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-36.png new file mode 100644 index 000000000..a13968b87 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-36.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-37.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-37.png new file mode 100644 index 000000000..c67230f3d Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-37.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-38.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-38.png new file mode 100644 index 000000000..1ecd3418a Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-38.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-39.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-39.png new file mode 100644 index 000000000..4d20b069d Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-39.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-4.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-4.png new file mode 100644 index 000000000..357422ae5 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-4.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-40.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-40.png new file mode 100644 index 000000000..55553f2f4 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-40.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-41.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-41.png new file mode 100644 index 000000000..a0558ebca Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-41.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-42.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-42.png new file mode 100644 index 000000000..87587120d Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-42.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-43.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-43.png new file mode 100644 index 000000000..1da03431d Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-43.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-44.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-44.png new file mode 100644 index 000000000..a37ea1826 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-44.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-45.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-45.png new file mode 100644 index 000000000..9491a4df3 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-45.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-46.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-46.png new file mode 100644 index 000000000..88b4ccf8b Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-46.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-47.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-47.png new file mode 100644 index 000000000..779e97cab Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-47.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-48.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-48.png new file mode 100644 index 000000000..d152a54c2 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-48.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-49.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-49.png new file mode 100644 index 000000000..a82e6d7c1 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-49.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-5.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-5.png new file mode 100644 index 000000000..7d510f9c4 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-5.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-50.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-50.png new file mode 100644 index 000000000..d152a54c2 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-50.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-51.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-51.png new file mode 100644 index 000000000..72d393801 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-51.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-52.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-52.png new file mode 100644 index 000000000..18e12aad4 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-52.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-53.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-53.png new file mode 100644 index 000000000..2c81fa146 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-53.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-54.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-54.png new file mode 100644 index 000000000..efeae1e1b Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-54.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-55.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-55.png new file mode 100644 index 000000000..6f363dd57 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-55.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-56.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-56.png new file mode 100644 index 000000000..5aaee9de3 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-56.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-57.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-57.png new file mode 100644 index 000000000..2d58a4b7e Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-57.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-58.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-58.png new file mode 100644 index 000000000..7b17b15c4 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-58.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-59.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-59.png new file mode 100644 index 000000000..0cade361e Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-59.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-6.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-6.png new file mode 100644 index 000000000..c6ce78902 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-6.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-60.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-60.png new file mode 100644 index 000000000..65f55b5d7 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-60.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-61.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-61.png new file mode 100644 index 000000000..c403f1482 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-61.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-62.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-62.png new file mode 100644 index 000000000..3959357b0 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-62.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-63.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-63.png new file mode 100644 index 000000000..9bf293fa8 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-63.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-64.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-64.png new file mode 100644 index 000000000..a335297fa Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-64.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-65.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-65.png new file mode 100644 index 000000000..cad09e343 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-65.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-66.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-66.png new file mode 100644 index 000000000..85a6e501c Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-66.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-67.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-67.png new file mode 100644 index 000000000..f599b2e96 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-67.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-68.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-68.png new file mode 100644 index 000000000..0e877ca1d Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-68.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-69.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-69.png new file mode 100644 index 000000000..2c0ea76fc Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-69.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-7.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-7.png new file mode 100644 index 000000000..c6ce78902 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-7.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-70.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-70.png new file mode 100644 index 000000000..7b0fcddac Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-70.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-71.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-71.png new file mode 100644 index 000000000..74293e574 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-71.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-72.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-72.png new file mode 100644 index 000000000..e3c101bdc Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-72.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-73.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-73.png new file mode 100644 index 000000000..5d0381b36 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-73.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-74.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-74.png new file mode 100644 index 000000000..f0744dd12 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-74.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-75.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-75.png new file mode 100644 index 000000000..548a1ab65 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-75.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-76.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-76.png new file mode 100644 index 000000000..1b4389f6f Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-76.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-77.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-77.png new file mode 100644 index 000000000..4228a88b2 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-77.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-78.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-78.png new file mode 100644 index 000000000..9b448579b Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-78.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-79.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-79.png new file mode 100644 index 000000000..e2c327192 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-79.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-8.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-8.png new file mode 100644 index 000000000..aa1b4eaff Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-8.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-80.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-80.png new file mode 100644 index 000000000..b187a1c8d Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-80.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-81.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-81.png new file mode 100644 index 000000000..975a55041 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-81.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-82.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-82.png new file mode 100644 index 000000000..f355c62b2 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-82.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-83.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-83.png new file mode 100644 index 000000000..dd0b5d5d8 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-83.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-84.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-84.png new file mode 100644 index 000000000..0e784d6d8 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-84.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-85.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-85.png new file mode 100644 index 000000000..480582783 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-85.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-86.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-86.png new file mode 100644 index 000000000..40365f974 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-86.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-87.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-87.png new file mode 100644 index 000000000..527059eb9 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-87.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-88.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-88.png new file mode 100644 index 000000000..7560d3c70 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-88.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-89.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-89.png new file mode 100644 index 000000000..523b32994 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-89.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-9.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-9.png new file mode 100644 index 000000000..ec3652084 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-9.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-90.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-90.png new file mode 100644 index 000000000..1011658c9 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-90.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-91.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-91.png new file mode 100644 index 000000000..a4d01acda Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-91.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-92.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-92.png new file mode 100644 index 000000000..5b526fd1c Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-92.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-93.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-93.png new file mode 100644 index 000000000..95c1cc8ad Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-93.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-94.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-94.png new file mode 100644 index 000000000..e69e8a407 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-94.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-95.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-95.png new file mode 100644 index 000000000..c774311af Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-95.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-96.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-96.png new file mode 100644 index 000000000..bcabfcd24 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-96.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-97.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-97.png new file mode 100644 index 000000000..7a265116b Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-97.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-98.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-98.png new file mode 100644 index 000000000..140c3252b Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-98.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-99.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-99.png new file mode 100644 index 000000000..d13463c61 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-99.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-0.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-0.png new file mode 100644 index 000000000..b0643d1ef Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-0.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-1.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-1.png new file mode 100644 index 000000000..cd2564fc6 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-1.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-10.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-10.png new file mode 100644 index 000000000..4f25ccc65 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-10.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-100.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-100.png new file mode 100644 index 000000000..f5ae4713a Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-100.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-11.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-11.png new file mode 100644 index 000000000..2cc3ff8c5 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-11.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-12.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-12.png new file mode 100644 index 000000000..8ce36c506 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-12.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-13.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-13.png new file mode 100644 index 000000000..a1d24a45e Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-13.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-14.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-14.png new file mode 100644 index 000000000..6bf8d6b31 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-14.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-15.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-15.png new file mode 100644 index 000000000..cba07a088 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-15.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-16.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-16.png new file mode 100644 index 000000000..ee3902f16 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-16.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-17.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-17.png new file mode 100644 index 000000000..614d85101 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-17.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-18.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-18.png new file mode 100644 index 000000000..d39372a08 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-18.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-19.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-19.png new file mode 100644 index 000000000..381552d8e Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-19.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-2.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-2.png new file mode 100644 index 000000000..3db038ab8 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-2.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-20.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-20.png new file mode 100644 index 000000000..094add00e Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-20.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-21.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-21.png new file mode 100644 index 000000000..51fb315f7 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-21.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-22.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-22.png new file mode 100644 index 000000000..bb4e1c166 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-22.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-23.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-23.png new file mode 100644 index 000000000..7dba54221 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-23.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-24.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-24.png new file mode 100644 index 000000000..9c95b9bc6 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-24.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-25.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-25.png new file mode 100644 index 000000000..22dfbc414 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-25.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-26.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-26.png new file mode 100644 index 000000000..ebb17e675 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-26.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-27.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-27.png new file mode 100644 index 000000000..b75eaf14f Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-27.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-28.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-28.png new file mode 100644 index 000000000..dd9e06549 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-28.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-29.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-29.png new file mode 100644 index 000000000..c90c685eb Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-29.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-3.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-3.png new file mode 100644 index 000000000..6cf3c062e Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-3.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-30.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-30.png new file mode 100644 index 000000000..932c47469 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-30.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-31.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-31.png new file mode 100644 index 000000000..a5a0ad153 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-31.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-32.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-32.png new file mode 100644 index 000000000..256fef1d4 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-32.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-33.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-33.png new file mode 100644 index 000000000..0213e0a71 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-33.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-34.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-34.png new file mode 100644 index 000000000..ce661b671 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-34.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-35.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-35.png new file mode 100644 index 000000000..41b89ca76 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-35.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-36.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-36.png new file mode 100644 index 000000000..d966ad509 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-36.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-37.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-37.png new file mode 100644 index 000000000..d06d2bdee Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-37.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-38.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-38.png new file mode 100644 index 000000000..28a152071 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-38.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-39.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-39.png new file mode 100644 index 000000000..a1c7966c7 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-39.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-4.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-4.png new file mode 100644 index 000000000..bf2a7798d Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-4.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-40.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-40.png new file mode 100644 index 000000000..e2e964330 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-40.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-41.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-41.png new file mode 100644 index 000000000..248bdcb5b Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-41.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-42.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-42.png new file mode 100644 index 000000000..8c6d872ca Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-42.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-43.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-43.png new file mode 100644 index 000000000..16e4d4499 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-43.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-44.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-44.png new file mode 100644 index 000000000..438b7b676 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-44.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-45.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-45.png new file mode 100644 index 000000000..af3e85c7b Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-45.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-46.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-46.png new file mode 100644 index 000000000..607c65374 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-46.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-47.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-47.png new file mode 100644 index 000000000..48b78c51f Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-47.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-48.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-48.png new file mode 100644 index 000000000..dc165d81d Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-48.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-49.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-49.png new file mode 100644 index 000000000..bf711481a Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-49.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-5.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-5.png new file mode 100644 index 000000000..ae3567e1b Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-5.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-50.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-50.png new file mode 100644 index 000000000..dc165d81d Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-50.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-51.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-51.png new file mode 100644 index 000000000..a5a2e930b Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-51.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-52.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-52.png new file mode 100644 index 000000000..777179bc2 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-52.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-53.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-53.png new file mode 100644 index 000000000..53862d638 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-53.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-54.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-54.png new file mode 100644 index 000000000..dc6c9ace4 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-54.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-55.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-55.png new file mode 100644 index 000000000..c96c7d879 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-55.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-56.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-56.png new file mode 100644 index 000000000..e5104dda4 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-56.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-57.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-57.png new file mode 100644 index 000000000..538ec5f14 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-57.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-58.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-58.png new file mode 100644 index 000000000..0edd897d8 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-58.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-59.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-59.png new file mode 100644 index 000000000..0b7f1e8b7 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-59.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-6.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-6.png new file mode 100644 index 000000000..24517d637 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-6.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-60.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-60.png new file mode 100644 index 000000000..0914cbbfb Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-60.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-61.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-61.png new file mode 100644 index 000000000..1e0e2ff61 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-61.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-62.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-62.png new file mode 100644 index 000000000..cb2788569 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-62.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-63.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-63.png new file mode 100644 index 000000000..349232b97 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-63.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-64.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-64.png new file mode 100644 index 000000000..b9e7310ff Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-64.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-65.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-65.png new file mode 100644 index 000000000..c56a3cef4 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-65.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-66.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-66.png new file mode 100644 index 000000000..bfca5cb4c Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-66.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-67.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-67.png new file mode 100644 index 000000000..62f235ff9 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-67.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-68.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-68.png new file mode 100644 index 000000000..e1bab2b96 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-68.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-69.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-69.png new file mode 100644 index 000000000..ad0fb73da Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-69.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-7.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-7.png new file mode 100644 index 000000000..24517d637 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-7.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-70.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-70.png new file mode 100644 index 000000000..5f38d73fd Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-70.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-71.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-71.png new file mode 100644 index 000000000..4bc339015 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-71.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-72.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-72.png new file mode 100644 index 000000000..5f7fc1c84 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-72.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-73.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-73.png new file mode 100644 index 000000000..278c8342e Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-73.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-74.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-74.png new file mode 100644 index 000000000..098015d65 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-74.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-75.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-75.png new file mode 100644 index 000000000..bf2fadb66 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-75.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-76.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-76.png new file mode 100644 index 000000000..d7d1f1478 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-76.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-77.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-77.png new file mode 100644 index 000000000..3aceaf195 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-77.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-78.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-78.png new file mode 100644 index 000000000..bb68e2f1f Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-78.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-79.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-79.png new file mode 100644 index 000000000..90d7172f9 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-79.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-8.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-8.png new file mode 100644 index 000000000..691e780fc Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-8.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-80.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-80.png new file mode 100644 index 000000000..5dbaada46 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-80.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-81.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-81.png new file mode 100644 index 000000000..805273cb4 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-81.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-82.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-82.png new file mode 100644 index 000000000..281049a33 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-82.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-83.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-83.png new file mode 100644 index 000000000..e0d05677c Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-83.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-84.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-84.png new file mode 100644 index 000000000..2204a0523 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-84.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-85.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-85.png new file mode 100644 index 000000000..36fd12407 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-85.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-86.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-86.png new file mode 100644 index 000000000..414351ec4 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-86.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-87.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-87.png new file mode 100644 index 000000000..dd99659a5 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-87.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-88.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-88.png new file mode 100644 index 000000000..0f4e85b77 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-88.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-89.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-89.png new file mode 100644 index 000000000..6a17c2651 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-89.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-9.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-9.png new file mode 100644 index 000000000..4f25ccc65 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-9.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-90.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-90.png new file mode 100644 index 000000000..4cf617195 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-90.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-91.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-91.png new file mode 100644 index 000000000..2cb9abbd9 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-91.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-92.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-92.png new file mode 100644 index 000000000..c78eef8a7 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-92.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-93.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-93.png new file mode 100644 index 000000000..bdbd10082 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-93.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-94.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-94.png new file mode 100644 index 000000000..a4b743d3f Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-94.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-95.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-95.png new file mode 100644 index 000000000..eb587a09f Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-95.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-96.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-96.png new file mode 100644 index 000000000..300e6f4a3 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-96.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-97.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-97.png new file mode 100644 index 000000000..22f6938a1 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-97.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-98.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-98.png new file mode 100644 index 000000000..234d6e933 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-98.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-99.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-99.png new file mode 100644 index 000000000..e79fcf81e Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-99.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-0.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-0.png new file mode 100644 index 000000000..4167d6604 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-0.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-1.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-1.png new file mode 100644 index 000000000..19cbf78d7 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-1.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-10.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-10.png new file mode 100644 index 000000000..e191ccd61 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-10.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-100.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-100.png new file mode 100644 index 000000000..fbf93573a Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-100.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-11.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-11.png new file mode 100644 index 000000000..69daca2fb Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-11.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-12.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-12.png new file mode 100644 index 000000000..2b3b9b100 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-12.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-13.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-13.png new file mode 100644 index 000000000..f46628862 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-13.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-14.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-14.png new file mode 100644 index 000000000..1798ae4f3 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-14.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-15.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-15.png new file mode 100644 index 000000000..a09feaf8e Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-15.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-16.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-16.png new file mode 100644 index 000000000..caf22cd45 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-16.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-17.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-17.png new file mode 100644 index 000000000..c1e7845ff Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-17.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-18.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-18.png new file mode 100644 index 000000000..85d0ed215 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-18.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-19.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-19.png new file mode 100644 index 000000000..833fcfd3f Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-19.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-2.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-2.png new file mode 100644 index 000000000..97380e895 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-2.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-20.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-20.png new file mode 100644 index 000000000..4535e8718 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-20.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-21.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-21.png new file mode 100644 index 000000000..8319f1935 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-21.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-22.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-22.png new file mode 100644 index 000000000..cda8ba9a5 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-22.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-23.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-23.png new file mode 100644 index 000000000..3781d80b7 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-23.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-24.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-24.png new file mode 100644 index 000000000..dd9380e08 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-24.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-25.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-25.png new file mode 100644 index 000000000..ebe1427d7 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-25.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-26.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-26.png new file mode 100644 index 000000000..d92931d05 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-26.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-27.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-27.png new file mode 100644 index 000000000..4922e176c Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-27.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-28.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-28.png new file mode 100644 index 000000000..fdc0565ad Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-28.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-29.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-29.png new file mode 100644 index 000000000..5bb96521d Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-29.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-3.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-3.png new file mode 100644 index 000000000..e404e9358 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-3.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-30.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-30.png new file mode 100644 index 000000000..478ed3a30 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-30.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-31.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-31.png new file mode 100644 index 000000000..23d4a5f96 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-31.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-32.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-32.png new file mode 100644 index 000000000..ef036eb86 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-32.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-33.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-33.png new file mode 100644 index 000000000..faf3bd57e Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-33.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-34.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-34.png new file mode 100644 index 000000000..71094f8ea Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-34.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-35.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-35.png new file mode 100644 index 000000000..3b22d54fd Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-35.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-36.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-36.png new file mode 100644 index 000000000..f56d5a0fe Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-36.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-37.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-37.png new file mode 100644 index 000000000..d5ea5ffd1 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-37.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-38.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-38.png new file mode 100644 index 000000000..8a2c4c9b4 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-38.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-39.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-39.png new file mode 100644 index 000000000..2b508c8d4 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-39.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-4.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-4.png new file mode 100644 index 000000000..8a38b9932 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-4.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-40.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-40.png new file mode 100644 index 000000000..4bde2d0c6 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-40.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-41.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-41.png new file mode 100644 index 000000000..f1103a62e Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-41.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-42.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-42.png new file mode 100644 index 000000000..e1580e922 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-42.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-43.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-43.png new file mode 100644 index 000000000..e301ec957 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-43.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-44.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-44.png new file mode 100644 index 000000000..038830ad5 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-44.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-45.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-45.png new file mode 100644 index 000000000..41d903c51 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-45.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-46.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-46.png new file mode 100644 index 000000000..b52e16d46 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-46.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-47.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-47.png new file mode 100644 index 000000000..54c49765c Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-47.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-48.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-48.png new file mode 100644 index 000000000..e37db3f29 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-48.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-49.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-49.png new file mode 100644 index 000000000..619bffaf0 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-49.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-5.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-5.png new file mode 100644 index 000000000..c5a4dc740 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-5.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-50.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-50.png new file mode 100644 index 000000000..e37db3f29 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-50.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-51.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-51.png new file mode 100644 index 000000000..5870c88e5 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-51.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-52.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-52.png new file mode 100644 index 000000000..669e18f71 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-52.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-53.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-53.png new file mode 100644 index 000000000..00dc0d8d6 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-53.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-54.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-54.png new file mode 100644 index 000000000..845288409 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-54.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-55.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-55.png new file mode 100644 index 000000000..3ec6d54fe Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-55.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-56.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-56.png new file mode 100644 index 000000000..0d2a2d41f Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-56.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-57.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-57.png new file mode 100644 index 000000000..0f6421639 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-57.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-58.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-58.png new file mode 100644 index 000000000..0f6421639 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-58.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-59.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-59.png new file mode 100644 index 000000000..0f6421639 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-59.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-6.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-6.png new file mode 100644 index 000000000..977947152 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-6.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-60.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-60.png new file mode 100644 index 000000000..43b923048 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-60.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-61.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-61.png new file mode 100644 index 000000000..062df6804 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-61.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-62.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-62.png new file mode 100644 index 000000000..a9c606e80 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-62.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-63.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-63.png new file mode 100644 index 000000000..1fb967716 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-63.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-64.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-64.png new file mode 100644 index 000000000..f33507d3c Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-64.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-65.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-65.png new file mode 100644 index 000000000..c3315b62a Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-65.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-66.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-66.png new file mode 100644 index 000000000..39844add4 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-66.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-67.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-67.png new file mode 100644 index 000000000..83936af5e Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-67.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-68.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-68.png new file mode 100644 index 000000000..4a2bb51be Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-68.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-69.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-69.png new file mode 100644 index 000000000..335e9219f Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-69.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-7.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-7.png new file mode 100644 index 000000000..977947152 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-7.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-70.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-70.png new file mode 100644 index 000000000..300e5ca49 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-70.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-71.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-71.png new file mode 100644 index 000000000..1f9af1544 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-71.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-72.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-72.png new file mode 100644 index 000000000..f6c0e38d2 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-72.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-73.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-73.png new file mode 100644 index 000000000..9d79a8c37 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-73.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-74.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-74.png new file mode 100644 index 000000000..c1e53f011 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-74.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-75.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-75.png new file mode 100644 index 000000000..474b5e540 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-75.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-76.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-76.png new file mode 100644 index 000000000..db54bb081 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-76.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-77.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-77.png new file mode 100644 index 000000000..d24dae51e Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-77.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-78.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-78.png new file mode 100644 index 000000000..add654f58 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-78.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-79.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-79.png new file mode 100644 index 000000000..5097ed893 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-79.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-8.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-8.png new file mode 100644 index 000000000..d4f6da32f Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-8.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-80.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-80.png new file mode 100644 index 000000000..fed59828d Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-80.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-81.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-81.png new file mode 100644 index 000000000..0fc906bd5 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-81.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-82.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-82.png new file mode 100644 index 000000000..5403e8983 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-82.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-83.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-83.png new file mode 100644 index 000000000..acfbdca43 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-83.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-84.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-84.png new file mode 100644 index 000000000..127db9490 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-84.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-85.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-85.png new file mode 100644 index 000000000..61b3abf0c Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-85.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-86.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-86.png new file mode 100644 index 000000000..7ca5a0a60 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-86.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-87.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-87.png new file mode 100644 index 000000000..336016865 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-87.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-88.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-88.png new file mode 100644 index 000000000..88ea5201d Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-88.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-89.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-89.png new file mode 100644 index 000000000..17afcc420 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-89.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-9.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-9.png new file mode 100644 index 000000000..e191ccd61 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-9.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-90.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-90.png new file mode 100644 index 000000000..cc47c1394 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-90.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-91.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-91.png new file mode 100644 index 000000000..ee2ffab4b Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-91.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-92.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-92.png new file mode 100644 index 000000000..77da83209 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-92.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-93.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-93.png new file mode 100644 index 000000000..f5468082d Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-93.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-94.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-94.png new file mode 100644 index 000000000..d000ed0b1 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-94.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-95.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-95.png new file mode 100644 index 000000000..389ed8533 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-95.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-96.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-96.png new file mode 100644 index 000000000..a861b8329 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-96.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-97.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-97.png new file mode 100644 index 000000000..73e76d574 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-97.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-98.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-98.png new file mode 100644 index 000000000..86eaec616 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-98.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-99.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-99.png new file mode 100644 index 000000000..676c5fab2 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-99.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-arrow-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-arrow-GlobalSprite2D.png new file mode 100644 index 000000000..2a09fd0fb Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-arrow-GlobalSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-arrow-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-arrow-PlayerSprite2D.png new file mode 100644 index 000000000..215c13a28 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-arrow-PlayerSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-arrow-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-arrow-Vector.png new file mode 100644 index 000000000..6985a0878 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-arrow-Vector.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-coal-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-coal-GlobalSprite2D.png new file mode 100644 index 000000000..e6e1ffd7d Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-coal-GlobalSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-coal-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-coal-PlayerSprite2D.png new file mode 100644 index 000000000..c06e1e1f2 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-coal-PlayerSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-coal-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-coal-Vector.png new file mode 100644 index 000000000..07da2f420 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-coal-Vector.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-cow-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-cow-GlobalSprite2D.png new file mode 100644 index 000000000..b27dc40a2 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-cow-GlobalSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-cow-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-cow-PlayerSprite2D.png new file mode 100644 index 000000000..b3ca07e9b Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-cow-PlayerSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-cow-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-cow-Vector.png new file mode 100644 index 000000000..159d22611 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-cow-Vector.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-diamond-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-diamond-GlobalSprite2D.png new file mode 100644 index 000000000..c01175c6f Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-diamond-GlobalSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-diamond-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-diamond-PlayerSprite2D.png new file mode 100644 index 000000000..418bdce2b Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-diamond-PlayerSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-diamond-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-diamond-Vector.png new file mode 100644 index 000000000..64c6678a1 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-diamond-Vector.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-fence-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-fence-GlobalSprite2D.png new file mode 100644 index 000000000..96b06d188 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-fence-GlobalSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-fence-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-fence-PlayerSprite2D.png new file mode 100644 index 000000000..008de5d06 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-fence-PlayerSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-fence-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-fence-Vector.png new file mode 100644 index 000000000..3220f5d4c Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-fence-Vector.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-furnace-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-furnace-GlobalSprite2D.png new file mode 100644 index 000000000..2ddd663f3 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-furnace-GlobalSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-furnace-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-furnace-PlayerSprite2D.png new file mode 100644 index 000000000..9e8b72493 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-furnace-PlayerSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-furnace-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-furnace-Vector.png new file mode 100644 index 000000000..0c0e39f29 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-furnace-Vector.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-grass-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-grass-GlobalSprite2D.png new file mode 100644 index 000000000..5365188d0 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-grass-GlobalSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-grass-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-grass-PlayerSprite2D.png new file mode 100644 index 000000000..4fcdf644b Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-grass-PlayerSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-grass-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-grass-Vector.png new file mode 100644 index 000000000..9455fc977 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-grass-Vector.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-iron-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-iron-GlobalSprite2D.png new file mode 100644 index 000000000..815a3f4ba Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-iron-GlobalSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-iron-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-iron-PlayerSprite2D.png new file mode 100644 index 000000000..629d8171f Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-iron-PlayerSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-iron-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-iron-Vector.png new file mode 100644 index 000000000..aba8e1da6 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-iron-Vector.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-lava-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-lava-GlobalSprite2D.png new file mode 100644 index 000000000..383cbbe99 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-lava-GlobalSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-lava-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-lava-PlayerSprite2D.png new file mode 100644 index 000000000..ca68c8881 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-lava-PlayerSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-lava-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-lava-Vector.png new file mode 100644 index 000000000..57ee46ae4 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-lava-Vector.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-path-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-path-GlobalSprite2D.png new file mode 100644 index 000000000..4dc4524c9 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-path-GlobalSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-path-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-path-PlayerSprite2D.png new file mode 100644 index 000000000..697d9c822 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-path-PlayerSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-path-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-path-Vector.png new file mode 100644 index 000000000..024c4355e Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-path-Vector.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-plant-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-plant-GlobalSprite2D.png new file mode 100644 index 000000000..5880c6100 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-plant-GlobalSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-plant-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-plant-PlayerSprite2D.png new file mode 100644 index 000000000..83ef16eb6 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-plant-PlayerSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-plant-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-plant-Vector.png new file mode 100644 index 000000000..f4420decc Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-plant-Vector.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-player-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-player-GlobalSprite2D.png new file mode 100644 index 000000000..11bfe97ce Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-player-GlobalSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-player-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-player-PlayerSprite2D.png new file mode 100644 index 000000000..6aaa264a8 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-player-PlayerSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-player-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-player-Vector.png new file mode 100644 index 000000000..4eff5faf5 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-player-Vector.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-sand-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-sand-GlobalSprite2D.png new file mode 100644 index 000000000..6c81cb4d5 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-sand-GlobalSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-sand-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-sand-PlayerSprite2D.png new file mode 100644 index 000000000..8a4e95e38 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-sand-PlayerSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-sand-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-sand-Vector.png new file mode 100644 index 000000000..1d4ac1708 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-sand-Vector.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-skeleton-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-skeleton-GlobalSprite2D.png new file mode 100644 index 000000000..55477fb85 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-skeleton-GlobalSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-skeleton-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-skeleton-PlayerSprite2D.png new file mode 100644 index 000000000..96b42bd2a Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-skeleton-PlayerSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-skeleton-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-skeleton-Vector.png new file mode 100644 index 000000000..a5cdcff22 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-skeleton-Vector.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-stone-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-stone-GlobalSprite2D.png new file mode 100644 index 000000000..4d0fe39e7 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-stone-GlobalSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-stone-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-stone-PlayerSprite2D.png new file mode 100644 index 000000000..b52e42d12 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-stone-PlayerSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-stone-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-stone-Vector.png new file mode 100644 index 000000000..b5f035a56 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-stone-Vector.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-table-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-table-GlobalSprite2D.png new file mode 100644 index 000000000..e7a0f0659 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-table-GlobalSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-table-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-table-PlayerSprite2D.png new file mode 100644 index 000000000..486fc8791 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-table-PlayerSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-table-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-table-Vector.png new file mode 100644 index 000000000..3da1e74c0 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-table-Vector.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-tree-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-tree-GlobalSprite2D.png new file mode 100644 index 000000000..81624795a Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-tree-GlobalSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-tree-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-tree-PlayerSprite2D.png new file mode 100644 index 000000000..139265a04 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-tree-PlayerSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-tree-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-tree-Vector.png new file mode 100644 index 000000000..c699d613a Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-tree-Vector.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-water-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-water-GlobalSprite2D.png new file mode 100644 index 000000000..fe429c72f Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-water-GlobalSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-water-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-water-PlayerSprite2D.png new file mode 100644 index 000000000..0bfc93d4f Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-water-PlayerSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-water-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-water-Vector.png new file mode 100644 index 000000000..10e705a25 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-water-Vector.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-zombie-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-zombie-GlobalSprite2D.png new file mode 100644 index 000000000..ae9869c96 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-zombie-GlobalSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-zombie-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-zombie-PlayerSprite2D.png new file mode 100644 index 000000000..53ffe6316 Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-zombie-PlayerSprite2D.png differ diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-zombie-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-zombie-Vector.png new file mode 100644 index 000000000..5754a534a Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-zombie-Vector.png differ diff --git a/docs/games/Grafter_Escape_Rooms/index.rst b/docs/games/Grafter_Escape_Rooms/index.rst new file mode 100644 index 000000000..1fe8477bf --- /dev/null +++ b/docs/games/Grafter_Escape_Rooms/index.rst @@ -0,0 +1,7138 @@ +.. _doc_grafter_escape_rooms: + +Grafter Escape Rooms +==================== + +.. code-block:: + + Single-Player/Grafter/escape-rooms.yaml + +Description +------------- + +100 human designed escape rooms using the mechanics of the Crafter environment. + +Levels +--------- + +.. list-table:: Levels + :class: level-gallery + :header-rows: 1 + + * - + - Vector + - GlobalSprite2D + - PlayerSprite2D + * - .. list-table:: + + * - Level ID + - 0 + * - Size + - 10x11 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-0.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-0.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-0.png + * - .. list-table:: + + * - Level ID + - 1 + * - Size + - 10x11 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-1.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-1.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-1.png + * - .. list-table:: + + * - Level ID + - 2 + * - Size + - 15x3 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-2.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-2.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-2.png + * - .. list-table:: + + * - Level ID + - 3 + * - Size + - 16x10 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-3.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-3.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-3.png + * - .. list-table:: + + * - Level ID + - 4 + * - Size + - 16x11 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-4.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-4.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-4.png + * - .. list-table:: + + * - Level ID + - 5 + * - Size + - 16x10 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-5.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-5.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-5.png + * - .. list-table:: + + * - Level ID + - 6 + * - Size + - 5x8 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-6.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-6.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-6.png + * - .. list-table:: + + * - Level ID + - 7 + * - Size + - 5x8 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-7.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-7.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-7.png + * - .. list-table:: + + * - Level ID + - 8 + * - Size + - 5x8 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-8.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-8.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-8.png + * - .. list-table:: + + * - Level ID + - 9 + * - Size + - 5x8 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-9.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-9.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-9.png + * - .. list-table:: + + * - Level ID + - 10 + * - Size + - 5x8 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-10.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-10.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-10.png + * - .. list-table:: + + * - Level ID + - 11 + * - Size + - 5x7 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-11.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-11.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-11.png + * - .. list-table:: + + * - Level ID + - 12 + * - Size + - 5x7 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-12.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-12.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-12.png + * - .. list-table:: + + * - Level ID + - 13 + * - Size + - 5x7 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-13.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-13.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-13.png + * - .. list-table:: + + * - Level ID + - 14 + * - Size + - 14x9 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-14.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-14.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-14.png + * - .. list-table:: + + * - Level ID + - 15 + * - Size + - 14x9 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-15.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-15.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-15.png + * - .. list-table:: + + * - Level ID + - 16 + * - Size + - 14x9 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-16.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-16.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-16.png + * - .. list-table:: + + * - Level ID + - 17 + * - Size + - 5x7 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-17.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-17.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-17.png + * - .. list-table:: + + * - Level ID + - 18 + * - Size + - 5x7 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-18.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-18.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-18.png + * - .. list-table:: + + * - Level ID + - 19 + * - Size + - 5x7 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-19.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-19.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-19.png + * - .. list-table:: + + * - Level ID + - 20 + * - Size + - 22x15 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-20.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-20.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-20.png + * - .. list-table:: + + * - Level ID + - 21 + * - Size + - 22x15 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-21.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-21.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-21.png + * - .. list-table:: + + * - Level ID + - 22 + * - Size + - 22x15 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-22.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-22.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-22.png + * - .. list-table:: + + * - Level ID + - 23 + * - Size + - 22x15 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-23.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-23.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-23.png + * - .. list-table:: + + * - Level ID + - 24 + * - Size + - 22x15 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-24.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-24.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-24.png + * - .. list-table:: + + * - Level ID + - 25 + * - Size + - 22x15 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-25.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-25.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-25.png + * - .. list-table:: + + * - Level ID + - 26 + * - Size + - 22x15 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-26.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-26.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-26.png + * - .. list-table:: + + * - Level ID + - 27 + * - Size + - 22x15 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-27.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-27.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-27.png + * - .. list-table:: + + * - Level ID + - 28 + * - Size + - 22x15 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-28.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-28.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-28.png + * - .. list-table:: + + * - Level ID + - 29 + * - Size + - 22x15 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-29.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-29.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-29.png + * - .. list-table:: + + * - Level ID + - 30 + * - Size + - 22x15 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-30.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-30.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-30.png + * - .. list-table:: + + * - Level ID + - 31 + * - Size + - 22x15 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-31.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-31.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-31.png + * - .. list-table:: + + * - Level ID + - 32 + * - Size + - 25x17 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-32.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-32.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-32.png + * - .. list-table:: + + * - Level ID + - 33 + * - Size + - 12x9 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-33.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-33.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-33.png + * - .. list-table:: + + * - Level ID + - 34 + * - Size + - 13x11 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-34.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-34.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-34.png + * - .. list-table:: + + * - Level ID + - 35 + * - Size + - 13x11 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-35.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-35.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-35.png + * - .. list-table:: + + * - Level ID + - 36 + * - Size + - 19x11 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-36.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-36.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-36.png + * - .. list-table:: + + * - Level ID + - 37 + * - Size + - 19x17 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-37.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-37.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-37.png + * - .. list-table:: + + * - Level ID + - 38 + * - Size + - 19x14 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-38.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-38.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-38.png + * - .. list-table:: + + * - Level ID + - 39 + * - Size + - 7x9 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-39.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-39.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-39.png + * - .. list-table:: + + * - Level ID + - 40 + * - Size + - 12x10 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-40.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-40.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-40.png + * - .. list-table:: + + * - Level ID + - 41 + * - Size + - 12x10 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-41.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-41.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-41.png + * - .. list-table:: + + * - Level ID + - 42 + * - Size + - 12x16 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-42.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-42.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-42.png + * - .. list-table:: + + * - Level ID + - 43 + * - Size + - 16x15 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-43.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-43.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-43.png + * - .. list-table:: + + * - Level ID + - 44 + * - Size + - 16x15 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-44.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-44.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-44.png + * - .. list-table:: + + * - Level ID + - 45 + * - Size + - 16x15 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-45.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-45.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-45.png + * - .. list-table:: + + * - Level ID + - 46 + * - Size + - 16x15 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-46.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-46.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-46.png + * - .. list-table:: + + * - Level ID + - 47 + * - Size + - 13x22 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-47.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-47.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-47.png + * - .. list-table:: + + * - Level ID + - 48 + * - Size + - 13x22 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-48.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-48.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-48.png + * - .. list-table:: + + * - Level ID + - 49 + * - Size + - 13x22 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-49.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-49.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-49.png + * - .. list-table:: + + * - Level ID + - 50 + * - Size + - 13x22 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-50.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-50.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-50.png + * - .. list-table:: + + * - Level ID + - 51 + * - Size + - 26x22 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-51.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-51.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-51.png + * - .. list-table:: + + * - Level ID + - 52 + * - Size + - 13x15 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-52.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-52.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-52.png + * - .. list-table:: + + * - Level ID + - 53 + * - Size + - 13x15 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-53.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-53.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-53.png + * - .. list-table:: + + * - Level ID + - 54 + * - Size + - 13x15 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-54.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-54.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-54.png + * - .. list-table:: + + * - Level ID + - 55 + * - Size + - 13x15 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-55.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-55.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-55.png + * - .. list-table:: + + * - Level ID + - 56 + * - Size + - 13x15 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-56.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-56.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-56.png + * - .. list-table:: + + * - Level ID + - 57 + * - Size + - 13x15 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-57.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-57.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-57.png + * - .. list-table:: + + * - Level ID + - 58 + * - Size + - 13x15 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-58.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-58.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-58.png + * - .. list-table:: + + * - Level ID + - 59 + * - Size + - 13x15 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-59.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-59.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-59.png + * - .. list-table:: + + * - Level ID + - 60 + * - Size + - 4x8 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-60.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-60.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-60.png + * - .. list-table:: + + * - Level ID + - 61 + * - Size + - 4x13 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-61.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-61.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-61.png + * - .. list-table:: + + * - Level ID + - 62 + * - Size + - 4x23 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-62.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-62.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-62.png + * - .. list-table:: + + * - Level ID + - 63 + * - Size + - 5x23 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-63.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-63.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-63.png + * - .. list-table:: + + * - Level ID + - 64 + * - Size + - 39x15 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-64.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-64.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-64.png + * - .. list-table:: + + * - Level ID + - 65 + * - Size + - 39x15 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-65.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-65.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-65.png + * - .. list-table:: + + * - Level ID + - 66 + * - Size + - 39x15 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-66.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-66.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-66.png + * - .. list-table:: + + * - Level ID + - 67 + * - Size + - 39x15 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-67.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-67.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-67.png + * - .. list-table:: + + * - Level ID + - 68 + * - Size + - 39x15 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-68.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-68.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-68.png + * - .. list-table:: + + * - Level ID + - 69 + * - Size + - 39x15 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-69.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-69.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-69.png + * - .. list-table:: + + * - Level ID + - 70 + * - Size + - 16x19 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-70.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-70.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-70.png + * - .. list-table:: + + * - Level ID + - 71 + * - Size + - 16x19 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-71.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-71.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-71.png + * - .. list-table:: + + * - Level ID + - 72 + * - Size + - 16x19 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-72.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-72.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-72.png + * - .. list-table:: + + * - Level ID + - 73 + * - Size + - 16x19 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-73.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-73.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-73.png + * - .. list-table:: + + * - Level ID + - 74 + * - Size + - 16x19 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-74.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-74.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-74.png + * - .. list-table:: + + * - Level ID + - 75 + * - Size + - 21x13 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-75.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-75.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-75.png + * - .. list-table:: + + * - Level ID + - 76 + * - Size + - 21x13 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-76.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-76.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-76.png + * - .. list-table:: + + * - Level ID + - 77 + * - Size + - 21x13 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-77.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-77.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-77.png + * - .. list-table:: + + * - Level ID + - 78 + * - Size + - 21x13 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-78.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-78.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-78.png + * - .. list-table:: + + * - Level ID + - 79 + * - Size + - 25x24 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-79.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-79.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-79.png + * - .. list-table:: + + * - Level ID + - 80 + * - Size + - 25x24 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-80.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-80.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-80.png + * - .. list-table:: + + * - Level ID + - 81 + * - Size + - 27x26 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-81.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-81.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-81.png + * - .. list-table:: + + * - Level ID + - 82 + * - Size + - 27x26 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-82.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-82.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-82.png + * - .. list-table:: + + * - Level ID + - 83 + * - Size + - 29x17 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-83.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-83.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-83.png + * - .. list-table:: + + * - Level ID + - 84 + * - Size + - 29x17 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-84.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-84.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-84.png + * - .. list-table:: + + * - Level ID + - 85 + * - Size + - 29x17 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-85.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-85.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-85.png + * - .. list-table:: + + * - Level ID + - 86 + * - Size + - 21x10 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-86.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-86.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-86.png + * - .. list-table:: + + * - Level ID + - 87 + * - Size + - 21x10 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-87.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-87.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-87.png + * - .. list-table:: + + * - Level ID + - 88 + * - Size + - 21x10 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-88.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-88.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-88.png + * - .. list-table:: + + * - Level ID + - 89 + * - Size + - 21x10 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-89.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-89.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-89.png + * - .. list-table:: + + * - Level ID + - 90 + * - Size + - 21x10 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-90.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-90.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-90.png + * - .. list-table:: + + * - Level ID + - 91 + * - Size + - 21x34 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-91.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-91.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-91.png + * - .. list-table:: + + * - Level ID + - 92 + * - Size + - 23x37 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-92.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-92.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-92.png + * - .. list-table:: + + * - Level ID + - 93 + * - Size + - 23x37 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-93.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-93.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-93.png + * - .. list-table:: + + * - Level ID + - 94 + * - Size + - 23x37 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-94.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-94.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-94.png + * - .. list-table:: + + * - Level ID + - 95 + * - Size + - 23x37 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-95.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-95.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-95.png + * - .. list-table:: + + * - Level ID + - 96 + * - Size + - 4x26 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-96.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-96.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-96.png + * - .. list-table:: + + * - Level ID + - 97 + * - Size + - 4x26 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-97.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-97.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-97.png + * - .. list-table:: + + * - Level ID + - 98 + * - Size + - 4x26 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-98.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-98.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-98.png + * - .. list-table:: + + * - Level ID + - 99 + * - Size + - 4x26 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-99.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-99.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-99.png + * - .. list-table:: + + * - Level ID + - 100 + * - Size + - 19x12 + - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-100.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-100.png + - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-100.png + +Code Example +------------ + +The most basic way to create a Griddly Gym Environment. Defaults to level 0 and SPRITE_2D rendering. + +.. code-block:: python + + + import gym + import griddly + + if __name__ == '__main__': + + env = gym.make('GDY-Grafter-Escape-Rooms-v0') + env.reset() + + # Replace with your own control algorithm! + for s in range(1000): + obs, reward, done, info = env.step(env.action_space.sample()) + env.render() # Renders the environment from the perspective of a single player + + env.render(observer='global') # Renders the entire environment + + if done: + env.reset() + + +Objects +------- + +.. list-table:: Tiles + :header-rows: 2 + + * - Name -> + - player + - water + - grass + - stone + - path + - sand + - tree + - plant + - lava + - coal + - iron + - diamond + - table + - furnace + - fence + - arrow + - zombie + - skeleton + - cow + * - Map Char -> + - `p` + - `W` + - `G` + - `s` + - `P` + - `S` + - `T` + - `+` + - `L` + - `c` + - `i` + - `d` + - `t` + - `f` + - `}` + - `a` + - `!` + - `@` + - `#` + * - Vector + - .. image:: img/Grafter_Escape_Rooms-tile-player-Vector.png + - .. image:: img/Grafter_Escape_Rooms-tile-water-Vector.png + - .. image:: img/Grafter_Escape_Rooms-tile-grass-Vector.png + - .. image:: img/Grafter_Escape_Rooms-tile-stone-Vector.png + - .. image:: img/Grafter_Escape_Rooms-tile-path-Vector.png + - .. image:: img/Grafter_Escape_Rooms-tile-sand-Vector.png + - .. image:: img/Grafter_Escape_Rooms-tile-tree-Vector.png + - .. image:: img/Grafter_Escape_Rooms-tile-plant-Vector.png + - .. image:: img/Grafter_Escape_Rooms-tile-lava-Vector.png + - .. image:: img/Grafter_Escape_Rooms-tile-coal-Vector.png + - .. image:: img/Grafter_Escape_Rooms-tile-iron-Vector.png + - .. image:: img/Grafter_Escape_Rooms-tile-diamond-Vector.png + - .. image:: img/Grafter_Escape_Rooms-tile-table-Vector.png + - .. image:: img/Grafter_Escape_Rooms-tile-furnace-Vector.png + - .. image:: img/Grafter_Escape_Rooms-tile-fence-Vector.png + - .. image:: img/Grafter_Escape_Rooms-tile-arrow-Vector.png + - .. image:: img/Grafter_Escape_Rooms-tile-zombie-Vector.png + - .. image:: img/Grafter_Escape_Rooms-tile-skeleton-Vector.png + - .. image:: img/Grafter_Escape_Rooms-tile-cow-Vector.png + * - GlobalSprite2D + - .. image:: img/Grafter_Escape_Rooms-tile-player-GlobalSprite2D.png + - .. image:: img/Grafter_Escape_Rooms-tile-water-GlobalSprite2D.png + - .. image:: img/Grafter_Escape_Rooms-tile-grass-GlobalSprite2D.png + - .. image:: img/Grafter_Escape_Rooms-tile-stone-GlobalSprite2D.png + - .. image:: img/Grafter_Escape_Rooms-tile-path-GlobalSprite2D.png + - .. image:: img/Grafter_Escape_Rooms-tile-sand-GlobalSprite2D.png + - .. image:: img/Grafter_Escape_Rooms-tile-tree-GlobalSprite2D.png + - .. image:: img/Grafter_Escape_Rooms-tile-plant-GlobalSprite2D.png + - .. image:: img/Grafter_Escape_Rooms-tile-lava-GlobalSprite2D.png + - .. image:: img/Grafter_Escape_Rooms-tile-coal-GlobalSprite2D.png + - .. image:: img/Grafter_Escape_Rooms-tile-iron-GlobalSprite2D.png + - .. image:: img/Grafter_Escape_Rooms-tile-diamond-GlobalSprite2D.png + - .. image:: img/Grafter_Escape_Rooms-tile-table-GlobalSprite2D.png + - .. image:: img/Grafter_Escape_Rooms-tile-furnace-GlobalSprite2D.png + - .. image:: img/Grafter_Escape_Rooms-tile-fence-GlobalSprite2D.png + - .. image:: img/Grafter_Escape_Rooms-tile-arrow-GlobalSprite2D.png + - .. image:: img/Grafter_Escape_Rooms-tile-zombie-GlobalSprite2D.png + - .. image:: img/Grafter_Escape_Rooms-tile-skeleton-GlobalSprite2D.png + - .. image:: img/Grafter_Escape_Rooms-tile-cow-GlobalSprite2D.png + * - PlayerSprite2D + - .. image:: img/Grafter_Escape_Rooms-tile-player-PlayerSprite2D.png + - .. image:: img/Grafter_Escape_Rooms-tile-water-PlayerSprite2D.png + - .. image:: img/Grafter_Escape_Rooms-tile-grass-PlayerSprite2D.png + - .. image:: img/Grafter_Escape_Rooms-tile-stone-PlayerSprite2D.png + - .. image:: img/Grafter_Escape_Rooms-tile-path-PlayerSprite2D.png + - .. image:: img/Grafter_Escape_Rooms-tile-sand-PlayerSprite2D.png + - .. image:: img/Grafter_Escape_Rooms-tile-tree-PlayerSprite2D.png + - .. image:: img/Grafter_Escape_Rooms-tile-plant-PlayerSprite2D.png + - .. image:: img/Grafter_Escape_Rooms-tile-lava-PlayerSprite2D.png + - .. image:: img/Grafter_Escape_Rooms-tile-coal-PlayerSprite2D.png + - .. image:: img/Grafter_Escape_Rooms-tile-iron-PlayerSprite2D.png + - .. image:: img/Grafter_Escape_Rooms-tile-diamond-PlayerSprite2D.png + - .. image:: img/Grafter_Escape_Rooms-tile-table-PlayerSprite2D.png + - .. image:: img/Grafter_Escape_Rooms-tile-furnace-PlayerSprite2D.png + - .. image:: img/Grafter_Escape_Rooms-tile-fence-PlayerSprite2D.png + - .. image:: img/Grafter_Escape_Rooms-tile-arrow-PlayerSprite2D.png + - .. image:: img/Grafter_Escape_Rooms-tile-zombie-PlayerSprite2D.png + - .. image:: img/Grafter_Escape_Rooms-tile-skeleton-PlayerSprite2D.png + - .. image:: img/Grafter_Escape_Rooms-tile-cow-PlayerSprite2D.png + + +Actions +------- + +cow_random_movement +^^^^^^^^^^^^^^^^^^^ + +:Internal: This action can only be called from other actions, not by the player. + +.. list-table:: + :header-rows: 1 + + * - Action Id + - Mapping + * - 1 + - + * - 2 + - + * - 3 + - + * - 4 + - + + +zombie_chase_proximity_trigger_on +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:Internal: This action can only be called from other actions, not by the player. + +.. list-table:: + :header-rows: 1 + + * - Action Id + - Mapping + + +act_attack_cooldown +^^^^^^^^^^^^^^^^^^^ + +:Internal: This action can only be called from other actions, not by the player. + +.. list-table:: + :header-rows: 1 + + * - Action Id + - Mapping + * - 1 + - + + +near_table_off +^^^^^^^^^^^^^^ + +:Internal: This action can only be called from other actions, not by the player. + +.. list-table:: + :header-rows: 1 + + * - Action Id + - Mapping + + +zombie_chase_proximity_trigger_off +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:Internal: This action can only be called from other actions, not by the player. + +.. list-table:: + :header-rows: 1 + + * - Action Id + - Mapping + + +update_player_stats +^^^^^^^^^^^^^^^^^^^ + +:Internal: This action can only be called from other actions, not by the player. + +.. list-table:: + :header-rows: 1 + + * - Action Id + - Mapping + * - 1 + - + + +arrow_projectile +^^^^^^^^^^^^^^^^ + +:Internal: This action can only be called from other actions, not by the player. + +.. list-table:: + :header-rows: 1 + + * - Action Id + - Mapping + * - 1 + - Left + * - 2 + - Up + * - 3 + - Right + * - 4 + - Down + + +near_furnace_off +^^^^^^^^^^^^^^^^ + +:Internal: This action can only be called from other actions, not by the player. + +.. list-table:: + :header-rows: 1 + + * - Action Id + - Mapping + + +set_arrow_direction +^^^^^^^^^^^^^^^^^^^ + +:Internal: This action can only be called from other actions, not by the player. + +.. list-table:: + :header-rows: 1 + + * - Action Id + - Mapping + * - 1 + - + + +reload_arrow +^^^^^^^^^^^^ + +:Internal: This action can only be called from other actions, not by the player. + +.. list-table:: + :header-rows: 1 + + * - Action Id + - Mapping + * - 1 + - + + +near_table_on +^^^^^^^^^^^^^ + +:Internal: This action can only be called from other actions, not by the player. + +.. list-table:: + :header-rows: 1 + + * - Action Id + - Mapping + + +init_player +^^^^^^^^^^^ + +:Internal: This action can only be called from other actions, not by the player. + +.. list-table:: + :header-rows: 1 + + * - Action Id + - Mapping + * - 1 + - + + +near_furnace_on +^^^^^^^^^^^^^^^ + +:Internal: This action can only be called from other actions, not by the player. + +.. list-table:: + :header-rows: 1 + + * - Action Id + - Mapping + + +skeleton_fire_proximity_trigger +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:Internal: This action can only be called from other actions, not by the player. + +.. list-table:: + :header-rows: 1 + + * - Action Id + - Mapping + + +move +^^^^ + +.. list-table:: + :header-rows: 1 + + * - Action Id + - Mapping + * - 1 + - Move Left + * - 2 + - Move Up + * - 3 + - Move Right + * - 4 + - Move Down + + +zombie_chase_player +^^^^^^^^^^^^^^^^^^^ + +:Internal: This action can only be called from other actions, not by the player. + +.. list-table:: + :header-rows: 1 + + * - Action Id + - Mapping + * - 1 + - Left + * - 2 + - Up + * - 3 + - Right + * - 4 + - Down + + +do +^^ + +:Relative: The actions are calculated relative to the object being controlled. + +.. list-table:: + :header-rows: 1 + + * - Action Id + - Mapping + * - 1 + - Interact with an object + + +place +^^^^^ + +:Relative: The actions are calculated relative to the object being controlled. + +.. list-table:: + :header-rows: 1 + + * - Action Id + - Mapping + * - 1 + - Place a stone + * - 2 + - Place a table + * - 3 + - Place a furnace + + +skeleton_random_movement +^^^^^^^^^^^^^^^^^^^^^^^^ + +:Internal: This action can only be called from other actions, not by the player. + +.. list-table:: + :header-rows: 1 + + * - Action Id + - Mapping + * - 1 + - + * - 2 + - + * - 3 + - + * - 4 + - + + +skeleton_chase_player +^^^^^^^^^^^^^^^^^^^^^ + +:Internal: This action can only be called from other actions, not by the player. + +.. list-table:: + :header-rows: 1 + + * - Action Id + - Mapping + * - 1 + - + * - 2 + - + * - 3 + - + * - 4 + - + + +make +^^^^ + +:Relative: The actions are calculated relative to the object being controlled. + +.. list-table:: + :header-rows: 1 + + * - Action Id + - Mapping + * - 1 + - Make a wood pickaxe + * - 2 + - Make a stone pickaxe + * - 3 + - Make an iron pickaxe + + +skeleton_chase_proximity_trigger_off +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:Internal: This action can only be called from other actions, not by the player. + +.. list-table:: + :header-rows: 1 + + * - Action Id + - Mapping + + +skeleton_chase_proximity_trigger_on +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:Internal: This action can only be called from other actions, not by the player. + +.. list-table:: + :header-rows: 1 + + * - Action Id + - Mapping + + +zombie_random_movement +^^^^^^^^^^^^^^^^^^^^^^ + +:Internal: This action can only be called from other actions, not by the player. + +.. list-table:: + :header-rows: 1 + + * - Action Id + - Mapping + * - 1 + - Left + * - 2 + - Up + * - 3 + - Right + * - 4 + - Down + + +fire_arrow +^^^^^^^^^^ + +:Internal: This action can only be called from other actions, not by the player. + +.. list-table:: + :header-rows: 1 + + * - Action Id + - Mapping + * - 1 + - + * - 2 + - + * - 3 + - + * - 4 + - + + +YAML +---- + +.. code-block:: YAML + + Version: '0.1' + Environment: + Name: Grafter Escape Rooms + Description: >- + 100 human designed escape rooms using the mechanics of the Crafter + environment. + Observers: + Entity: + IncludeMasks: true + IncludePlayerId: + - player + IncludeRotation: + - player + GlobalVariableMapping: + - inv_wood_pickaxe + - inv_stone_pickaxe + - inv_iron_pickaxe + - inv_stone + - inv_coal + - inv_wood + - inv_iron + - health + Vector: + IncludeRotation: true + GlobalVariableMapping: + - inv_wood_pickaxe + - inv_stone_pickaxe + - inv_iron_pickaxe + - inv_stone + - inv_coal + - inv_wood + - inv_iron + - health + GlobalSprite2D: + Type: SPRITE_2D + TileSize: 24 + RotateAvatarImage: false + HighlightPlayers: false + PlayerSprite2D: + Type: SPRITE_2D + TileSize: 8 + RotateAvatarImage: false + Termination: + Win: + - eq: + - ach_eat_plant + - 1 + End: + - or: + - eq: + - _steps + - 500 + - eq: + - player_count + - 0 + Player: + Count: 1 + AvatarObject: player + Observer: + TrackAvatar: true + Width: 9 + Height: 7 + OffsetY: -1 + Variables: + - Name: ach_collect_coal + InitialValue: 0 + PerPlayer: true + - Name: ach_collect_diamond + InitialValue: 0 + PerPlayer: true + - Name: ach_collect_drink + InitialValue: 0 + PerPlayer: true + - Name: ach_collect_iron + InitialValue: 0 + PerPlayer: true + - Name: ach_collect_sapling + InitialValue: 0 + PerPlayer: true + - Name: ach_collect_stone + InitialValue: 0 + PerPlayer: true + - Name: ach_collect_wood + InitialValue: 0 + PerPlayer: true + - Name: ach_defeat_skeleton + InitialValue: 0 + PerPlayer: true + - Name: ach_defeat_zombie + InitialValue: 0 + PerPlayer: true + - Name: ach_defeat_player + InitialValue: 0 + PerPlayer: true + - Name: ach_eat_cow + InitialValue: 0 + PerPlayer: true + - Name: ach_eat_plant + InitialValue: 0 + PerPlayer: true + - Name: ach_make_iron_pickaxe + InitialValue: 0 + PerPlayer: true + - Name: ach_make_iron_sword + InitialValue: 0 + PerPlayer: true + - Name: ach_make_stone_pickaxe + InitialValue: 0 + PerPlayer: true + - Name: ach_make_stone_sword + InitialValue: 0 + PerPlayer: true + - Name: ach_make_wood_pickaxe + InitialValue: 0 + PerPlayer: true + - Name: ach_make_wood_sword + InitialValue: 0 + PerPlayer: true + - Name: ach_place_furnace + InitialValue: 0 + PerPlayer: true + - Name: ach_place_plant + InitialValue: 0 + PerPlayer: true + - Name: ach_place_stone + InitialValue: 0 + PerPlayer: true + - Name: ach_place_table + InitialValue: 0 + PerPlayer: true + - Name: ach_wake_up + InitialValue: 0 + PerPlayer: true + - Name: inv_wood_sword + InitialValue: 0 + PerPlayer: true + - Name: inv_stone_sword + InitialValue: 0 + PerPlayer: true + - Name: inv_iron_sword + InitialValue: 0 + PerPlayer: true + - Name: inv_wood_pickaxe + InitialValue: 0 + PerPlayer: true + - Name: inv_stone_pickaxe + InitialValue: 0 + PerPlayer: true + - Name: inv_iron_pickaxe + InitialValue: 0 + PerPlayer: true + - Name: inv_fence + InitialValue: 0 + PerPlayer: true + - Name: inv_sapling + InitialValue: 0 + PerPlayer: true + - Name: inv_stone + InitialValue: 0 + PerPlayer: true + - Name: inv_coal + InitialValue: 0 + PerPlayer: true + - Name: inv_iron + InitialValue: 0 + PerPlayer: true + - Name: inv_diamond + InitialValue: 0 + PerPlayer: true + - Name: inv_wood + InitialValue: 0 + PerPlayer: true + - Name: inv_food + InitialValue: 9 + PerPlayer: true + - Name: inv_drink + InitialValue: 9 + PerPlayer: true + - Name: inv_energy + InitialValue: 9 + PerPlayer: true + - Name: health + InitialValue: 9 + PerPlayer: true + - Name: near_table + InitialValue: 0 + PerPlayer: true + - Name: near_furnace + InitialValue: 0 + PerPlayer: true + - Name: damage + InitialValue: 1 + PerPlayer: true + - Name: is_sleeping + InitialValue: 0 + PerPlayer: true + - Name: fatigue + InitialValue: 0 + PerPlayer: true + - Name: recover + InitialValue: 0 + PerPlayer: true + - Name: hunger + InitialValue: 0 + PerPlayer: true + - Name: thirst + InitialValue: 0 + PerPlayer: true + - Name: player_done + InitialValue: 0 + PerPlayer: true + - Name: player_count + InitialValue: 0 + Levels: + - | + s s s s s s s s s s + s S S S S S S S S s + s S s s s s s s s s + s S s p/S S S S s +/S s + s S s S s s S s S s + s S s S s s S s S s + s S s S s s S s S s + s S s S s s S s S s + s S s S s s S s S s + s S S S s s S S S s + s s s s s s s s s s + - | + s s s s s s s s s s + s S S S S S S S +/S s + s S s s s s s s s s + s S s p/S S S S s S s + s S s S s s S s S s + s S s S s s S s S s + s S s S s s S s S s + s S s S s s S s S s + s S s S s s S s S s + s S S S s s S S S s + s s s s s s s s s s + - | + G G G G G G G G G G G G T +/G G + G . . . . . . . . . . . . . G + p/G G G G G G G G G G G G G G G + - | + . G G G G G G G G G G G G G T +/G + . G . . . . . . . . . . . . . . + . G . . . . . . . . . . . . . . + . G . . . . . . . . . . . . . . + . G . . . . . . . . . . . . . . + . G . . . . . . . . . . . . . . + . G . . . . . . . . . . . . . . + . G . . . . . . . . . . . . . . + . G . . . . . . . . . . . . . . + . p/G . . . . . . . . . . . . . . + - | + . . . . . . . . . . . . . t . . + . T G G G G G G G G G T G G s/G +/G + . G . . . . . . . . . . . . . . + . G . . . . . . . . . . . . . . + . G . . . . . . . . . . . . . . + . G . . . . . . . . . . . . . . + . G . . . . . . . . . . . . . . + . T . . . . . . . . . . . . . . + . G . . . . . . . . . . . . . . + . G . . . . . . . . . . . . . . + . p/G . . . . . . . . . . . . . . + - | + . T G G G G G G G G G T G G s/G +/G + . G . . . . . . . . . . . . . . + . G . . . . . . . . . . . . . . + . G . . . . . . . . . . . . . . + . G . . . . . . . . . . . . . . + . G . . . . . . . . . . . . . . + . T . . . . . . . . . . . . . . + . G . . . . . . . . . . . . . . + t G . . . . . . . . . . . . . . + . p/G . . . . . . . . . . . . . . + - | + G G +/G G G + G W s/P W G + W G p/G G W + W G t/T G W + W G T G W + G W W W G + G G G G G + G G G G G + - | + G G +/G G G + G W s/P W G + W G p/G G W + W G t/T G W + W G T G W + G W W W G + G G G G G + G G G G G + - | + G G +/G G G + G W s/P W G + W G p/G G W + W G G G W + W T T T W + G W W W G + G G G G G + G G G G G + - | + G G +/G G G + G W W W G + W G p/G G W + W G G G W + W T T T W + G W s/P W G + G G G G G + G G G G G + - | + G G +/G G G + G W W W G + W G p/G G W + W G G G W + W T T T W + G W s/P W G + G G G G G + G G G G G + - | + T G G i/G +/G + T G G i/G i/G + G G G G G + G G p/G G G + G G G G G + t/G G G G s/G + G G G G G + - | + T T G i/G +/G + T T G i/G i/G + G G G G G + G G p/G G G + G G G G G + G G G G G + s G G G G + - | + G T G i/G +/G + G G G i/G i/G + G G G G T + G G p/G G G + G G G G s/G + G G G G G + T G G T G + - | + G p/G G G G G G G G G G G G G + G G G G G G L L L G G G G G + G G G G G L L L L L G G G G + G G G G L L L L L L L G G G + L L L L L L L L L L L L G G + G G G G L L L L L L L G G G + G G G G G L L L L L G G G G + G +/G G G G G L L L G G G G G + G G G G G G G G G G G G G G + - | + G p/G G G G G G G G G G G G G + G G G G G G L L L G G G G G + G G G G G L L L L L G G G G + G G G G L L L L L L L G G G + L L L L L L L L L L L L G G + G G G G L L L L L L L G G G + G G G G G L L L L L G G G G + G +/G G G G G L L L G G G #/G G + G G G G G G G G G G G G G G + - | + G p/G G G G T G G G G G G G G + G G G T T G L L L G G T G G + G G T T G L L L L L G G T G + G G G G L L L L L L L G T G + L L L L L L L L L L L L G G + G G G G L L L L L L L G G G + G G G G G L L L L L G G G G + G +/G G G G G L L L G G G #/G G + G G G G G G G G G G G G G G + - | + G T P d/G +/G + G G P d/G d/G + G G P P P + G G p/G G T + c G S G s/G + i S S S t/G + T S S S f/G + - | + T T P d/G +/G + T G P d/G d/G + G G P P P + G G p/G G T + c G S G s/G + i S S S S + T S S S f/G + - | + T T P d/G +/G + T G P d/G d/G + G G P P P + G G p/G G T + c G S G s/G + i S S s/S s/S + T S S s/S s/S + - > + s s s s s s s s s s s s s s s s s s s + s s s + + s p/P P s P P P P P s P P P P P s P P P + P P s + + s P P s P P P P P s P P P P P s P P P + P P s + + s P P s P P s P P s P P s P P s P P s + P P s + + s P P s P P s P P s P P s P P s P P s + P P s + + s P P s P P s P P s P P s P P s P P s + P P s + + s P P s P P s P P s P P s P P s P P s + P P s + + s P P s P P s P P s P P s P P s P P s + P P s + + s P P s P P s P P s P P s P P s P P s + P P s + + s P P s P P s P P s P P s P P s P P s + P P s + + s P P s P P s P P s P P s P P s P P s + P P s + + s P P s P P s P P s P P s P P s P P s + P P s + + s P P P P P s P P P P P s P P P P P s + P P s + + s P P P P P s P P P P P s P P P P P s + P +/P s + + s s s s s s s s s s s s s s s s s s s + s s s + - > + s s s s s s s s s s s s s s s s s s s + s s s + + s p/P P s P P T P P s P P T P P s P P T + P P s + + s P P s P P T P P s P P T P P s P P T + P P s + + s P P s P P s P P s P P s P P s P P s + P P s + + s P P s P P s P P s P P s P P s P P s + P P s + + s P P s P P s P P s P P s P P s P P s + P P s + + s P P s P P s P P s P P s P P s P P s + P P s + + s P P s P P s P P s P P s P P s P P s + P P s + + s P P s P P s P P s P P s P P s P P s + P P s + + s P P s P P s P P s P P s P P s P P s + P P s + + s P P s P P s P P s P P s P P s P P s + P P s + + s P P s P P s P P s P P s P P s P P s + P P s + + s P P T P P s P P P P P s P P P P P s + P P s + + s P P T P P s P P P P P s P P P P P s + P +/P s + + s s s s s s s s s s s s s s s s s s s + s s s + - > + # s s s s s s s s s s s s s s s s s + s s s s + + s p/P P s P P T P P s P P T P P s P P + T P P s + + s P P s #/P P T P P s P P T P P s P P + T P P s + + s P P s P P s P P s P #/P s P P s P #/P + s P P s + + s P P s P P s P P s P P s P P s P P + s P P s + + s P P s P P s P P s P P s P P s P P + s P P s + + s P P s P P s P P s P P s P #/P s P P + s P #/P s + + s P P s P P s P P s P P s P P s P P + s P P s + + s P P s P P s P P s P P s P P s P P + s P P s + + s P P s P P s P P s P P s P P s P P + s P P s + + s P P s P P s P #/P s P P s P P s P P + s P P s + + s P P s P P s P P s P P s P P s P P + s P P s + + s P P T P P s P P T P P s P P T P P + s P P s + + s P P T P P s P P T P P s P P T P P + s P +/P s + + s s s s s s s s s s s s s s s s s s + s s s s + - > + i i i i i i i i i i i i i i i i i i + i i i i + + i p/P t/P i P P s/P P P i P P s/P P P i P P + s/P P P i + + i P T i P P s/P P P i P P s/P P P i P P + s/P P P i + + i P P i P P i P P i P P i P P i P P + i P P i + + i P P i P P i P P i P P i P P i P P + i P P i + + i P P i P P i P #/P i P P i P P i P P + i P P i + + i P P i P P i P P i #/P P i P P i P P + i P P i + + i P P i P P i P P i P P i P #/P i P P + i P @/P i + + i P P i P P i P P i P P i P P i #/P P + i P P i + + i P P i P P i P P i P P i P P i P P + i P P i + + i P P i P P i P P i P P i P P i P P + i P P i + + i P P i P P i P P i P P i P P i P P + i P P i + + i P P s/P P P i P P s/P P P i P P s/P P P + i P P i + + i P P s/P #/P P i P P s/P P P i P P s/P P P + i P +/P i + + i i i i i i i i i i i i i i i i i i + i i i i + - > + i i i i i i i i i i i i i i i i i i i + i i i + + i p/P t/P i P P s/P P P i P P s/P P P i P P s/P + P P i + + i P T i P P s/P P P i P P s/P P P i P P s/P + P P i + + i P P i P P i P P i P P i P P i P P i + P P i + + i P P i P P i P P i P P i P P i P P i + P P i + + i P P i P P i P P i P P i P P i P P i + P P i + + i P P i P P i P P i P P i P P i P P i + P P i + + i P P i P P i P P i P P i P P i P P i + P P i + + i P P i P P i P P i P P i P P i P P i + P P i + + i P P i P P i P P i P P i P P i P P i + P P i + + i P P i P P i P P i P P i P P i P P i + P P i + + i P P i P P i P P i P P i P P i P P i + P P i + + i P P s/P P P i P P s/P P P i P P s/P P P i + P P i + + i P P s/P P P i P P s/P P P i P P s/P P P i + P +/P i + + i i i i i i i i i i i i i i i i i i i + i i i + - > + i i i i i i i i i i i i i i i i i i + i i i i + + i p/P t/P i P P s/P P P i P P s/P P P i P P + s/P P P i + + i P T i P P s/P P P i P P s/P P P i P P + s/P P #/P i + + i P P i P P i P P i P P i P P i P #/P + i P P i + + i P P i P P i P P i P P i P P i P P + i P P i + + i P P i P P i P P i P P i P #/P i P P + i P P i + + i P P i P P i P P i P P i P P i P P + i P P i + + i P P i P P i P P i P #/P i P P i P P + i P P i + + i P P i P P i P P i P P i P P i P P + i P P i + + i P P i P P i P #/P i P P i P P i P P + i P P i + + i P P i P P i P P i P P i P P i P P + i P P i + + i P P i #/P P i P P i P P i P P i P P + i P P i + + i P P s/P P P i P P s/P P P i P P s/P P P + i P P i + + i P P s/P P P i P P s/P P P i P P s/P P P + i P +/P i + + i i i i i i i i i i i i i i i i i i + i i i i + - > + i i i i i i i i i i i i i i i i i i + i i i i + + i p/G G i S S s/P P P i S S s/P P P i S S + s/P P P i + + i G T i S S s/P P P i S S s/P P P i S S + s/P P #/P i + + i G G i S S i P P i S S i P P i S #/S + i P P i + + i G G i S S i P P i S S i P P i S S + i P P i + + i G G i S S i P P i S S i P #/P i S S + i P P i + + i G G i S S i G G i S S i G G i S S + i G G i + + i T G i S S i G G i S #/S i G G i S S + i G G i + + i G G i S S i G G i S S i G G i S S + i G G i + + i G G i S S i P #/P i S S i P P i S S + i P P i + + i G G i S S i P P i S S i P P i S S + i P P i + + i G G i #/S S i P P i S S i P P i S S + i P P i + + i G G s/P S S i P P s/P S S i P P s/P S S + i P P i + + i G T s/P S S i P P s/P S S i P P s/P S S + i P +/P i + + i i i i i i i i i i i i i i i i i i + i i i i + - > + i i i i i i i i i i i i d d d d d d d + d d d + + i p/G G i S S s/P P P i S T i/P P P d S S s/P + P P d + + i G T i S S s/P P P i S S d/P P P d S S s/P + P P d + + i G G i S S i P P i S S d P P d S S d + P P d + + i G G i S S i P P i S S d P P d S S d + P P d + + i G G i S S i P P i S S d P P d S S d + P P d + + i G G i S S i G G i S S d G G d S S d + G G d + + i T G i S S i G G i S S d G G d S S d + G G d + + i G G i S S i G G i S S d G G d S S d + G G d + + i G G i S S i P P i S S d P P d S S d + P P d + + i G G i S S i P P i S S d P P d S S d + P P d + + i G G i S S i P P i S S d P P d S S d + P P d + + i G G s/P S S i P P s/P S S d P P s/P S S d + P P d + + i G T s/P S S i P P s/P S S d P P s/P S S d + P +/P d + + i i i i i i i i i i i i d d d d d d d + d d d + - > + i i i i i i i i i i i i i i i i i i i + i i i + + i p/P t/P i P P s/P P P i P P s/P P P i P P s/P + P P i + + i P T i P P s/P P P i P P s/P P P i P P s/P + P P i + + i P P i P P i P P i P P i P P i P P i + W W i + + i P P i P P i P P i P P i P P i P P i + P P i + + i P P i P P i P P i W W i P P i P P i + P P i + + i P P i P P i P P i P P i W W i P P i + P P i + + i P P i P P i P P i P P i P P i P P i + P P i + + i P P i W W i W W i P P i P P i W W i + P P i + + i P P i P P i P P i P P i P P i P P i + P P i + + i P P i P P i P P i P P i P P i P P i + P P i + + i P P i P P i P P i P P i P P i P P i + P P i + + i P P s/P P P i P P s/P P P i P P s/P P P i + P P i + + i P P s/P P P i P P s/P P P i P P s/P P P i + P +/P i + + i i i i i i i i i i i i i i i i i i i + i i i + - > + i i i i i i i i i i i i i i i i i i i + i i i + + i p/P t/P i P P s/P P P i P P s/P P P i P P s/P + P P i + + i P T i P P s/P P P i P P s/P P P i P P s/P + P P i + + i P P i P P i P P i P P i P P i P P i + W W i + + i P P i P P i P P i P P i P P i P P i + W W i + + i P P i P P i P P i W W i P P i P P i + P P i + + i P P i P P i P P i W W i W W i P P i + P P i + + i P P i W W i W W i P P i W W i P P i + P P i + + i P P i W W i W W i P P i P P i W W i + P P i + + i P P i P P i P P i P P i P P i W W i + P P i + + i P P i P P i P P i P P i P P i P P i + P P i + + i P P i P P i P P i P P i P P i P P i + P P i + + i P P s/P P P i P P s/P P P i P P s/P P P i + P P i + + i P P s/P P P i P P s/P P P i P P s/P P P i + P +/P i + + i i i i i i i i i i i i i i i i i i i + i i i + - > + i i i i i i i i i i i i i i i i i i i + i i i + + i p/P t/P i P P s/P P P i P P s/P P P i P P s/P + P P i + + i P T i P P s/P P P i P P s/P W W i P P s/P + P P i + + i P P i P P i P P i P P i W W i P P i + W W i + + i P P i W W i P P i P P i W W i W W i + W W i + + i P P i W W i P P i W W i W W i W W i + W W i + + i P P i W W i P P i W W i W W i W W i + W W i + + i P P i W W i W W i W W i W W i W W i + W W i + + i P P i W W i W W i W W i P P i W W i + W W i + + i P P i P P i W W i W W i P P i W W i + W W i + + i P P i P P i W W i P P i P P i P P i + P P i + + i P P i P P i W W i P P i P P i P P i + P P i + + i P P s/P P P i P P s/P P P i P P s/P P P i + P P i + + i P P s/P P P i P P s/P P P i P P s/P P P i + P +/P i + + i i i i i i i i i i i i i i i i i i i + i i i + - > + i i i i i i i i i i i i i i i i i i i + i i i + + i p/P t/P i P P s/P P P i P P s/P P P i W W s/P + W W i + + i P T i P P s/P P P i P P s/P S S i W W s/P + W W i + + i P P i P P i P P i P P i S S i W W i + W W i + + i P P i S S i P P i P P i S S i W W i + W W i + + i P P i S S i P P i S S i S S i W W i + W W i + + i P P i S S i P P i S S i S S i W W i + W W i + + i P P i S S i S S i S S i S S i W W i + W W i + + i P P i S S i S S i S S i P P i W W i + W W i + + i P P i P P i S S i S S i P P i W W i + W W i + + i P P i P P i S S i P P i P P i W W i + W W i + + i P P i P P i S S i P P i P P i W W i + W W i + + i P P s/P P P i P P s/P P P i P P s/P W W i + W W i + + i P P s/P P P i P P s/P P P i P P s/P W W i + W +/P i + + i i i i i i i i i i i i i i i i i i i + i i i + - > + . . . . . . . . . . . . W . . . . . . + . . . . . . + + . . . . . . . . . W W W W . . . . . W + W W W . . . + + . . . . . . . . . . . . W . . . . . W + . . . . . . + + . . . . . . . . . . . . W . . . . . W + . . . . . W + + . +/G W W W W W W W W W W W W W W W W W + W W . W W W + + . i/G . . . . . . . . . . . . . . . . . + . W . W . . + + . s/G W W W W W W W W W W . . . . . . . + . W W W . . + + . p/G . . . . W . . . . W . . . . . . . + . W . . . . + + . G . . . . W . . . . W . . . . . . . + . W . . . . + + T G . . . . W . . . . W . . . . . . . + . W . . . . + + . t . . . . W . . . . W . . . . W . . + . W . W . . + + . . . . . . . . W W W W . . . . W . . + . W W W . . + + . . . . . . . . . . . W . . . . W . . + . W . . . . + + . . . . . . . . . . . W W W W W W W W + W W . . . . + + . . . . . . . . . . . . . . . . . . . + W . . . . . + + . . . . . . . . . . . . . . . . . . . + W . . . . . + + . . . . . . . . . . . . . . . . . . . + W . . . . . + - | + . . . . . . . . . . . . + . . . . . . . . . . . . + . +/G W W W W W W W W W W + . i/G . . . . . . . . . W + . s/G W W W W W W W W W W + . p/G . . . . . . . . . . + . G . . . . . . . . . . + T G . . . . . . . . . . + . t . . . . . . . . . . + - | + . . . . . W W W W . . . . + . . . . . W . . W . . . . + . . . . . W . . W . . . . + . . . . . W . . W . . . . + . +/G W W W W . . W W W W W + . i/G . . . . . . . . . . W + . G s/P W W W . . W W W W W + . p/G . . . W . . W . . . . + . G . . . W . . W . . . . + T G . . . W . . W . . . . + . t . . . W W W W . . . . + - | + . . . . . G G #/G G . . . . + . . . . . W . . W . . . . + . . . . . W . . W . . . . + . . . . . W . . W . . . . + . +/G W W W W . . W W W W W + . i/G . . . . . . . . . . W + . G s/P W W W . . W W W W W + . p/G . . . W . . W . . . . + . G . . . W . . W . . . . + T G . . . W . . W . . . . + . t . . . P P #/P P . . . . + - | + . . . . . W W W W W W W W . . . . . . + . . . . . W . . . . . . W . . . . . . + . . . . . W . . . . . . W . . . . . . + . . . . . W . . . . . . W W W W W W T + . +/G i/P W W W . . . . . . W . . . . . . + . d . . . . . . . . . . W . . . . . . + . G s/P W W W . . W W W W W . . . . . . + . p/G . . . W . . W . . . . . . . . . . + . G . . . W . . W . . . . . . . . . . + T G . . . W . . W . . . . . . . . . . + . t . . . W W W W . . . . . . . . . . + - | + . . . . . W W W W W W W W . . . . . . + . . . . . W . . . . . . W . . . . . . + . . . . . W . . . . . . W . . . . . . + . . . c . W . . . . . . W W W W W W T + . +/G d/P W W W . . . . . . W . . . . . . + . . . . . . . . . . . . W . . . . . . + . G s/P W W W . . W W W W W . . . . . . + . p/G . . . W . . W . . . W . . . . . . + . G . . . W . . W . . . W . . . . . . + T G i . . W . . W . . . W . . . . . . + . t f . . W W W W . . . W . . . . . . + . T . . . . . . . . . . W . . . . . . + . W . . . . . . . . . . W . . . . . . + . W W W W W W W . . . . W . . . . . . + . . . . . . . W . . . . W . . . . . . + . . . . . . . W . . . . W . . . . . . + . . . . . . . W W W W W W . . . . . . + - | + . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . + +/G d/P W W W W W W W W W W W W W W W W T + . . . . . . . . . . . . W . . . . . . + . . . . . . . . . . . . W . . . . . . + . G s/P W W W W W W W W W W . . . . . . + . p/G . . . . . W . . . . W . . . . . . + . G . . . . . W . . . . W . . . . . . + T G i . . . . W . . . . W . . . . . . + . t f . . . . W . . . . W . . . . . . + . T . . . . . c . . . . W . . . . . . + . W . . . . . . . . . . W . . . . . . + . W W W W W W W W W W W W . . . . . . + - | + L L L L L L L + L L L L L L L + L L L +/G W L L + L L L i/G W L L + L L L s/G W L L + L L T p/G L L L + L L L t/G L L L + L L L L L L L + L L L L L L L + - | + L L L L L L L L L L L L + L L L L L L L L L L L L + L L L L L L L L L L L L + L L L +/G W W W W W W L L + L L L i/G L L L L L W L L + L L L s/G W W W W W W L L + L L T p/G L L L L L L L L + L L L t/G L L L L L L L L + L L L L L L L L L L L L + L L L L L L L L L L L L + - | + L L L L L L L L L L L L + L L L L L L L L L L L L + L L L L L L L L L L L L + L L L +/G W W W L L L L L + L L L i/G L L W L L L L L + L L L s/G W W W L L L L L + L L T p/G L L L L L L L L + L L L t/G L L L L L L L L + L L L L L L L L L L L L + L L L L L L L L L L L L + - | + L L L L L L L L L L L L + L L L L L L L L L L L L + L L L L L L L L L L L L + L L L L L L L L L L L L + L L L W W W W W W W L L + L L L W L L L L L W L L + L L L W L L L L L W L L + L L L W L L L L L W L L + L L L +/G L L W W W W L L + L L L i/G L L W L L L L L + L L L s/G W W W L L L L L + L L T p/G L L L L L L L L + L L L t/G L L L L L L L L + L L L L L L L L L L L L + L L L L L L L L L L L L + L L L L L L L L L L L L + - | + s s s s s s s s s s s s s s s s + s G G +/G G G G G G G G G G G G s + s G G G G G G G G G G G G G G s + s G G G G G G G G G G G G G G s + s s s T s s s s T s s s T s s s + s G G G G s G G G G s G G G G s + s G #/G #/G G s G G G G s G #/G #/G G s + s G G G G s G G G G s G G G G s + s G #/G #/G G s G G G G s G #/G #/G G s + s G G G G s G G G G s G G G G s + s s T s s s s T s s s s s T s s + s G G G G G G G G G G G G G G s + s/G G G G G G G G G G G G G G G s + s G G G G G G p/G G G G G G G G s + s s s s s s s s s s s s s s s s + - | + s s s s s s s s s s s s s s s s + s G G +/G G G G G G G G G G G G s + s G G G G G G G G G G G G G G s + s G G G G G G G G G G G G G G s + s s s T s s s s T s s s T s s s + s S S S S s G G G G s P P P P s + s S #/S #/S S s G G G G s P #/P #/P P s + s S S S S s G #/G G G s P P P P s + s S #/S #/S S s G G G G s P #/P #/P P s + s S S S S s G G G G s P P P P s + s s T s s s s T s s s s s T s s + s G G G G G G G G G G G G G G s + s/G G G G G G G G G G G G G G G s + s G G G G G G p/G G G G G G G G s + s s s s s s s s s s s s s s s s + - | + s s s s s s s s s s s s s s s s + s P P +/P P P P P P P P P P P P s + s P P P P P P P P P P P P P P s + s P P P P P P P P P P P P P P s + s s s T s s s s T s s s T s s s + s S S S S s S S S S s G G G G s + s S #/S #/S S s S S S S s G #/G #/G G s + s S S S S s S S S S s G G G G s + s S #/S #/S S s S S S S s G #/G #/G G s + s S S S S s S S S S s G G G G s + s s T s s s s T s s s s s T s s + s S S S S S S S S S S S S S S s + s/G S S S S S S S S S S S S S S s + s S S S S S S p/S S S S S S S S s + s s s s s s s s s s s s s s s s + - | + i i i i i i i i i i i i i i i i + i P P P P P P P P P P P P P P i + i P P P P P P P P P P P P P +/P i + i P P P P P P P P P P P P P P i + i i i s i i i i s i i i s i i i + i S S S S i S S S S i G G G G i + i S #/S #/S S i S S S S i G #/G #/G G i + i S S S S i S S S S i G G G G i + i S #/S #/S S i S S S S i G #/G #/G G i + i S S S S i S S S S i G G G G i + i i s i i i i s i i i i i s i i + i G G G G G G G T G G G G G G i + i/G G G G G G G G G G G G G G G i + i T G G G G G p/G G G G G G G T i + i i i i i i i i i i i i i i i i + - | + L L L L L L L L L L L L L + L L L L L L L L L L +/G L L + L L L L L L L L L L W L L + L L L L L W W W W W W L L + L L L L L W L L L L L L L + L L L L L W L L L L L L L + L L L L L W W W W W W W L + L L L L L L L L L L L W L + L L L L L L L L L L L W L + L L W W W W W W W W W W L + L L W L L L L L L L L L L + L L W L L L L L L L L L L + L L W W W W W W W W W L L + L L L L L L L L L L W L L + L L L L L L L L L L W L L + L L L L L L W W W W W L L + L L L L L L W L L L L L L + L L L L L L W L L L L L L + L L L L L L s/W L L L L L L + L L L G G G p/G G T t/G L L L + L L L L L L L L L L L L L + L L L L L L L L L L L L L + - | + L L L L L L L L L L L L L + L L L L L L L L L L +/G L L + L L L L L L L L L L W L L + L L L L L W W W W W W P #/P + L L L L L W L L L L L L L + L L L L L W L L L L L L L + L L #/P P P W W W W W W W L + L L L L L L L L L L L W L + L L L L L L L L L L L W L + L L W W W W W W W W W W L + L L W L L L L L L L L L L + L L W L L L #/P L L L L L L + L L W W W L P L W W W L L + L L L L W W W W W L W L L + L L L L L L L L L L W L L + L L L L L L W W W W W L L + L L L L L L W L L L L L L + L L L L L L W P #/P L L L L + L L L L L L s/W L L L L L L + L L L G G G p/G G T t/G L L L + L L L L L L L L L L L L L + L L L L L L L L L L L L L + - | + L L L L L L L L L L L L L + L L L L L L L L L L +/G L L + L L L L L L L L L L W L L + L L L L L W W W W W W P #/P + L L L L L W L L L L L L L + L L L L L W L L L L L L L + L L #/P P P W W W W W W W L + L L L L L L L L L L L W L + L L L L L L L L L L L W L + L L W W W W W W W W W W L + L L W L L L L L L L L L L + L L W L L L #/P L L L L L L + L L W W W L P L W W W L L + L L L L W W W W W L W L L + L L L L L L L L L L W L L + L L L L L L W W W W W L L + L L L L L L W L L L L L L + L L L L L L W P #/P L L L L + L L L L L L s/W L L L L L L + L L L G G G p/G G T t/G L L L + L L L L L L L L L L L L L + L L L L L L L L L L L L L + - | + L L L L L L L L L L L L L + L L L L L L L L L L +/G L L + L L L L L L L L L L W L L + L L L L L W W W W W W P #/P + L L L L L W L L L L L L L + L L L L L W L L L L L L L + L L #/P P P W W W W W W W L + L L L L L L L L L L L W L + L L L L L L L L L L L W L + L L W W W W W W W W W W L + L L W L L L L L L L L L L + L L W L L L #/P L L L L L L + L L W W W L P L W W W L L + L L L L W W W W W L W L L + L L L L L L L L L L W L L + L L L L L L W W W W W L L + L L L L L L W L L L L L L + L L L L L L W P #/P L L L L + L L L L L L s/W L L L L L L + L L L G G G p/G G T t/G L L L + L L L L L L L L L L L L L + L L L L L L L L L L L L L + - > + . . L L L L L L L L L L L L L d/L L L + L L L L L L L L + + . . L L L L L L L L L L G G G T G G + G G i/G s/G G G L L + + . . L L L L L L L L L L W L L d/L L L + L L L L L W L L + + . . L L L L L W W W W W W P #/P d/L W W + W W W W W W L L + + . . L L L L L W L L L L L L d/L d/L W d/L + d/L d/L d/L d/L d/L d/L d/L d/L + + . . L L L L L W L L L L L L d/L L W L + L W W W W W L L + + . . L L #/P P P W W W W W W W d/L L W L + L W d/L d/L d/L W L L + + . . L L L L L L L L L L L W d/L L W L + L W d/L L L W L L + + . . L L L L L L L L d/L L L W d/L L W L + L W d/L L L W L L + + . . L L W W W W W W W W W W d/L L W L + L W d/L L L W L L + + . . L L W L L L L L L L L L d/L L W L + L W d/L L L W L L + + . . L L W L L L #/P L L L L L d/L L W L + L W d/L L L W L L + + . . L L W W W L P L W W W L d/L L W L + L W d/L L L W L L + + . . L L L L W W W W W L W L d/L L W L + L W d/L L L W L L + + . . L L L L L L L L L L W L d/L L W L + L W d/L L L W L L + + . . L L L L L L W W W W W L d/L L W L + L W d/L L W W L L + + . . L L L L L L W L L L L L d/L L W L + L W d/L L W L L L + + . . L L L L L L W P #/P L d/L d/L d/L L W L + L W d/L L W L L L + + . . L L L L L L s/W L L L d/L W W W W L + L W d/L L W L L L + + . . L L L G G t/G p/G G T G d/L W d/L d/L d/L d/L + W W d/L L +/G L L L + + . . L L L L L L L L L L d/L W W W W W + W L d/L L L L L L + + . . L L L L L L L L L L d/L L L L L L + L L d/L L L L L L + - | + G G G G G G G G G G G G G + G . . . . . . . . . . . G + G . G G G G G G G G G . G + G . G . . . . . . . G . G + G . G . G G G G G . G . G + G . G . G . . . G . G . G + G . G . G . +/G . G . G . G + G . G . G . G . G . G . G + G . G . G G G . G . G . G + G . G . . . . . G . G . G + G . G G G G G G G . G . G + G . . . . . . . . . G . G + G G G G G G G G G G G . G + . . . . . . . . . . . . G + p/G G G G G G G G G G G G G + - | + T G G G G G G G G G G G T + G . . . . . . . . . . . G + G . T G G G G G G G T . G + G . G . . . . . . . G . G + G . G . T G G G T . G . G + G . G . G . . . G . G . G + G . G . G . +/G . G . G . G + G . G . G . G . G . G . G + G . G . T G T . G . G . G + G . G . . . . . G . G . G + G . T G G G G G T . G . G + G . . . . . . . . . G . G + T G G G G G G G G G T . G + . . . . . . . . . . . . G + p/G G G G G G G G G G G G T + - | + T T G G G G G G G G G T T + T . . . . . . . . . . . T + G . T T G G G G G T T . G + G . T . . . . . . . T . G + G . G . T T G T T . G . G + G . G . T . . . T . G . G + G . G . G . +/G . G . G . G + G . G . T . T . G . G . G + G . G . T T T . G . G . G + G . T . . . . . T . G . G + G . T T G G G T T . G . G + T . . . . . . . . . T . G + T T G G G G G G G T T . G + . . . . . . . . . . . . T + p/G G G G G G G G G G G T T + - | + T T T T G G G G G T T T T + T . . . . . . . . . . . T + T . T T T T G T T T T . T + T . T . . . . . . . T . T + G . T . T T T T T . T . G + G . T . T . . . T . T . G + G . G . T . +/G . T . G . G + G . G . T . T . T . G . G + G . T . T T T . T . G . G + T . T . . . . . T . T . G + T . T T T T T T T . T . G + T . . . . . . . . . T . T + T T T T G G G T T T T . T + . . . . . . . . . . . . T + p/G G G G G G G G G T T T T + - | + P P P P P P P P P P P P P + P . . . . . . . . . . . P + P . P P P P P P P P P . P + P . P . . . . . . . P . P + P . P . P P P P P . P . P + P . P . P . . . P . P . P + P . P . P . +/G . P . P . P + P . P . P . P . P . P . P + P . P . P P P . P . P . P + P . P . . . . . P . P . P + P . P P P P P P P . P . P + P . . . . . . . . . P . P + P P P P P P P P P P P . P + . . . . . . . . . . . . P + p/P P P P P P P P P P P P P + - | + s/P P P P P P P P P P P P s/P + P . . . . . . . . . . . P + P . s/P P P P P P P P s/P . P + P . P . . . . . . . P . P + P . P . s/P P P P s/P . P . P + P . P . P . . . P . P . P + P . P . P . +/G . P . P . P + P . P . P . P . P . P . P + P . P . s/P P s/P . P . P . P + P . P . . . . . P . P . P + P . s/P P P P P P s/P . P . P + P . . . . . . . . . P . P + s/P P P P P P P P P P s/P . P + . . . . . . . . . . . . P + p/P T T T P P P P P P P P s/P + - | + s/P s/P P P P P P P P P P s/P s/P + s/P . . . . . . . . . . . s/P + P . s/P s/P P P P P P s/P s/P . P + P . s/P . . . . . . . s/P . P + P . P . s/P s/P P s/P s/P . P . P + P . P . s/P . . . s/P . P . P + P . P . P . +/G . P . P . P + P . P . s/P . s/P . P . P . P + P . P . s/P s/P s/P . P . P . P + P . s/P . . . . . s/P . P . P + P . s/P s/P P P P s/P s/P . P . P + s/P . . . . . . . . . s/P . P + s/P s/P P P P P P P P s/P s/P . P + . . . . . . . . . . . . s/P + p/P T T T P P P P P P P s/P s/P + - | + s/P s/P s/P s/P P P P P P s/P s/P s/P s/P + s/P . . . . . . . . . . . s/P + s/P . s/P s/P P P P s/P s/P s/P s/P . s/P + s/P . s/P . . . . . . . s/P . s/P + P . P . s/P s/P s/P s/P s/P . s/P . P + P . P . s/P . . . s/P . s/P . P + P . P . s/P . +/G . s/P . P . P + P . s/P . s/P . s/P . s/P . P . P + P . s/P . s/P s/P s/P . s/P . P . P + s/P . s/P . . . . . s/P . s/P . P + s/P . s/P s/P s/P s/P s/P s/P s/P . s/P . P + s/P . . . . . . . . . s/P . s/P + s/P s/P s/P s/P P P P s/P s/P s/P s/P . s/P + . . . . . . . . . . . . s/P + p/P T T T P P P P P s/P s/P s/P s/P + - | + . +/G . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . p/P . . + . T . . + . t/G . . + - | + . +/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . p/P . . + . T . . + . t/G . . + - | + . +/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . p/P . . + . T . . + . G . . + . t . . + - | + s s s/P . . + s . s/P . . + s . s/P . . + s . s/P . . + s . s/P . . + s . s/P . . + s . s/P . . + s . s/P . . + s . s/P . . + s . s/P . . + s . s/P . . + s . s/P . . + s . s/P . . + s . s/P . . + s . s/P . . + s . s/P . . + s . s/P . . + s . s/P . . + s . p/P . . + s . T . . + s . t/G . . + s . +/G . . + s s s . . + - > + W W W W W W W W W W W W W W W W W W W + W W W W W W W W W W W W W W W W W W W + +/G + + W W W W W W W W W W W W W W W W W W W + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W W + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W W + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W W + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W G + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W G + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W s/G + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W G + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W p/G + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W G + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W G + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W T + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W T + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W T + W W W W W W W W W W W W W W W W W W W + W + - > + W W W W W W W W W W W W W W W W W W W + W W W W W W W W W W W W W W W W W W i/P + +/G + + W W W W W W W W W W W W W W W W W W W + W W W W W W W W W W W W W W W W W W i/P + i/P + + W W W W W W W W W W W W W W W W W W W + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W W + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W W + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W G + W W W W W W W W W W W W W W W W W W W + W + + W W W W T W W W W W W W W W W W W W G + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W s/G + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W G + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W p/G + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W G + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W G + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W T + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W T + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W T + W W W W W W W W W W W W W W W W W W W + W + - > + W W W W W W W W W W W W W W W W W W W + W W W W W W W W W W W W W W W W W W S + c/G + + W W W W W W W W W W W W W W T W W W W + W W W W W W W W W W W W W W W W W W S + S + + W W W W S S S W W W W W W W W W W W W + W W W W W W W W W W W W W W W W W W W + W + + W W W W S f/S S W W W W W W W W W W d/W + d/W d/W W W W W W W W W W W W W W W W W W + W W + + W W W W S S S W W W W W W W W W W d/W + +/G d/W W W W W W W W W W W W W W W W W W + W W + + W W W W W W W W W W W W W W W W W d/W + d/G d/W W W W W W W W W W W W W W W W W W + W W + + W W W W W W W W W W T W W W W W W W G + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W s/G + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W G + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W p/G + W W W W W W W W W W S S S W W W W W W + W + + W W W W W W W W W W W W W W W W W W G + W W W W W W W W W W S i/S S W W W W T W + W + + W W W W W W T W W W W W W W W W W W G + W W W W W W W W W W S S S W W W W W W + W + + W W W W W W W W W W W W W W W W W W T + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W T + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W T + W W W W W W W W W W W W W W W W W W W + W + - > + W W W W W W W W W P L L L L L L L L P + W W W W W W W W P P L L L P P W W W W + +/G + + W W W W W W W P P P L L L L L L L L P + W W W W W W W P P L L L L L L P W W W + W + + W W W W W W P P L L L L L L L L L P P + W W W W W W P P L L L L L L L P W W W + W + + W W W W W P P L L L L L L L L L P P W + W W W W W P P L L L L L L L L P W W W + W + + W W W P P L L L L L L L L L P P W W W + W W W W W P L L L L L L L L L P W W W + W + + W W P P L L L L L L L L L L P W W W G + W W W W P L L L L L L L L L L P W W W + W + + P P P L L L L L L L L L L P P W W W G + W W W P P L L L L L L L L L L L P W W + W + + L L L L L L L L L L L L P P W W W W s/G + W W W P L L L L L L L L L L L L P W W + W + + L L L L L L L L L L P P W W W W W W G + W W W P P L L L L L L L L L L L P W W + W + + L L L L L L L L L P P W W W W W W W p/G + W W W W P L L L L L L L L L L L P P W + W + + L L L L L L L P P P P W W W W W W W G + W W W W P P L L L L L L L L L L P P W + W + + L L L L L P P P W W W W W W W W W W G + W W W W W P L L L L L L L L L L P W W + W + + L L L P P P P W W W W W W W W W W W T + W W W W W W P L L L L L L L L P W W W + W + + P P P P W W W W W W W W W W W W W W T + W W W W W W P P L L L L L L P W W W W + W + + W W W W W W W W W W W W W W W W W W T + W W W W W W W W P L L L L P P W W W W + W + - > + W W W W W W W W W W W W W P P L L L L + L L L P P P P W W W W W W W W W W W i/P + +/G + + W W W W W W W W W W W W P P L L L L L + L L L L L L P P W W W W W W W W W W i/P + i/P + + W W W W W W W W W W W P P L L L L L L + L L L L L L L P P W W W W W W W W W W + W + + W W W W W W W W W W P P L L L L L P P + P P P P P L L L L P W W W W W W W W W + W + + W W W W W W W W W P L L L L L P P P W + W W W W P P L L L L P W W W W W W W W + W + + W W W W W W W W P P L L L P P P W W G + W W W W W W P P L L P P W W W W W W W + W + + W W W W T W W P L L L L P P W W W W G + W W W W W W W P P L L P P W W W W W W + W + + W W W W W W P P L L L P P W W W W W s/G + W W W W W W W W P L L L P W W W W W W + W + + W W W W W P P L L L P P W W W W W W G + W W W W W W W W P P L L L P W W W W W + W + + W W W W P P L L L L P P W W W W W W p/G + W W W W W W W W W P L L L P P W W W W + W + + W W W W P L L L L P P W W W W W W W G + W W W W W W W W W P L L L L P P W W W + W + + W W W P L L L L L P P W W W W W W W G + W W W W W W W W W P P L L L L P W W W + W + + W W P P L L L L P W W W W W W W W W T + W W W W W W W W W W P P L L L P P W W + W + + W P P L L L L P P W W W W W W W W W T + W W W W W W W W W W W P L L L L L P W + W + + W P L L L L L P W W W W W W W W W W T + W W W W W W W W W W W P L L L L L P W + W + - > + W W W W W W W W W W W W W P P W L L P + P W W W W W W W W W P L L P W W W W S + c/G + + W W W W W W W W W P P W W P T W L P P + W W W W W W W W W P P L L P W W W W S + S + + W W W W S S S W P P L P P W L L P P W + W W W W W W W W P P L L L P W W W W W + W + + W W W W S f/S S P P L L L L L L P W d/W + d/W d/W W W W W W W P P L L P P W W W W W + W W + + W W W W S S S P L L L P P P P P W d/W + +/G d/W W W W W W P P L L L P P P W P P P + W W + + W W W W W W W P L L W W P W W W W d/W + d/G d/W W W W W P P L L L L L L P W P L L + P P + + W W W W W P P P L W T W P W W W W W G + W W W W P P L L S S S S L P P P L L L + P + + W W W P P L L L L W W P P W W W W W s/G + W W W P P L L S S W W S S L L L L L L + P + + W W W P L L L L L P P P W W W W W W G + W W P P L L S G S W W W W S L L P P P + L + + W W P P L S S S L P P W W W W W W W p/G + W W P L L S G G S W S S S S L L P W W + P + + W P P L S W W S S L L P W W W W W W G + W P P L S G G S S W S i/S S S L L P T W + P + + W P L S S W T W W S L P P W W W W W G + W P L S S G S S W W S S S S L L P W P + L + + W P L L S W W W S S L L P W W W W W T + P P L S G G S W W W W W W S L L P P P + L + + W P L L S S S S S L L P P W W W W W T + L L S G G S S W W W W W W S S L L L L + L + + W P P L L L L L L P P P W W W W W W T + L L S G G S W W W W W W W S S S L L L + L + - | + G G G G G G G G G G G G G G G G + G s s s s s s s P s s s s s s G + G s +/G i/G G G G G G G G G i/G +/G s G + G s i/G s s s s s P s s s s i/G s G + G s G s P P P P P P P P s G s G + G s G s P P P P P P P P s G s G + G s G s P P P P p/P P P P P G s G + G s G P P P P P P P P P s G s G + G s G s P P P P P P P P s G s G + G s G s P P P P P P P P s G s G + G s i/G s s s s s P s s s s i/G s G + G s +/G i/G G G G G G G G G i/G +/G s G + G s s s s s s s s s s s s s s G + G G G G G G G G G G G G G G G G + . . . . . . G G G G G . . . . . + . . . . . . G G G G G . . . . . + . . . . . . G G G G G . . . . . + . . . . . . G G +/G G G . . . . . + . . . . . . G G G G G . . . . . + - | + G G G G G G G G G G G G G G G G + G i i i i i i i i/P i i i i i i G + G i +/G i/G G G G G G G G G i/G +/G i G + G i i/G s s s s s T s s s s i/G i G + G i G s P P P P P P P P s G i G + G i G s P P P P P P P P s G i G + G i G s P P P P p/P P P P T G i G + G i G T P P P P P P P P s G i G + G i G s P P P P P P P P s G i G + G i G s P P P P P P P P s G s G + G i i/G s s s s s T s s s s i/G i G + G i +/G i/G G G G G G G G G i/G +/G i G + G i i i i i i i i i i i i i i G + G G G G G G G G G G G G G G G G + . . . . . . G G G G G . . . . . + . . . . . . G G G G G . . . . . + . . . . . . G G G G G . . . . . + . . . . . . G G +/G G G . . . . . + . . . . . . G G G G G . . . . . + - | + G G G G G G G G G G G G G G G G + G i i i i i i i i/P i i i i i i G + G i +/G i/G G G G G #/G G G G i/G +/G i G + G i i/G s s s s s T s s s s i/G i G + G i G s P P P P P P P P s G i G + G i G s P P P P P P P P s G i G + G i #/G s P P P P p/P P P P T G i G + G i G T P P P P P P P P s #/G i G + G i G s P P P P P P P P s G i G + G i G s P P P P P P P P s G s G + G i i/G s s s s s T s s s s i/G i G + G i +/G i/G G G G #/G G G G G i/G +/G i G + G i i i i i i i i i i i i i i G + G G G G G G G G G G G G G G G G + . . . . . . G G G G G . . . . . + . . . . . . G G G G G . . . . . + . . . . . . G G G G G . . . . . + . . . . . . G G +/G G G . . . . . + . . . . . . G G G G G . . . . . + - | + G G G G G G G G G G G G G G G G + G i i i i i i i i/P i i i i i i G + G i +/G i/G G G G G #/G G G G i/G +/G i G + G i i/G s s s s s T s s s s i/G i G + G i G s P P P P P P P P s G i G + G i G s P P P P P P P P s G i G + G i #/G s P P P P p/P P P P T G i G + G i G T P P P P P P P P s #/G i G + G i G s P P P P P P P P s G i G + G i G s P P P P P P P P s G s G + G i i/G s s s s s T s s s s i/G i G + G i +/G i/G G G G #/G G G G G i/G +/G i G + G i i i i i i i i i i i i i i G + G G G G G G G G G G G G G G G G + . . . . . . L L S L L . . . . . + . . . . . . L L S L L . . . . . + . . . . . . L L S L L . . . . . + . . . . . . L L +/G L L . . . . . + . . . . . . L L L L L . . . . . + - | + G G G G G G G G G G G G G G G G + G L L L L L L L L L L L L L L G + G L +/G i/G G G G G #/G G G G i/G +/G L G + G L i/G s s s s s T s s s s i/G L G + G L G s P P P P P P P P s G L G + G L G s P P P P P P P P s G L G + G L #/G s P P P P p/P P P P T G L G + G L G T P P P P P P P P s #/G L G + G L G s P P P P P P P P s G L G + G L G s P P P P P P P P s G s G + G L . s s s s s T s s s s i/G L G + G L +/G i/G G G G #/G G G G G i/G +/G L G + G L L L L L L L L L L L L L L G + G G G G G G G G G G G G G G G G + . . . . . . L L L L L . . . . . + . . . . . . G G G G G . . . . . + . . . . . . G L L L G . . . . . + . . . . . . G L +/G L G . . . . . + . . . . . . G L L L G . . . . . + - > + L W L W L W L W L W L W L W L W L W L + W L + + W L W L W L W L W L W L W L W L W L W + L W + + L W L W L W L W L W L W L W L W L W L + W L + + W L W L W L W L W L W L W L W L W L W + L W + + L W L W L W L W L W L W L W L W L W L + W L + + W L W L W L W L W L +/G +/G W L W L W L W + L W + + L W L W L W L W L W G G L W L W L W L + W L + + W L W L W L W L W L W L W L W L W L W + L W + + L W L W L W L W L W s/G s/G L W L W L W L + W L + + W L W L W L W G G G G G G G G L W L W + L W + + L W L W L W L G G G G p/G G G G W L W L + W L + + W L W L W L W L W L G G W L W L W L W + L W + + L W L W L W L W L W T t/G L W L W L W L + W L + - > + L W L W L W L W L W L W L W L W L W L + W L + + W L W L W L W L W L W L W L W L W L W + L W + + L +/G G G G G G G G G G G G G G G G G G + +/G L + + W L W L W L W L W L G G W L W L W L W + L W + + L W L W L W L W L W G G L W L W L W L + W L + + W L W L W L W L W L G G W L W L W L W + L W + + L W L W L W L W L W G G L W L W L W L + W L + + W L W L W L W L W L W L W L W L W L W + L W + + L W L W L W L W L W s/G s/G L W L W L W L + W L + + W L W L W L W T G G G G G G T L W L W + L W + + L W L W L W L G G G G p/G G G G W L W L + W L + + W L W L W L W L W L G G W L W L W L W + L W + + L W L W L W L W L W T G L W L W L W L + W L + - > + L W L W L W L W L W L W L W L W L W L + W L + + d/W d/L d/W L W L W L W L W L W L W L W L d/W + d/L d/W + + d/L +/G d/G G G G G G G G G G G G G G G G d/G + +/G d/L + + d/W L d/W L W L W L W L G G W L W L W L d/W + d/L d/W + + L W L W L W L W L W G G L W L W L W L + W L + + W L W L W L W L W L G G W L W L W L W + L W + + L W L W L W L W L W G G L W L W L W L + W L + + W L W L W L W L W L W L W L W L W L W + L W + + L W L W L W L W L W s/G s/G L W L W L W L + W L + + W L W L W L W T G G G G G G T L W L W + L W + + L W L W L W L G G G G p/G G G G W L W L + W L + + W L W L W L W L W L G G W L W L W L W + L W + + L W L W L W L W L W T G L W L W L W L + W L + - > + L W L W L W L W L W L W L W L W L W L + W L + + . . . L W L W L W L W L W L W L W L . + d/G . + + . +/G . G G G G G G G G G G G G G G T . + +/G . + + . . . L W L W L W L G G W L W L W L . + . . + + L W L W L W L W L W G G L W L W L W L + i/G L + + W L W L W L W L W L G G W L W L W L W + L W + + L W L W L W L W L W G G L W L W L W L + W L + + W L W L W L W L W L W L W L W L W L W + L W + + L W L W L W L W L W L s/G L W L W L W L + W L + + W L W L W L W G G G G G G G G L W L W + L W + + L c/G L W L W L T G G G p/G G G T W L W L + W L + + W L W L W L W L W L G G W L W L W L W + L W + + L W L W L W L W L W t f/G L W L W L W L + W L + - > + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G T G + + G G T G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G G G G G G G G G G G G + G G G G G G + + . . . . . . . G W W W W W W W W W G . + . . . . . . + + . . . . . . . G W W W W W W W W W G . + . . . . . . + + . . . . . . . G W W W G G G W W W G . + . . . . . . + + . . . . . . . G W W W G G G W W W G . + . . . . . . + + . . . . . . . G W W W G +/G G W W W G . + . . . . . . + + . . . . . . . G W W W G G G W W W G . + . . . . . . + + . . . . . . . G W W W W W W W W W G . + . . . . . . + + . . . . . . . G W W W W W W W W W G . + . . . . . . + + G G G G G G G G G G G G G G G G G G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G s/G p/G G G G G G . . . . . . . . . G G + G G G G T G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + - > + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G s G + + G G T G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G G G G G G G G G G G G + G G G G G G + + . . . . . . . G W W W W W W W W W G . + . . . . . . + + . . . . . . . G W W W W W W W W W G . + . . . . . . + + . . . . . . . G W W W G G G W W W G . + . . . . . . + + . . . . . . . G W W W G G G W W W G . + . . . . . . + + . . . . . . . G W W W G +/G G W W W G . + . . . . . . + + . . . . . . . G W W W G G G W W W G . + . . . . . . + + . . . . . . . G W W W W W W W W W G . + . . . . . . + + . . . . . . . G W W W W W W W W W G . + . . . . . . + + G G G G G G G G G G G G G G G G G G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G p/G G G G G G . . . . . . . . . G G + G G G G t/T G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + - > + L L L L L L L L L L . . . . . . . L L + L L L L L L L L + + L G G G G G G G G L . . . . . . . L G + G G G G G G G L + + L G G G G G G G G L . . . . . . . L G + G G G G G s G L + + L G G T G G G G G L . . . . . . . L G + G G G G G G G L + + L G G G G G G G G L . . . . . . . L G + G G G G G G G L + + L G G G G G G G G L . . . . . . . L G + G G G G G G G L + + L G G G G G G G G L . . . . . . . L G + G G G G G G G L + + L G G G G G G G G L L L L L L L L L G + G G G G G G G L + + L G G G G G G G G G G G G G G G G G G + G G G G G G G L + + L L L L L L L L G L L L L L L L L L G + L L L L L L L L + + . . . . . . . L G L W W W W W W W L G + L . . . . . . . + + . . . . . . . L G L W W G G G W W L G + L . . . . . . . + + . . . . . . . L G L W W G G G W W L G + L . . . . . . . + + . . . . . . . L G L W W G +/G G W W L G + L . . . . . . . + + . . . . . . . L G L W W G G G W W L G + L . . . . . . . + + . . . . . . . L G L W W W W W W W L G + L . . . . . . . + + L L L L L L L L G L L L L L L L L L G + L L L L L L L L + + L G G G G G G G G G G G G G G G G G G + G G G G G G G L + + L G G G G G G G G L L L L L L L L L G + G G G G G G G L + + L G G G G G G G G L . . . . . . . L G + G G G G G G G L + + L G G G G G G G G L . . . . . . . L G + G G G G G G G L + + L G G G G G G G G L . . . . . . . L G + G G G G G G G L + + L G G G G G G G G L . . . . . . . L G + G G G G G G G L + + L G G p/G G G G G G L . . . . . . . L G + G G G G G t/T G L + + L G G G G G G G G L . . . . . . . L G + G G G G G G G L + + L L L L L L L L L L . . . . . . . L L + L L L L L L L L + - > + L L L L L L L L L L . . . . . . . L L + L L L L L L L L + + L G G G G G G G G L . . . . . . . L G + G G G G G G G L + + L G G G G G G G G L . . . . . . . L G + G G G G G s G L + + L G G T G G G G G L . . . . . . . L G + G G G G G G G L + + L G G G G G G G G L . . . . . . . L G + G G G G G G G L + + L G G G G G G G G L . . . . . . . L G + G G G G G G G L + + L G G G G G G G G L . . . . . . . L G + G G G G G G G L + + L G G G G G G G G L d/L d/L d/L d/L d/L d/L d/L L G + G G G G G G G L + + L G G G G G G G G G G G G G G G G G G + G G G G G G G L + + L L L L L L L L G d/L d/L d/L d/L d/L d/L d/L d/L d/L + G L L L L L L L L + + . . . . . . . d/L G d/L W W W W W W W d/L + G d/L . . . . . . . + + . . . . . . . d/L G d/L W W G G G W W d/L + G d/L . . . . . . . + + . . . . . . . d/L G d/L W W G G G W W d/L + G d/L . . . . . . . + + . . . . . . . d/L G d/L W W G +/G G W W d/L + G d/L . . . . . . . + + . . . . . . . d/L G d/L W W G G G W W d/L + G d/L . . . . . . . + + . . . . . . . d/L G L W W W W W W W d/L + G d/L . . . . . . . + + L L L L L L L L G L d/L d/L d/L d/L d/L d/L d/L d/L + G L L L L L L L L + + L G G G G G G G G G G G G G G G G G G + G G G G G G G L + + L G G G G G G G G L d/L d/L d/L d/L d/L d/L d/L L G + G G G G G G G L + + L G G G G G G G G L . . . . . . . L G + G G G G G G G L + + L G G G G G G G G L . . . . . . . L G + G G G G G G G L + + L G G G G G G G G L . . . . . . . L G + G G G G G G G L + + L G G G G G G G G L . . . . . . . L G + G G G G G G G L + + L G G p/G G G G G G L . . . . . . . L G + G G G G G t/T G L + + L G G G G G G G G L . . . . . . . L G + G G G G G G G L + + L L L L L L L L L L . . . . . . . L L + L L L L L L L L + - > + . . G G G . G G G . G G G . G G G . G + G G . G G G . G G G + + . G G . G . G . G . G . G . G . G . G + . G . G . G . G . G + + G G . . G . G . G G G . G G G . G G G + . G G G . G G G . G + + G . . . G . G . . . . . . . . . . . . + . . . . . . . . . G + + G G G . G . G G G G G G G G G G G G G + G G G G G G G G . G + + . . G . G . . . . . . . . . . . . . . + . . . . . . . G . G + + G G G . G . G G G . G G G . G G G . G + G G . G G G . G . G + + G . . . G . G . G . G . G . G . G . G + . G . G . G . G . G + + G G G . G . G . G . G . G . G . G . G + . G . G . G . G . G + + . . G . +/G . p/G . G G G . G G G . G G G + . G G G . G G G . G + + G G G . . . . . . . . . . . . . . . . + . . . . . . . . . G + + G . . . . . G G G G G G G G G G G G G + G G G G G G G G G G + + G G G . . . G . . . . . . . . . . . . + . . . . . . . . . . + + . . G . . . G . G G G . G G G . G G G + . G G G . G G G G G + + G G G . . . G G G . G G G . G G G . G + G G . G G G . . . G + + G . . . . . . . . . . . . . . . . . . + . . . . . . . . . G + + G G G G G G G G G G G G G G G G G G G + G G G G G G G G G G + - > + . . P S G . P G G . G G G . G G G . G + G G . G G G . G G G + + . P S . G . P . S . S . S . S . S . S + . S . S . S . S . S + + G S . . G . P . G G G . G G G . G G G + . G G G . G G G . G + + G . . . G . P . . . . . . . . . . . . + . . . . . . . . . S + + P S G . G . P P P P P P P P P P P P P + P P P P P P P P . G + + . . G . G . . . . . . . . . . . . . . + . . . . . . . P . S + + G S P . G . S S S . S S S . S S S . S + S S . S S S . P . G + + G . . . G . G . G . G . G . G . G . G + . G . G . G . P . S + + P S G . G . G . G . G . G . G . G . G + . G . G . G . P . G + + . . G . +/G . p/G . S S S . S S S . S S S + . S S S . S S S . S + + G S P . . . . . . . . . . . . . . . . + . . . . . . . . . G + + G . . . . . S G S G S G S G S G S G S + G S G S G S G S G S + + P S G . . . G . . . . . . . . . . . . + . . . . . . . . . . + + . . G . . . S . G S G . G S G . G S G + . G S G . G S P P P + + G S P . . . G S G . G S G . G S G . G + S G . G S G . . . P + + G . . . . . . . . . . . . . . . . . . + . . . . . . . . . P + + P P P P P P P P P P P P P P P P P P P + P P P P P P P P P P + - > + L L P S G L P G G L G G G L G G G L G + G G L G G G L G G G + + L P S L G L P L S L S L S L S L S L S + L S L S L S L S L S + + G S L L G L P L G G G L G G G L G G G + L G G G L G G G L G + + G L L L G L P L L L L L L L L L L L L + L L L L L L L L L S + + P S G L G L P P P P P P P P P P P P P + P P P P P P P P L G + + L L G L G L L L L L L L L L L L L L L + L L L L L L L P L S + + G S P L G L S S S L S S S L S S S L S + S S L S S S L P L G + + G L L L G L G L G L G L G L G L G L G + L G L G L G L P L S + + P S G L G L G L G L G L G L G L G L G + L G L G L G L P L G + + L L G L +/G L p/G L S S S L S S S L S S S + L S S S L S S S L S + + G S P L L L L L L L L L L L L L L L L + L L L L L L L L L G + + G L L L L L S G S G S G S G S G S G S + G S G S G S G S G S + + P S G L L L G L L L L L L L L L L L L + L L L L L L L L L L + + L L G L L L S L G S G L G S G L G S G + L G S G L G S P P P + + G S P L L L G S G L G S G L G S G L G + S G L G S G L L L P + + G L L L L L L L L L L L L L L L L L L + L L L L L L L L L P + + P P P P P P P P P P P P P P P P P P P + P P P P P P P P P P + - > + G G G . G G G . G G G . G G G . G G G + . +/G + + G . G . G . G . G . G . G . G . G . G + . G + + G . G G G . G G G . G G G . G G G . G + G G + + G . . . . . . . . . . . . . . . . . . + . . + + G G G G G G G G G G G G G G G G G G G + G G + + . . . . . . . . . . . . . . . . . . . + . G + + G G G . G G G . G G G . G G G . G G G + . G + + G . G . G . G . G . G . G . G . G . G + . G + + G . G . G . G . G . G . G . G . G . G + . G + + p/G . G G G . G G G . G G G . G G G . G + G G + - > + G G G L G G G L G G G L G G G L G G G + L +/G + + G L G L G L G L G L G L G L G L G L G + L G + + G L G G G L G G G L G G G L G G G L G + G G + + G L L L L L L L L L L L L L L L L L L + L L + + G G G G G G G G G G G G G G G G G G G + G G + + L L L L L L L L L L L L L L L L L L L + L G + + G G G L G G G L G G G L G G G L G G G + L G + + G L G L G L G L G L G L G L G L G L G + L G + + G L G L G L G L G L G L G L G L G L G + L G + + p/G L G G G L G G G L G G G L G G G L G + G G + - > + G G G W G G G W G G G W G G G W G G G + W +/G + + G W G W G W G W G W G W G W G W G W G + W G + + G W G G G W G G G W G G G W G G G W G + G G + + G W W W W W W W W W W W W W W W W W W + W W + + G G G G G G G G G G G G G G G G G G G + G G + + W W W W W W W W W W W W W W W W W W W + W G + + G G G W G G G W G G G W G G G W G G G + W G + + G W G W G W G W G W G W G W G W G W G + W G + + G W G W G W G W G W G W G W G W G W G + W G + + p/G W G G G W G G G W G G G W G G G W G + G G + - > + G G G s/W G G G s/W G G G s/W G G G s/W G G + G s/W +/G + + G s/W G s/W G s/W G s/W G s/W G s/W G s/W G s/W G s/W + G s/W G + + G s/W G G G s/W G G G s/W G G G s/W G G G s/W G + G G + + G s/W s/W s/W s/W s/W s/W s/W s/W s/W s/W s/W s/W s/W s/W s/W s/W s/W + s/W s/W s/W + + G G G G G G G G G G G G G G G G G G G + G G + + s s s s s s s s s s s s s s s s s s s + s G + + G G G s/W G G G s G G G s G G G s/W G G G + s/W G + + G s/W G s/W G s/W G s/W G s/W G s/W G s/W G s/W G s/W + G s/W G + + G s/W G s/W G s/W G s/W G s/W G s/W G s/W G s/W G s/W + G s/W G + + p/G s/W G G G s/W G G G s/W G G G s/W G G G s/W G + G G + - > + G G G d/W G G G d/W G G G d/W G G G d/W G G + G d/W +/G + + G d/W G d/W G d/W G d/W G d/W G d/W G d/W G d/W G d/W + G d/W G + + G d/W G G G d/W G G G d/W G G G d/W G G G d/W G + G G + + G d/W d/W d/W d/W d/W d/W d/W d/W d/W d/W d/W d/W d/W d/W d/W d/W d/W + d/W d/W d/W + + G G G G G G G G G G G G G G G G G G G + G G + + i i i i i i i i i i i i i i i i i i i + i G + + G G G i/W G G G i G G G i G G G i/W G G G + i/W G + + G i/W G i/W G i/W G i/W G i/W G i/W G i/W G i/W G i/W + G i/W G + + G i/W G i/W G i/W G i/W G i/W G i/W G i/W G i/W G i/W + G i/W G + + p/G i/W G G G i/W G G G i/W G G G i/W G G G i/W G + G G + - > + . . . . . . . . . . . . . . . . G G G + G G + + . . . . . . . . . . . . . . . G G G G + G G + + . . . . . . . . . . . . . G G G G G G + G +/G + + . . . . . . . . . . . G G G G G G . . + . . + + . . . . . . . . . . G G G G G . . . . + . . + + . . . . . . . . . G G G G . . . . . . + . . + + . . . . . . . . G G G G . . . . . . . + . . + + . . . . . . . G G G G . . . . . . . . + . . + + . . . . . . G G G . . . . . . . . . . + . . + + . . . . G G G . . . . . . . . . . . . + . . + + . . . G G G G . . . . . . . . . . . . + . . + + . . . G G . . . . . . . . . . . . . . + . . + + . . . G . . . . . . . . . . . . . . . + . . + + . . G G . . . . . . . . . . . . . . . + . . + + . G G G . . . . . . . . . . . . . . . + . . + + G G G G G . . . . . . . . . . . . . . + . . + + G G G G G G . . . . . . . . . . . . . + . . + + . G G G G . . . . . . . . . . . . . . + . . + + . G G G G . . . . . . . . . . . . . . + . . + + . . . G . . . . . . . . . . . . . . . + . . + + . . . G . . . . . . . . . . . . . . . + . . + + . . . G G . . . . . . . . . . . . . . + . . + + . . . G G . . . . . . . . . . . . . . + . . + + . . . G G G . . . . . . . . . . . . . + . . + + . . . . G G G . . . . . . . . . . . . + . . + + . . . . . G G G . . . . . . . . . . . + . . + + . . . . . . . G G . . . . . . . . . . + . . + + . . . . . . . . G G G . . . . . . . . + . . + + . . . . . . . . . G G . . . . . . . . + . . + + . . . . . . . . . . G G G . . . . . . + . . + + . . . . . . . . . . . G G G . . . . . + . . + + . . . . . . . . . . . . . G G G . . . + . . + + . . . . . . . . . . . . . . . G G G . + . . + + . . . . . . . . . . . . . . . . . G p/G + . . + - > + W W W W W W W W W W W W W W W W S S G + G G G G + + W W W W W W W W W W W W W W W S S G G + G G G G + + W W W W W W W W W W W W W S S S G G G + G G G +/G + + W W W W W W W W W W W S S S G G G G G + S S S S + + W W W W W W W W W W S S S G G G G S S + S S S W + + W W W W W W W W W S S S G G G S S S S + W W W W + + W W W W W W W S S S S G G G S S S S W + W W W W + + W W W W W W S S S G G G S S S S S S W + W W W W + + W W W W W S S S G G G S S S S S W W W + W W W W + + W W W W S S S G G S S S S S W W W W W + W W W W + + W W W W S S G G G S S S S W W W W W W + W W W W + + W W W S S G G S S S S W W W W W W W W + W W W W + + W W W S S G S S S S S W W W W W W W W + W W W W + + W W S S G G S S S S S S W W W W W W W + W W W W + + W W S G G G S S S S S S W W W W W W W + W W W W + + W W S G G G G S S S S W W W W W W W W + W W W W + + W S S G G G G G S S S W W W W W W W W + W W W W + + W S S G G G G S S S S W W W W W W W W + W W W W + + W S S G G G G S S S S W W W W W W W W + W W W W + + W S S S S G S S S S S W W W W W W W W + W W W W + + W W S S S G S S S S S S W W W W W W W + W W W W + + W W W S S G G S S S S S W W W W W W W + W W W W + + W W W S S G G S S S S S S W W W W W W + W W W W + + W W W S S G G G S S S S S W W W W W W + W W W W + + W W W S S S G G G S S S S S W W W W W + W W W W + + W W W W S S S G G G S S S S S W W W W + W W W W + + W W W W W S S S S G G S S S S S W W W + W W W W + + W W W W W W S S S S G G S S S S S W W + W W W W + + W W W W W W W W S S S G G G S S S S W + W W W W + + W W W W W W W W W W S S G G G S S S S + S W W W + + W W W W W W W W W W W W S S G G S S S + S S W W + + W W W W W W W W W W W W W S S G G G S + S S S W + + W W W W W W W W W W W W W W W S S G G + G S S W + + W W W W W W W W W W W W W W W W W S S + G p/G S W + + W W W W W W W W W W W W W W W W W W S + S S S W + + W W W W W W W W W W W W W W W W W W S + S S S W + + W W W W W W W W W W W W W W W W W W W + W W W W + - > + W W W W W W W W W W W W W W W W S S + G G G G G + + W W W W W W W W W W W W W W W S S G + G G G G G + + W W W W W W W W W W W W W S S S G #/G + G G G G +/G + + W W W W W W W W W W W S S S G G G G + G S S S S + + W W W W W W W W W W S S S G G G G S + S S S S W + + W W W W W W W W W S S S G G G S S S + S W W W W + + W W W W W W W S S S S #/G G G S S S S + W W W W W + + W W W W W W S S S G G G S S S S S S + W W W W W + + W W W W W S S S G G G S S S S S W W + W W W W W + + W W W W S S S #/G G S S S S S W W W W + W W W W W + + W W W W S S G G G S S S S W W W W W + W W W W W + + W W W S S G G S S S S W W W W W W W + W W W W W + + W W W S S G S S S S S W W W W W W W + W W W W W + + W W S S G G S S S S S S W W W W W W + W W W W W + + W W S G #/G G S S S S S S W W W W W W + W W W W W + + W W S G G G G S S S S W W W W W W W + W W W W W + + W S S G G G G G S S S W W W W W W W + W W W W W + + W S S G G G G S S S S W W W W W W W + W W W W W + + W S S G #/G G G S S S S W W W W W W W + W W W W W + + W S S S S G S S S S S W W W W W W W + W W W W W + + W W S S S G S S S S S S W W W W W W + W W W W W + + W W W S S G #/G S S S S S W W W W W W + W W W W W + + W W W S S G G S S S S S S W W W W W + W W W W W + + W W W S S G G G S S S S S W W W W W + W W W W W + + W W W S S S G G G S S S S S W W W W + W W W W W + + W W W W S S S G #/G G S S S S S W W W + W W W W W + + W W W W W S S S S G G S S S S S W W + W W W W W + + W W W W W W S S S S G G S S S S S W + W W W W W + + W W W W W W W W S S S G G #/G S S S S + W W W W W + + W W W W W W W W W W S S G G G S S S + S S W W W + + W W W W W W W W W W W W S S G G S S + S S S W W + + W W W W W W W W W W W W W S S G G G + S S S S W + + W W W W W W W W W W W W W W W S S G + G G S S W + + W W W W W W W W W W W W W W W W W S + S G p/G S W + + W W W W W W W W W W W W W W W W W W + S S S S W + + W W W W W W W W W W W W W W W W W W + S S S S W + + W W W W W W W W W W W W W W W W W W + W W W W W + - > + W W W W W W W W W W W W W W W W S S + G G G G G + + W W W W W W W W W W W W W W W S S G + G G G G G + + W W W W W W W W W W W W W S S S G #/G + G G G G +/G + + W W W W W W W W W W W S S S G G G G + G S S S S + + W W W W W W W W W W S S S G #/G G G S + S S S S W + + W W W W W W W W W S S S G G G S S S + S W W W W + + W W W W W W W S S S S #/G G G S S S S + W W W W W + + W W W W W W S S S G G G S S S S #/S S + W W W W W + + W W W W W S S S G G G S S S S S W W + W W W W W + + W W W W S S S #/G G S S S S S W W W W + W W W W W + + W W W W S S G G G S #/S #/S S W W W W W + W W W W W + + W W W S S G G S S S S W W W W W W W + W W W W W + + W W W S S G S S #/S S S W W W W W W W + W W W W W + + W W S S G G S S S S S S W W W W W W + W W W W W + + W W S G #/G G S S S S S S W W W W W W + W W W W W + + W W S G G G G S S S S W W W W W W W + W W W W W + + W S S G G G G G S S S W W W W W W W + W W W W W + + W S S G G G G S S S S W W W W W W W + W W W W W + + W S S G #/G G G S #/S S S W W W W W W W + W W W W W + + W S S S S G S S S S S W W W W W W W + W W W W W + + W W S S S G S S S S S S W W W W W W + W W W W W + + W W W S S G #/G S S #/S S S W W W W W W + W W W W W + + W W W S S G G S S S S S S W W W W W + W W W W W + + W W W S S G G G S S S #/S S W W W W W + W W W W W + + W W W S S S G G G S S S S S W W W W + W W W W W + + W W W W S S S G #/G G S S S S S W W W + W W W W W + + W W W W W S S S S G G S #/S S S S W W + W W W W W + + W W W W W W S S S S G G S S S S S W + W W W W W + + W W W W W W W W S S S G G #/G S S S S + W W W W W + + W W W W W W W W W W S S G G G S S S + S S W W W + + W W W W W W W W W W W W S S G G S S + S S T W W + + W W W W W W W W W W W W W S S G G G + S S T s/S W + + W W W W W W W W W W W W W W W S S G + G G T s/S W + + W W W W W W W W W W W W W W W W W S + S G p/G s/S W + + W W W W W W W W W W W W W W W W W W + S S t/S s/S W + + W W W W W W W W W W W W W W W W W W + s/S s/S s/S s/S W + + W W W W W W W W W W W W W W W W W W + W W W W W + - > + W W W W W W W W W W W W W W W W S S G + G G G G + + W W W W W W W W W W W W W W W S L L L + G G s/G G + + W W W W W W W W W W W W W S S S L T L + G G s/G G + + W W W W W W W W W W W S S S G G L L L + S S S S + + W W W W W W s/W W W W S S S G G G G S S + S S S W + + W W W W W W W W W S S S G G G S S S S + W W W W + + W W W W W W W S S S S G G G S S S S W + W W W W + + W W W W W W S S S G T G S S S S S S W + W W W W + + W W W W W S S S G G G S S S S S W W W + W W W W + + W W W W S S S G G S S S S S W W W W W + W W W W + + W W W W S S G G G S S S S W W W W W W + W W W W + + W W W S S G G S S S S W W W W W W W W + W W W W + + W W W S S G S S S S S W W W W W W W W + W W W W + + W W S S G G S S S S S S W W W W W W W + W W W W + + W W S G G G S S S S L L L W W W W W W + W W W W + + W W S G G G G S S S S s/W L W W W W W W + W W W W + + W S S G G G G G S S L L L W W W W W W + W W W W + + W S S G G G G S S S S W W W W W W W W + W W W W + + W S S G G T G S S S S W W W W W W W W + W W W W + + W S S S S G S S S S S W W W W W W W W + W W W W + + W W S S S G S S S S S S W W W W W W W + W W W W + + W W W S S G G S S S S S W W W W W W W + W W W W + + W W W S S G G S S S S S S W W W W W W + W W W W + + W L L L S G G G S S S S S W W W W W W + W W W W + + s/W L c/W S S S G G G S S S S S W W W W W + W W W W + + W L L L S S S G G T S S S S S W W W W + W W W W + + W W W W W S S S S G G S S S S S W W W + W W W W + + W W W W W W S S S S G G S S S S S W W + W W W W + + W W W W W W W W S S S G G G S S S S W + W W W W + + W W W W W W W W W W S S G G G S S S S + i/S W W W + + W W W W W W W W W W W W S S G G S S S + S S W W + + W W W W W W W W W W W W W S S G T G S + S S S W + + W W W W W W W W W W W W W W W S S G G + G S S W + + W W W W W W W W W W W W W W W W W S S + G p/G S W + + W W W W W W W W W W W W W W W W W W S + d/S d/S d/S W + + W W W W W W W W W W W W W W W W W W S + d/S +/S d/P W + + W W W W W W W W W W W W W W W W W W W + d/P d/P d/P W + - | + . W p/G W + . W G W + . W G W + . W G W + . W G W + . W G W + . W G W + . W G W + . W G W + . W G W + . W G W + . W G W + . W G W + . W G W + W W G W + W G G W + W G W W + W G W . + W G W . + W G W . + W G W . + W G W . + W G W . + W G W . + W G W . + W +/G W . + - | + . L p/G W + . L G W + . L G W + . L G W + . L G W + . L G W + . L G W + . L G W + . L G W + . L G W + . L G W + . L G W + . L G W + . L G W + L L G W + L G G W + L G W W + L G W . + L G W . + L G W . + L G W . + L G W . + L G W . + L G W . + L G W . + L +/G W . + - | + . W p/G L + . W G L + . W G L + . W G L + . W G L + . W G L + . W G L + . W G L + . W G L + . W G L + . W G L + . W G L + . W G L + . W G L + W W G L + W G G L + W G L L + W G L . + W G L . + W G L . + W G L . + W G L . + W G L . + W G L . + W G L . + W +/G L . + - | + . L p/G L + . L G L + . L G L + . L G L + . L G L + . L G L + . L G L + . L G L + . L G L + . L G L + . L G L + . L G L + . L G L + . L G L + L L G L + L G G L + L G L L + L G L . + L G L . + L G L . + L G L . + L G L . + L G L . + L G L . + L G L . + L +/G L . + - | + . p/G . . . G G G . . . . G d/G G . . . . + . G . . G . . . G . . G . W . G . . . + . G . . G . . . G W W G L L . G . . . + W G L L G . . . G . . G . L . G . . . + . G . . G . . . G . . G . W . G . . . + . G . . G . . . G . . G . L . G . . . + d G . . G . W . G . . G . L . G . . . + . G . W G L L . G . . G . W . G . . . + . G . . d/G . L . G . . G . W . G . . W + t G T . G W L L G . . G . G G G W W L + T G T . G . . . G . . G . . . G . . L + . s/G . . . G G G . . . . G d/G G . . . +/G + Actions: + - Name: init_player + InputMapping: + Internal: true + Inputs: + '1': + VectorToDest: + - 0 + - 0 + Behaviours: + - Src: + Object: player + Dst: + Object: player + Commands: + - incr: player_count + - Name: update_player_stats + InputMapping: + Internal: true + Inputs: + '1': + VectorToDest: + - 0 + - 0 + Behaviours: + - Src: + Object: player + Dst: + Object: player + Commands: + - exec: + Action: update_player_stats + ActionId: 1 + Delay: 1 + - Src: + Object: player + Dst: + Object: player + Commands: + - if: + Conditions: + eq: + - is_sleeping + - 1 + OnTrue: + - sub: + - fatigue + - 1 + OnFalse: + - add: + - fatigue + - 1 + - if: + Conditions: + lt: + - fatigue + - -10 + OnTrue: + - set: + - fatigue + - 0 + - add: + - inv_energy + - 1 + - if: + Conditions: + gte: + - inv_energy + - 9 + OnTrue: + - set: + - is_sleeping + - 0 + - if: + Conditions: + lt: + - ach_wake_up + - 1 + OnTrue: + - set: + - ach_wake_up + - 1 + - reward: 1 + - set_tile: 0 + - if: + Conditions: + and: + - gt: + - inv_energy + - 0 + - gt: + - fatigue + - 30 + OnTrue: + - set: + - fatigue + - 0 + - sub: + - inv_energy + - 1 + - Src: + Object: player + Dst: + Object: player + Commands: + - if: + Conditions: + eq: + - is_sleeping + - 1 + OnTrue: + - add: + - hunger + - 1 + OnFalse: + - add: + - hunger + - 2 + - if: + Conditions: + and: + - gt: + - inv_food + - 0 + - gt: + - hunger + - 50 + OnTrue: + - set: + - hunger + - 0 + - sub: + - inv_food + - 1 + - Src: + Object: player + Dst: + Object: player + Commands: + - if: + Conditions: + eq: + - is_sleeping + - 1 + OnTrue: + - add: + - thirst + - 1 + OnFalse: + - add: + - thirst + - 2 + - if: + Conditions: + and: + - gt: + - inv_drink + - 0 + - gt: + - thirst + - 30 + OnTrue: + - set: + - thirst + - 0 + - sub: + - inv_drink + - 1 + - Src: + Object: player + Dst: + Object: player + Commands: + - if: + Conditions: + and: + - gt: + - inv_food + - 0 + - gt: + - inv_drink + - 0 + - or: + - gt: + - inv_energy + - 0 + - eq: + - is_sleeping + - 1 + OnTrue: + - if: + Conditions: + eq: + - is_sleeping + - 1 + OnTrue: + - add: + - recover + - 4 + OnFalse: + - add: + - recover + - 2 + OnFalse: + - if: + Conditions: + eq: + - is_sleeping + - 1 + OnTrue: + - sub: + - recover + - 1 + OnFalse: + - sub: + - recover + - 2 + - if: + Conditions: + gt: + - recover + - 50 + OnTrue: + - set: + - recover + - 0 + - if: + Conditions: + lt: + - health + - 9 + OnTrue: + - add: + - health + - 1 + - if: + Conditions: + lt: + - recover + - -30 + OnTrue: + - set: + - recover + - 0 + - sub: + - health + - 1 + - if: + Conditions: + lte: + - health + - 0 + OnTrue: + - set: + - player_done + - 1 + - decr: player_count + - remove: true + - Name: move + InputMapping: + Inputs: + '1': + OrientationVector: + - -1 + - 0 + VectorToDest: + - -1 + - 0 + Description: Move Left + MetaData: + image_idx: 1 + '2': + OrientationVector: + - 0 + - -1 + VectorToDest: + - 0 + - -1 + Description: Move Up + MetaData: + image_idx: 2 + '3': + OrientationVector: + - 1 + - 0 + VectorToDest: + - 1 + - 0 + Description: Move Right + MetaData: + image_idx: 3 + '4': + OrientationVector: + - 0 + - 1 + VectorToDest: + - 0 + - 1 + Description: Move Down + MetaData: + image_idx: 4 + Behaviours: + - Src: + Object: player + Preconditions: + eq: + - is_sleeping + - 0 + Commands: + - set: + - health + - 0 + - remove: true + - set: + - player_done + - 1 + - decr: player_count + Dst: + Object: + - lava + - Src: + Object: player + Preconditions: + eq: + - is_sleeping + - 0 + Commands: + - mov: _dest + - rot: _dir + - set_tile: meta.image_idx + Dst: + Object: + - grass + - path + - sand + - Src: + Object: player + Preconditions: + eq: + - is_sleeping + - 0 + Commands: + - rot: _dir + - set_tile: meta.image_idx + Dst: + Object: + - cow + - water + - stone + - plant + - tree + - player + - zombie + - skeleton + - coal + - lava + - iron + - diamond + - table + - furnace + - Name: do + InputMapping: + Relative: true + Inputs: + '1': + VectorToDest: + - 0 + - -1 + Description: Interact with an object + Behaviours: + - Src: + Preconditions: + - and: + - eq: + - is_sleeping + - 0 + - eq: + - dst.ripe + - 1 + Object: player + Commands: + - add: + - inv_food + - 4 + - if: + Conditions: + lt: + - ach_eat_plant + - 1 + OnTrue: + - set: + - ach_eat_plant + - 1 + - reward: 10 + - if: + Conditions: + gt: + - inv_food + - 9 + OnTrue: + - set: + - inv_food + - 9 + Dst: + Object: plant + Commands: + - set: + - ripe + - 0 + - set_tile: 0 + - Src: + Object: player + Preconditions: + eq: + - is_sleeping + - 0 + Commands: + - add: + - inv_fence + - 1 + Dst: + Object: fence + Commands: + - remove: true + - Src: + Object: player + Preconditions: + eq: + - is_sleeping + - 0 + Dst: + Object: zombie + Commands: + - sub: + - dst.health + - src.damage + - if: + Conditions: + lte: + - dst.health + - 0 + OnTrue: + - remove: true + - if: + Conditions: + lt: + - src.ach_defeat_zombie + - 1 + OnTrue: + - set: + - src.ach_defeat_zombie + - 1 + - reward: 1 + - Src: + Object: player + Preconditions: + eq: + - is_sleeping + - 0 + Dst: + Object: skeleton + Commands: + - sub: + - dst.health + - src.damage + - if: + Conditions: + lte: + - dst.health + - 0 + OnTrue: + - remove: true + - if: + Conditions: + lt: + - src.ach_defeat_skeleton + - 1 + OnTrue: + - set: + - src.ach_defeat_skeleton + - 1 + - reward: 1 + - Src: + Object: player + Preconditions: + eq: + - is_sleeping + - 0 + Dst: + Object: cow + Commands: + - sub: + - dst.health + - src.damage + - if: + Conditions: + lte: + - dst.health + - 0 + OnTrue: + - remove: true + - add: + - src.inv_food + - 6 + - if: + Conditions: + gt: + - src.inv_food + - 9 + OnTrue: + - set: + - src.inv_food + - 9 + - if: + Conditions: + lt: + - src.ach_eat_cow + - 1 + OnTrue: + - set: + - src.ach_eat_cow + - 1 + - reward: 1 + - Src: + Object: player + Preconditions: + eq: + - is_sleeping + - 0 + Dst: + Object: player + Commands: + - sub: + - dst.health + - src.damage + - if: + Conditions: + lte: + - dst.health + - 0 + OnTrue: + - set: + - dst.player_done + - 1 + - decr: player_count + - remove: true + - add: + - src.inv_food + - dst.inv_food + - add: + - src.inv_drink + - dst.inv_drink + - add: + - src.inv_wood + - dst.inv_wood + - add: + - src.inv_coal + - dst.inv_coal + - add: + - src.inv_iron + - dst.inv_iron + - if: + Conditions: + gt: + - src.inv_food + - 9 + OnTrue: + - set: + - src.inv_food + - 9 + - if: + Conditions: + gt: + - src.inv_drink + - 9 + OnTrue: + - set: + - src.inv_drink + - 9 + - if: + Conditions: + gt: + - src.inv_wood + - 9 + OnTrue: + - set: + - src.inv_wood + - 9 + - if: + Conditions: + gt: + - src.inv_coal + - 9 + OnTrue: + - set: + - src.inv_coal + - 9 + - if: + Conditions: + gt: + - src.inv_iron + - 9 + OnTrue: + - set: + - src.inv_iron + - 9 + - if: + Conditions: + lt: + - src.ach_defeat_player + - 1 + OnTrue: + - set: + - src.ach_defeat_player + - 1 + - reward: 1 + - Src: + Object: player + Preconditions: + - and: + - eq: + - is_sleeping + - 0 + - lt: + - inv_wood + - 9 + Commands: + - add: + - inv_wood + - 1 + - if: + Conditions: + lt: + - ach_collect_wood + - 1 + OnTrue: + - set: + - ach_collect_wood + - 1 + - reward: 1 + Dst: + Object: tree + Commands: + - remove: true + - spawn: grass + - Src: + Object: player + Preconditions: + - and: + - eq: + - is_sleeping + - 0 + - eq: + - inv_wood_pickaxe + - 1 + - lt: + - inv_stone + - 9 + Commands: + - add: + - inv_stone + - 1 + - if: + Conditions: + lt: + - ach_collect_stone + - 1 + OnTrue: + - set: + - ach_collect_stone + - 1 + - reward: 1 + Dst: + Object: stone + Commands: + - remove: true + - spawn: path + - Src: + Object: player + Preconditions: + - and: + - eq: + - is_sleeping + - 0 + - eq: + - inv_wood_pickaxe + - 1 + - lt: + - inv_coal + - 9 + Commands: + - add: + - inv_coal + - 1 + - if: + Conditions: + lt: + - ach_collect_coal + - 1 + OnTrue: + - set: + - ach_collect_coal + - 1 + - reward: 1 + Dst: + Object: coal + Commands: + - remove: true + - spawn: path + - Src: + Object: player + Preconditions: + - and: + - eq: + - is_sleeping + - 0 + - eq: + - inv_stone_pickaxe + - 1 + - lt: + - inv_iron + - 9 + Commands: + - add: + - inv_iron + - 1 + - if: + Conditions: + lt: + - ach_collect_iron + - 1 + OnTrue: + - set: + - ach_collect_iron + - 1 + - reward: 1 + Dst: + Object: iron + Commands: + - remove: true + - spawn: path + - Src: + Object: player + Preconditions: + - and: + - eq: + - is_sleeping + - 0 + - eq: + - inv_iron_pickaxe + - 1 + - lt: + - inv_diamond + - 9 + Commands: + - add: + - inv_diamond + - 1 + - if: + Conditions: + lt: + - ach_collect_diamond + - 1 + OnTrue: + - set: + - ach_collect_diamond + - 1 + - reward: 1 + Dst: + Object: diamond + Commands: + - remove: true + - spawn: path + - Src: + Object: player + Preconditions: + - and: + - eq: + - is_sleeping + - 0 + - lt: + - inv_drink + - 9 + Commands: + - add: + - inv_drink + - 1 + - if: + Conditions: + lt: + - ach_collect_drink + - 1 + OnTrue: + - set: + - ach_collect_drink + - 1 + - reward: 1 + Dst: + Object: water + - Name: place + InputMapping: + Relative: true + Inputs: + '1': + VectorToDest: + - 0 + - -1 + Description: Place a stone + MetaData: + action_id: 1 + '2': + VectorToDest: + - 0 + - -1 + Description: Place a table + MetaData: + action_id: 2 + '3': + VectorToDest: + - 0 + - -1 + Description: Place a furnace + MetaData: + action_id: 3 + Behaviours: + - Src: + Object: player + Preconditions: + - and: + - eq: + - is_sleeping + - 0 + - eq: + - meta.action_id + - 1 + - gte: + - inv_stone + - 1 + Commands: + - sub: + - inv_stone + - 1 + - if: + Conditions: + lt: + - ach_place_stone + - 1 + OnTrue: + - set: + - ach_place_stone + - 1 + - reward: 1 + Dst: + Object: + - grass + - sand + - path + - water + - lava + Commands: + - remove: true + - spawn: stone + - Src: + Object: player + Preconditions: + - and: + - eq: + - is_sleeping + - 0 + - eq: + - meta.action_id + - 2 + - gte: + - inv_wood + - 2 + Commands: + - sub: + - inv_wood + - 2 + - if: + Conditions: + lt: + - ach_place_table + - 1 + OnTrue: + - set: + - ach_place_table + - 1 + - reward: 1 + Dst: + Object: + - grass + - sand + - path + Commands: + - spawn: table + - Src: + Object: player + Preconditions: + - and: + - eq: + - is_sleeping + - 0 + - eq: + - meta.action_id + - 3 + - gte: + - inv_stone + - 4 + Commands: + - sub: + - inv_stone + - 4 + - if: + Conditions: + lt: + - ach_place_furnace + - 1 + OnTrue: + - set: + - ach_place_furnace + - 1 + - reward: 1 + Dst: + Object: + - grass + - sand + - path + Commands: + - spawn: furnace + - Name: make + InputMapping: + Relative: true + Inputs: + '1': + VectorToDest: + - 0 + - 0 + Description: Make a wood pickaxe + MetaData: + action_id: 1 + '2': + VectorToDest: + - 0 + - 0 + Description: Make a stone pickaxe + MetaData: + action_id: 2 + '3': + VectorToDest: + - 0 + - 0 + Description: Make an iron pickaxe + MetaData: + action_id: 3 + Behaviours: + - Src: + Object: player + Preconditions: + - and: + - eq: + - is_sleeping + - 0 + - eq: + - meta.action_id + - 1 + - gte: + - inv_wood + - 1 + - lt: + - inv_wood_pickaxe + - 1 + - eq: + - near_table + - 1 + Commands: + - decr: inv_wood + - if: + Conditions: + lt: + - ach_make_wood_pickaxe + - 1 + OnTrue: + - set: + - ach_make_wood_pickaxe + - 1 + - reward: 1 + Dst: + Object: player + Commands: + - set: + - inv_wood_pickaxe + - 1 + - Src: + Object: player + Preconditions: + - and: + - eq: + - is_sleeping + - 0 + - eq: + - meta.action_id + - 2 + - gte: + - inv_wood + - 1 + - gte: + - inv_stone + - 1 + - eq: + - near_table + - 1 + - lt: + - inv_stone_pickaxe + - 1 + Commands: + - decr: inv_stone + - decr: inv_wood + - if: + Conditions: + lt: + - ach_make_stone_pickaxe + - 1 + OnTrue: + - set: + - ach_make_stone_pickaxe + - 1 + - reward: 1 + Dst: + Object: player + Commands: + - set: + - inv_stone_pickaxe + - 1 + - Src: + Object: player + Preconditions: + - and: + - eq: + - is_sleeping + - 0 + - eq: + - meta.action_id + - 3 + - gte: + - inv_wood + - 1 + - gte: + - inv_iron + - 1 + - gte: + - inv_coal + - 1 + - eq: + - near_furnace + - 1 + - eq: + - near_table + - 1 + - lt: + - inv_iron_pickaxe + - 1 + Commands: + - decr: inv_coal + - decr: inv_wood + - decr: inv_iron + - if: + Conditions: + lt: + - ach_make_iron_pickaxe + - 1 + OnTrue: + - set: + - ach_make_iron_pickaxe + - 1 + - reward: 1 + Dst: + Object: player + Commands: + - set: + - inv_iron_pickaxe + - 1 + - Name: near_table_on + Trigger: + Type: RANGE_BOX_AREA + Range: 1 + Behaviours: + - Src: + Object: table + Dst: + Object: player + Commands: + - set: + - near_table + - 1 + - Name: near_table_off + Trigger: + Type: RANGE_BOX_BOUNDARY + Range: 2 + Behaviours: + - Src: + Object: table + Dst: + Object: player + Commands: + - set: + - near_table + - 0 + - Name: near_furnace_on + Trigger: + Type: RANGE_BOX_AREA + Range: 1 + Behaviours: + - Src: + Object: furnace + Dst: + Object: player + Commands: + - set: + - near_furnace + - 1 + - Name: near_furnace_off + Trigger: + Type: RANGE_BOX_BOUNDARY + Range: 2 + Behaviours: + - Src: + Object: furnace + Dst: + Object: player + Commands: + - set: + - near_furnace + - 0 + - Name: act_attack_cooldown + InputMapping: + Inputs: + '1': + VectorToDest: + - 0 + - 0 + Internal: true + Behaviours: + - Src: + Object: zombie + Commands: + - set: + - attack_cooldown + - 0 + Dst: + Object: zombie + - Name: skeleton_random_movement + InputMapping: + Inputs: + '1': + OrientationVector: + - 0 + - -1 + VectorToDest: + - 0 + - -1 + '2': + OrientationVector: + - 1 + - 0 + VectorToDest: + - 1 + - 0 + '3': + OrientationVector: + - 0 + - 1 + VectorToDest: + - 0 + - 1 + '4': + OrientationVector: + - -1 + - 0 + VectorToDest: + - -1 + - 0 + Internal: true + Behaviours: + - Src: + Object: skeleton + Preconditions: + - eq: + - is_chasing + - 0 + Commands: + - mov: _dest + - rot: _dir + - exec: + Action: skeleton_random_movement + Delay: 3 + Randomize: true + Dst: + Object: + - path + - Src: + Object: skeleton + Preconditions: + - eq: + - is_chasing + - 0 + Commands: + - exec: + Action: skeleton_random_movement + Delay: 3 + Randomize: true + Dst: + Object: + - _boundary + - _empty + - grass + - sand + - cow + - water + - stone + - plant + - tree + - player + - zombie + - skeleton + - coal + - lava + - iron + - diamond + - table + - furnace + - Name: skeleton_chase_player + InputMapping: + Inputs: + '1': + OrientationVector: + - 0 + - -1 + VectorToDest: + - 0 + - -1 + '2': + OrientationVector: + - 1 + - 0 + VectorToDest: + - 1 + - 0 + '3': + OrientationVector: + - 0 + - 1 + VectorToDest: + - 0 + - 1 + '4': + OrientationVector: + - -1 + - 0 + VectorToDest: + - -1 + - 0 + Internal: true + Behaviours: + - Src: + Object: skeleton + Commands: + - set: + - src.chase_cooldown + - 0 + - mov: _dest + - rot: _dir + Dst: + Object: path + - Src: + Object: skeleton + Commands: + - set: + - src.chase_cooldown + - 0 + Dst: + Object: + - _boundary + - cow + - player + - arrow + - water + - grass + - sand + - stone + - plant + - skeleton + - zombie + - coal + - lava + - iron + - diamond + - table + - furnace + - Name: skeleton_chase_proximity_trigger_off + Trigger: + Range: 9 + Type: RANGE_BOX_BOUNDARY + InputMapping: + Internal: true + Behaviours: + - Src: + Object: skeleton + Preconditions: + - eq: + - src.is_chasing + - 1 + Commands: + - set: + - src.is_chasing + - 0 + - exec: + Action: skeleton_random_movement + Delay: 3 + Randomize: true + Dst: + Object: player + - Name: skeleton_chase_proximity_trigger_on + Trigger: + Range: 8 + Type: RANGE_BOX_AREA + InputMapping: + Internal: true + Probability: 0.3 + Behaviours: + - Src: + Preconditions: + - eq: + - src.chase_cooldown + - 0 + Object: skeleton + Commands: + - set: + - src.is_chasing + - 1 + - set: + - src.chase_cooldown + - 1 + - exec: + Action: skeleton_chase_player + Delay: 3 + Search: + ImpassableObjects: + - water + - cow + - stone + - tree + - zombie + - skeleton + - plant + - coal + - lava + - iron + - diamond + - table + - furnace + TargetObjectName: player + Dst: + Object: player + - Name: arrow_projectile + InputMapping: + Internal: true + Behaviours: + - Src: + Object: arrow + Commands: + - mov: _dest + - exec: + Action: arrow_projectile + Delay: 1 + Dst: + Object: + - water + - path + - grass + - sand + - lava + - Src: + Object: arrow + Commands: + - remove: true + Dst: + Object: + - _boundary + - _empty + - arrow + - tree + - stone + - plant + - coal + - iron + - diamond + - Src: + Object: arrow + Commands: + - remove: true + Dst: + Object: + - cow + - zombie + - skeleton + Commands: + - sub: + - health + - 2 + - if: + Conditions: + lte: + - health + - 0 + OnTrue: + - remove: true + - Src: + Object: arrow + Commands: + - remove: true + Dst: + Object: player + Commands: + - sub: + - health + - 2 + - if: + Conditions: + lte: + - health + - 0 + OnTrue: + - set: + - dst.player_done + - 1 + - decr: player_count + - remove: true + - Src: + Object: arrow + Commands: + - remove: true + Dst: + Object: + - table + - furnace + Commands: + - remove: true + - Name: set_arrow_direction + InputMapping: + Internal: true + Inputs: + '1': + VectorToDest: + - 0 + - 0 + Behaviours: + - Src: + Object: arrow + Commands: + - set_tile: meta.image_idx + Dst: + Object: + - water + - path + - grass + - sand + - arrow + - lava + - Name: fire_arrow + InputMapping: + Inputs: + '1': + OrientationVector: + - 0 + - -1 + VectorToDest: + - 0 + - -1 + MetaData: + image_idx: 0 + '2': + OrientationVector: + - 1 + - 0 + VectorToDest: + - 1 + - 0 + MetaData: + image_idx: 1 + '3': + OrientationVector: + - 0 + - 1 + VectorToDest: + - 0 + - 1 + MetaData: + image_idx: 2 + '4': + OrientationVector: + - -1 + - 0 + VectorToDest: + - -1 + - 0 + MetaData: + image_idx: 3 + Internal: true + Behaviours: + - Src: + Object: skeleton + Dst: + Object: + - water + - path + - grass + - sand + - lava + Commands: + - spawn: arrow + - Name: reload_arrow + InputMapping: + Inputs: + '1': + VectorToDest: + - 0 + - 0 + Internal: true + Behaviours: + - Src: + Object: skeleton + Commands: + - set: + - src.reload_cooldown + - 0 + Dst: + Object: skeleton + - Name: skeleton_fire_proximity_trigger + Probability: 0.5 + Trigger: + Range: 5 + Type: RANGE_BOX_AREA + InputMapping: + Internal: true + Behaviours: + - Src: + Preconditions: + - eq: + - src.reload_cooldown + - 0 + Object: skeleton + Commands: + - set: + - src.reload_cooldown + - 1 + - exec: + Action: reload_arrow + Delay: 4 + ActionId: 1 + - if: + Conditions: + eq: + - src._dx + - 1 + OnTrue: + - exec: + Action: fire_arrow + Delay: 1 + ActionId: 2 + - if: + Conditions: + eq: + - src._dx + - -1 + OnTrue: + - exec: + Action: fire_arrow + Delay: 1 + ActionId: 4 + - if: + Conditions: + eq: + - src._dy + - 1 + OnTrue: + - exec: + Action: fire_arrow + Delay: 1 + ActionId: 3 + - if: + Conditions: + eq: + - src._dy + - -1 + OnTrue: + - exec: + Action: fire_arrow + Delay: 1 + ActionId: 1 + Dst: + Object: player + - Name: zombie_random_movement + InputMapping: + Internal: true + Behaviours: + - Src: + Object: zombie + Preconditions: + - eq: + - src.is_chasing + - 0 + Commands: + - mov: _dest + - exec: + Action: zombie_random_movement + Delay: 3 + Randomize: true + Dst: + Object: + - grass + - path + - sand + - Src: + Object: zombie + Preconditions: + - eq: + - src.is_chasing + - 0 + Commands: + - exec: + Action: zombie_random_movement + Delay: 3 + Randomize: true + Dst: + Object: + - _boundary + - _empty + - cow + - water + - tree + - stone + - plant + - player + - zombie + - skeleton + - coal + - lava + - iron + - diamond + - table + - furnace + - Name: zombie_chase_player + InputMapping: + Internal: true + Behaviours: + - Src: + Object: zombie + Commands: + - set: + - src.chase_cooldown + - 0 + - mov: _dest + Dst: + Object: + - grass + - path + - sand + - Src: + Object: zombie + Commands: + - set: + - src.chase_cooldown + - 0 + Dst: + Object: + - _boundary + - cow + - water + - stone + - plant + - zombie + - skeleton + - coal + - lava + - iron + - diamond + - table + - furnace + - Src: + Object: zombie + Commands: + - set: + - src.chase_cooldown + - 0 + - if: + Conditions: + eq: + - src.attack_cooldown + - 0 + OnTrue: + - set: + - src.attack_cooldown + - 1 + - exec: + Action: act_attack_cooldown + Delay: 5 + ActionId: 1 + Dst: + Object: player + Commands: + - if: + Conditions: + eq: + - src.attack_cooldown + - 0 + OnTrue: + - if: + Conditions: + eq: + - is_sleeping + - 1 + OnTrue: + - sub: + - health + - 7 + OnFalse: + - sub: + - health + - 2 + - if: + Conditions: + lte: + - health + - 0 + OnTrue: + - set: + - dst.player_done + - 1 + - decr: player_count + - remove: true + - Name: zombie_chase_proximity_trigger_off + Trigger: + Range: 9 + Type: RANGE_BOX_BOUNDARY + InputMapping: + Internal: true + Behaviours: + - Src: + Object: zombie + Preconditions: + - eq: + - src.is_chasing + - 1 + Commands: + - set: + - src.is_chasing + - 0 + - exec: + Action: zombie_random_movement + Delay: 3 + Randomize: true + Dst: + Object: player + - Name: zombie_chase_proximity_trigger_on + Trigger: + Range: 8 + Type: RANGE_BOX_AREA + InputMapping: + Internal: true + Probability: 0.9 + Behaviours: + - Src: + Preconditions: + - eq: + - src.chase_cooldown + - 0 + Object: zombie + Commands: + - set: + - src.is_chasing + - 1 + - set: + - src.chase_cooldown + - 1 + - exec: + Action: zombie_chase_player + Delay: 2 + Search: + ImpassableObjects: + - water + - cow + - stone + - tree + - zombie + - skeleton + - plant + - coal + - lava + - iron + - diamond + - table + - furnace + TargetObjectName: player + Dst: + Object: player + - Name: cow_random_movement + InputMapping: + Inputs: + '1': + OrientationVector: + - 1 + - 0 + VectorToDest: + - 1 + - 0 + MetaData: + change_image: 1 + image_idx: 1 + '2': + OrientationVector: + - 0 + - -1 + VectorToDest: + - 0 + - -1 + MetaData: + change_image: 0 + '3': + OrientationVector: + - -1 + - 0 + VectorToDest: + - -1 + - 0 + MetaData: + change_image: 1 + image_idx: 0 + '4': + OrientationVector: + - 0 + - 1 + VectorToDest: + - 0 + - 1 + MetaData: + change_image: 0 + Internal: true + Behaviours: + - Src: + Object: cow + Commands: + - mov: _dest + - exec: + Action: cow_random_movement + Delay: 1 + Randomize: true + - eq: + Arguments: + - meta.change_image + - 1 + Commands: + - set_tile: meta.image_idx + Dst: + Object: + - grass + - path + - sand + - Src: + Object: cow + Commands: + - exec: + Action: cow_random_movement + Delay: 5 + Randomize: true + Dst: + Object: + - _boundary + - _empty + - cow + - water + - stone + - tree + - plant + - player + - zombie + - skeleton + - coal + - lava + - iron + - diamond + - table + - furnace + Objects: + - Name: player + MapCharacter: p + InitialActions: + - Action: init_player + ActionId: 1 + Z: 2 + Observers: + GlobalSprite2D: + - Image: sprite2d/player.png + - Image: sprite2d/player-left.png + - Image: sprite2d/player-up.png + - Image: sprite2d/player-right.png + - Image: sprite2d/player-down.png + - Image: sprite2d/player-sleep.png + PlayerSprite2D: + - Image: sprite2d/player.png + - Image: sprite2d/player-left.png + - Image: sprite2d/player-up.png + - Image: sprite2d/player-right.png + - Image: sprite2d/player-down.png + - Image: sprite2d/player-sleep.png + - Name: water + MapCharacter: W + Z: 1 + Observers: + GlobalSprite2D: + - Image: sprite2d/water.png + PlayerSprite2D: + - Image: sprite2d/water.png + - Name: grass + MapCharacter: G + Z: 1 + Observers: + GlobalSprite2D: + - Image: sprite2d/grass.png + PlayerSprite2D: + - Image: sprite2d/grass.png + - Name: stone + MapCharacter: s + Z: 2 + Observers: + GlobalSprite2D: + - Image: sprite2d/stone.png + PlayerSprite2D: + - Image: sprite2d/stone.png + - Name: path + Z: 1 + MapCharacter: P + Observers: + GlobalSprite2D: + - Image: sprite2d/path.png + PlayerSprite2D: + - Image: sprite2d/path.png + - Name: sand + Z: 1 + MapCharacter: S + Observers: + GlobalSprite2D: + - Image: sprite2d/sand.png + PlayerSprite2D: + - Image: sprite2d/sand.png + - Name: tree + Z: 1 + MapCharacter: T + Observers: + GlobalSprite2D: + - Image: sprite2d/tree.png + PlayerSprite2D: + - Image: sprite2d/tree.png + - Name: plant + MapCharacter: + + Z: 2 + Variables: + - Name: ripe + InitialValue: 1 + Observers: + GlobalSprite2D: + - Image: sprite2d/plant-ripe.png + - Image: sprite2d/plant.png + PlayerSprite2D: + - Image: sprite2d/plant-ripe.png + - Image: sprite2d/plant.png + - Name: lava + MapCharacter: L + Z: 1 + Observers: + GlobalSprite2D: + - Image: sprite2d/lava.png + PlayerSprite2D: + - Image: sprite2d/lava.png + - Name: coal + MapCharacter: c + Z: 2 + Observers: + GlobalSprite2D: + - Image: sprite2d/coal.png + PlayerSprite2D: + - Image: sprite2d/coal.png + - Name: iron + MapCharacter: i + Z: 2 + Observers: + GlobalSprite2D: + - Image: sprite2d/iron.png + PlayerSprite2D: + - Image: sprite2d/iron.png + - Name: diamond + MapCharacter: d + Z: 2 + Observers: + GlobalSprite2D: + - Image: sprite2d/diamond.png + PlayerSprite2D: + - Image: sprite2d/diamond.png + - Name: table + MapCharacter: t + Z: 2 + Observers: + GlobalSprite2D: + - Image: sprite2d/table.png + PlayerSprite2D: + - Image: sprite2d/table.png + - Name: furnace + MapCharacter: f + Z: 2 + Observers: + GlobalSprite2D: + - Image: sprite2d/furnace.png + PlayerSprite2D: + - Image: sprite2d/furnace.png + - Name: fence + MapCharacter: '}' + Z: 2 + Observers: + GlobalSprite2D: + - Image: sprite2d/fence.png + PlayerSprite2D: + - Image: sprite2d/fence.png + - Name: arrow + Z: 2 + MapCharacter: a + InitialActions: + - Action: arrow_projectile + Delay: 1 + - Action: set_arrow_direction + ActionId: 1 + Observers: + GlobalSprite2D: + - Image: sprite2d/arrow-up.png + - Image: sprite2d/arrow-right.png + - Image: sprite2d/arrow-down.png + - Image: sprite2d/arrow-left.png + PlayerSprite2D: + - Image: sprite2d/arrow-up.png + - Image: sprite2d/arrow-right.png + - Image: sprite2d/arrow-down.png + - Image: sprite2d/arrow-left.png + - Name: zombie + Z: 2 + InitialActions: + - Action: zombie_random_movement + Randomize: true + Variables: + - Name: health + InitialValue: 5 + - Name: is_chasing + InitialValue: 0 + - Name: chase_cooldown + InitialValue: 0 + - Name: attack_cooldown + InitialValue: 0 + MapCharacter: '!' + Observers: + GlobalSprite2D: + - Image: sprite2d/zombie.png + PlayerSprite2D: + - Image: sprite2d/zombie.png + - Name: skeleton + Z: 2 + MapCharacter: '@' + InitialActions: + - Action: skeleton_random_movement + Randomize: true + Variables: + - Name: health + InitialValue: 3 + - Name: is_chasing + InitialValue: 0 + - Name: chase_cooldown + InitialValue: 0 + - Name: reload_cooldown + InitialValue: 0 + Observers: + GlobalSprite2D: + - Image: sprite2d/skeleton.png + PlayerSprite2D: + - Image: sprite2d/skeleton.png + - Name: cow + InitialActions: + - Action: cow_random_movement + Randomize: true + Variables: + - Name: health + InitialValue: 3 + Z: 2 + MapCharacter: '#' + Observers: + GlobalSprite2D: + - Image: sprite2d/cow-left.png + - Image: sprite2d/cow-right.png + PlayerSprite2D: + - Image: sprite2d/cow-left.png + - Image: sprite2d/cow-right.png + - Name: health + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/health.png + PlayerSprite2D: + - Image: sprite2d/health.png + - Name: food + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/food.png + PlayerSprite2D: + - Image: sprite2d/food.png + - Name: drink + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/drink.png + PlayerSprite2D: + - Image: sprite2d/drink.png + - Name: energy + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/energy.png + PlayerSprite2D: + - Image: sprite2d/energy.png + - Name: '1' + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/1.png + PlayerSprite2D: + - Image: sprite2d/1.png + - Name: '2' + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/2.png + PlayerSprite2D: + - Image: sprite2d/2.png + - Name: '3' + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/3.png + PlayerSprite2D: + - Image: sprite2d/3.png + - Name: '4' + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/4.png + PlayerSprite2D: + - Image: sprite2d/4.png + - Name: '5' + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/5.png + PlayerSprite2D: + - Image: sprite2d/5.png + - Name: '6' + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/6.png + PlayerSprite2D: + - Image: sprite2d/6.png + - Name: '7' + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/7.png + PlayerSprite2D: + - Image: sprite2d/7.png + - Name: '8' + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/8.png + PlayerSprite2D: + - Image: sprite2d/8.png + - Name: '9' + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/9.png + PlayerSprite2D: + - Image: sprite2d/9.png + - Name: log + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/log.png + PlayerSprite2D: + - Image: sprite2d/log.png + - Name: wood_pickaxe + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/wood_pickaxe.png + PlayerSprite2D: + - Image: sprite2d/wood_pickaxe.png + - Name: stone_pickaxe + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/stone_pickaxe.png + PlayerSprite2D: + - Image: sprite2d/stone_pickaxe.png + - Name: iron_pickaxe + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/iron_pickaxe.png + PlayerSprite2D: + - Image: sprite2d/iron_pickaxe.png + - Name: wood_sword + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/wood_sword.png + PlayerSprite2D: + - Image: sprite2d/wood_sword.png + - Name: stone_sword + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/stone_sword.png + PlayerSprite2D: + - Image: sprite2d/stone_sword.png + - Name: iron_sword + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/iron_sword.png + PlayerSprite2D: + - Image: sprite2d/iron_sword.png + + diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Block2D-0.png b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Block2D-0.png index 64b417038..8a66061b4 100644 Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Block2D-0.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Block2D-0.png differ diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Block2D-1.png b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Block2D-1.png index 7d3797a7b..f6c8fd1c2 100644 Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Block2D-1.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Block2D-1.png differ diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Block2D-2.png b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Block2D-2.png index 831e8ca47..022abc3f2 100644 Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Block2D-2.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Block2D-2.png differ diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Block2D-3.png b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Block2D-3.png index d8f6785b7..ea47bfb85 100644 Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Block2D-3.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Block2D-3.png differ diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Isometric-0.png b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Isometric-0.png index acaff02b9..5ca7db4c5 100644 Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Isometric-0.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Isometric-0.png differ diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Isometric-1.png b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Isometric-1.png index 154d9e2cf..2f2c88437 100644 Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Isometric-1.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Isometric-1.png differ diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Isometric-2.png b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Isometric-2.png index 38c068baf..3a5550e10 100644 Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Isometric-2.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Isometric-2.png differ diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Isometric-3.png b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Isometric-3.png index bda33ba00..906779827 100644 Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Isometric-3.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Isometric-3.png differ diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Vector-0.png b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Vector-0.png index b6de172d8..602d0bd52 100644 Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Vector-0.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Vector-0.png differ diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Vector-1.png b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Vector-1.png index 76c271a84..220660af7 100644 Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Vector-1.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Vector-1.png differ diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Vector-2.png b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Vector-2.png index 5379833e8..4fff1f186 100644 Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Vector-2.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Vector-2.png differ diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Vector-3.png b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Vector-3.png index 16ddef747..5b639489e 100644 Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Vector-3.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Vector-3.png differ diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-barracks-Block2D.png b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-barracks-Block2D.png index 9fef99efc..8ffb30184 100644 Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-barracks-Block2D.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-barracks-Block2D.png differ diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-barracks-Vector.png b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-barracks-Vector.png index 0dea1ddca..10e705a25 100644 Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-barracks-Vector.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-barracks-Vector.png differ diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-barracks_disabled-Block2D.png b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-barracks_disabled-Block2D.png index 0fde702dc..e631e5de9 100644 Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-barracks_disabled-Block2D.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-barracks_disabled-Block2D.png differ diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-barracks_disabled-Vector.png b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-barracks_disabled-Vector.png index 0dea1ddca..a8e7f44c7 100644 Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-barracks_disabled-Vector.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-barracks_disabled-Vector.png differ diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-base-Block2D.png b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-base-Block2D.png index 4444ad56b..38b13a096 100644 Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-base-Block2D.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-base-Block2D.png differ diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-base-Vector.png b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-base-Vector.png index 0dea1ddca..4eff5faf5 100644 Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-base-Vector.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-base-Vector.png differ diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-combat-Block2D.png b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-combat-Block2D.png index cba4d3b7b..d4c8ee3a5 100644 Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-combat-Block2D.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-combat-Block2D.png differ diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-combat-Vector.png b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-combat-Vector.png index 0dea1ddca..3220f5d4c 100644 Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-combat-Vector.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-combat-Vector.png differ diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-fixed_wall-Block2D.png b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-fixed_wall-Block2D.png index aa52694a3..47c9cdd28 100644 Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-fixed_wall-Block2D.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-fixed_wall-Block2D.png differ diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-fixed_wall-Vector.png b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-fixed_wall-Vector.png index e7623ec6f..1460b3271 100644 Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-fixed_wall-Vector.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-fixed_wall-Vector.png differ diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-minerals-Vector.png b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-minerals-Vector.png index 5137506e1..57ee46ae4 100644 Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-minerals-Vector.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-minerals-Vector.png differ diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-movable_wall-Vector.png b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-movable_wall-Vector.png index 3fb1db731..159d22611 100644 Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-movable_wall-Vector.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-movable_wall-Vector.png differ diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-ranged-Vector.png b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-ranged-Vector.png index 0dea1ddca..f76f390fd 100644 Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-ranged-Vector.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-ranged-Vector.png differ diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-worker-Isometric.png b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-worker-Isometric.png index 58ffffafc..225640b30 100644 Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-worker-Isometric.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-worker-Isometric.png differ diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-worker-Vector.png b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-worker-Vector.png index 0dea1ddca..e63992f30 100644 Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-worker-Vector.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-worker-Vector.png differ diff --git a/docs/games/GriddlyRTS/index.rst b/docs/games/GriddlyRTS/index.rst index 6b9235dba..24e979088 100644 --- a/docs/games/GriddlyRTS/index.rst +++ b/docs/games/GriddlyRTS/index.rst @@ -16,13 +16,14 @@ Levels --------- .. list-table:: Levels + :class: level-gallery :header-rows: 1 * - - Vector + - Isometric - Sprite2D - Block2D - - Isometric * - .. list-table:: * - Level ID @@ -30,9 +31,9 @@ Levels * - Size - 16x16 - .. thumbnail:: img/GriddlyRTS-level-Vector-0.png + - .. thumbnail:: img/GriddlyRTS-level-Isometric-0.png - .. thumbnail:: img/GriddlyRTS-level-Sprite2D-0.png - .. thumbnail:: img/GriddlyRTS-level-Block2D-0.png - - .. thumbnail:: img/GriddlyRTS-level-Isometric-0.png * - .. list-table:: * - Level ID @@ -40,9 +41,9 @@ Levels * - Size - 30x30 - .. thumbnail:: img/GriddlyRTS-level-Vector-1.png + - .. thumbnail:: img/GriddlyRTS-level-Isometric-1.png - .. thumbnail:: img/GriddlyRTS-level-Sprite2D-1.png - .. thumbnail:: img/GriddlyRTS-level-Block2D-1.png - - .. thumbnail:: img/GriddlyRTS-level-Isometric-1.png * - .. list-table:: * - Level ID @@ -50,9 +51,9 @@ Levels * - Size - 30x30 - .. thumbnail:: img/GriddlyRTS-level-Vector-2.png + - .. thumbnail:: img/GriddlyRTS-level-Isometric-2.png - .. thumbnail:: img/GriddlyRTS-level-Sprite2D-2.png - .. thumbnail:: img/GriddlyRTS-level-Block2D-2.png - - .. thumbnail:: img/GriddlyRTS-level-Isometric-2.png * - .. list-table:: * - Level ID @@ -60,9 +61,9 @@ Levels * - Size - 57x58 - .. thumbnail:: img/GriddlyRTS-level-Vector-3.png + - .. thumbnail:: img/GriddlyRTS-level-Isometric-3.png - .. thumbnail:: img/GriddlyRTS-level-Sprite2D-3.png - .. thumbnail:: img/GriddlyRTS-level-Block2D-3.png - - .. thumbnail:: img/GriddlyRTS-level-Isometric-3.png Code Example ------------ @@ -130,6 +131,16 @@ Objects - .. image:: img/GriddlyRTS-tile-base-Vector.png - .. image:: img/GriddlyRTS-tile-barracks_disabled-Vector.png - .. image:: img/GriddlyRTS-tile-barracks-Vector.png + * - Isometric + - .. image:: img/GriddlyRTS-tile-minerals-Isometric.png + - .. image:: img/GriddlyRTS-tile-worker-Isometric.png + - .. image:: img/GriddlyRTS-tile-ranged-Isometric.png + - .. image:: img/GriddlyRTS-tile-combat-Isometric.png + - .. image:: img/GriddlyRTS-tile-fixed_wall-Isometric.png + - .. image:: img/GriddlyRTS-tile-movable_wall-Isometric.png + - .. image:: img/GriddlyRTS-tile-base-Isometric.png + - .. image:: img/GriddlyRTS-tile-barracks_disabled-Isometric.png + - .. image:: img/GriddlyRTS-tile-barracks-Isometric.png * - Sprite2D - .. image:: img/GriddlyRTS-tile-minerals-Sprite2D.png - .. image:: img/GriddlyRTS-tile-worker-Sprite2D.png @@ -150,16 +161,6 @@ Objects - .. image:: img/GriddlyRTS-tile-base-Block2D.png - .. image:: img/GriddlyRTS-tile-barracks_disabled-Block2D.png - .. image:: img/GriddlyRTS-tile-barracks-Block2D.png - * - Isometric - - .. image:: img/GriddlyRTS-tile-minerals-Isometric.png - - .. image:: img/GriddlyRTS-tile-worker-Isometric.png - - .. image:: img/GriddlyRTS-tile-ranged-Isometric.png - - .. image:: img/GriddlyRTS-tile-combat-Isometric.png - - .. image:: img/GriddlyRTS-tile-fixed_wall-Isometric.png - - .. image:: img/GriddlyRTS-tile-movable_wall-Isometric.png - - .. image:: img/GriddlyRTS-tile-base-Isometric.png - - .. image:: img/GriddlyRTS-tile-barracks_disabled-Isometric.png - - .. image:: img/GriddlyRTS-tile-barracks-Isometric.png Actions diff --git a/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Block2D-0.png b/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Block2D-0.png index 8ed67f957..8092ef46c 100644 Binary files a/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Block2D-0.png and b/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Block2D-0.png differ diff --git a/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Block2D-1.png b/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Block2D-1.png index 8492baef3..b00123d3d 100644 Binary files a/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Block2D-1.png and b/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Block2D-1.png differ diff --git a/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Isometric-0.png b/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Isometric-0.png index 1d55b694c..34abecfcd 100644 Binary files a/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Isometric-0.png and b/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Isometric-0.png differ diff --git a/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Isometric-1.png b/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Isometric-1.png index ba2eb78fa..5785c55fb 100644 Binary files a/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Isometric-1.png and b/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Isometric-1.png differ diff --git a/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Vector-0.png b/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Vector-0.png index cd0d6d644..dbe925e01 100644 Binary files a/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Vector-0.png and b/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Vector-0.png differ diff --git a/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Vector-1.png b/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Vector-1.png index 6cfc86c0e..1d701a0a7 100644 Binary files a/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Vector-1.png and b/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Vector-1.png differ diff --git a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-healer-Isometric.png b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-healer-Isometric.png index 40f3e3ada..408c2735b 100644 Binary files a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-healer-Isometric.png and b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-healer-Isometric.png differ diff --git a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-healer-Vector.png b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-healer-Vector.png index a9977b2ea..f76f390fd 100644 Binary files a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-healer-Vector.png and b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-healer-Vector.png differ diff --git a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-hole-Isometric.png b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-hole-Isometric.png index e717258f7..fd78293bd 100644 Binary files a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-hole-Isometric.png and b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-hole-Isometric.png differ diff --git a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-hole-Vector.png b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-hole-Vector.png index fe01dce2a..3220f5d4c 100644 Binary files a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-hole-Vector.png and b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-hole-Vector.png differ diff --git a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-mountain-Block2D.png b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-mountain-Block2D.png index a2187eadf..799df081e 100644 Binary files a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-mountain-Block2D.png and b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-mountain-Block2D.png differ diff --git a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-mountain-Isometric.png b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-mountain-Isometric.png index 5e4de9341..1badedbff 100644 Binary files a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-mountain-Isometric.png and b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-mountain-Isometric.png differ diff --git a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-mountain-Vector.png b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-mountain-Vector.png index c0ac27968..3220f5d4c 100644 Binary files a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-mountain-Vector.png and b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-mountain-Vector.png differ diff --git a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-warrior-Block2D.png b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-warrior-Block2D.png index cba4d3b7b..d4c8ee3a5 100644 Binary files a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-warrior-Block2D.png and b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-warrior-Block2D.png differ diff --git a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-warrior-Isometric.png b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-warrior-Isometric.png index 14dcc567e..20516e806 100644 Binary files a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-warrior-Isometric.png and b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-warrior-Isometric.png differ diff --git a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-warrior-Vector.png b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-warrior-Vector.png index a9977b2ea..f76f390fd 100644 Binary files a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-warrior-Vector.png and b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-warrior-Vector.png differ diff --git a/docs/games/Heal_Or_Die/index.rst b/docs/games/Heal_Or_Die/index.rst index 9ff33dc15..7bd4c7fd5 100644 --- a/docs/games/Heal_Or_Die/index.rst +++ b/docs/games/Heal_Or_Die/index.rst @@ -19,13 +19,14 @@ Levels --------- .. list-table:: Levels + :class: level-gallery :header-rows: 1 * - - Vector + - Isometric - Sprite2D - Block2D - - Isometric * - .. list-table:: * - Level ID @@ -33,9 +34,9 @@ Levels * - Size - 25x10 - .. thumbnail:: img/Heal_Or_Die-level-Vector-0.png + - .. thumbnail:: img/Heal_Or_Die-level-Isometric-0.png - .. thumbnail:: img/Heal_Or_Die-level-Sprite2D-0.png - .. thumbnail:: img/Heal_Or_Die-level-Block2D-0.png - - .. thumbnail:: img/Heal_Or_Die-level-Isometric-0.png * - .. list-table:: * - Level ID @@ -43,9 +44,9 @@ Levels * - Size - 25x19 - .. thumbnail:: img/Heal_Or_Die-level-Vector-1.png + - .. thumbnail:: img/Heal_Or_Die-level-Isometric-1.png - .. thumbnail:: img/Heal_Or_Die-level-Sprite2D-1.png - .. thumbnail:: img/Heal_Or_Die-level-Block2D-1.png - - .. thumbnail:: img/Heal_Or_Die-level-Isometric-1.png Code Example ------------ @@ -98,6 +99,11 @@ Objects - .. image:: img/Heal_Or_Die-tile-hole-Vector.png - .. image:: img/Heal_Or_Die-tile-healer-Vector.png - .. image:: img/Heal_Or_Die-tile-warrior-Vector.png + * - Isometric + - .. image:: img/Heal_Or_Die-tile-mountain-Isometric.png + - .. image:: img/Heal_Or_Die-tile-hole-Isometric.png + - .. image:: img/Heal_Or_Die-tile-healer-Isometric.png + - .. image:: img/Heal_Or_Die-tile-warrior-Isometric.png * - Sprite2D - .. image:: img/Heal_Or_Die-tile-mountain-Sprite2D.png - .. image:: img/Heal_Or_Die-tile-hole-Sprite2D.png @@ -108,11 +114,6 @@ Objects - .. image:: img/Heal_Or_Die-tile-hole-Block2D.png - .. image:: img/Heal_Or_Die-tile-healer-Block2D.png - .. image:: img/Heal_Or_Die-tile-warrior-Block2D.png - * - Isometric - - .. image:: img/Heal_Or_Die-tile-mountain-Isometric.png - - .. image:: img/Heal_Or_Die-tile-hole-Isometric.png - - .. image:: img/Heal_Or_Die-tile-healer-Isometric.png - - .. image:: img/Heal_Or_Die-tile-warrior-Isometric.png Actions diff --git a/docs/games/Kill_The_King/img/Kill_The_King-level-Block2D-0.png b/docs/games/Kill_The_King/img/Kill_The_King-level-Block2D-0.png index 6c2817aaa..8b19509d0 100644 Binary files a/docs/games/Kill_The_King/img/Kill_The_King-level-Block2D-0.png and b/docs/games/Kill_The_King/img/Kill_The_King-level-Block2D-0.png differ diff --git a/docs/games/Kill_The_King/img/Kill_The_King-level-Isometric-0.png b/docs/games/Kill_The_King/img/Kill_The_King-level-Isometric-0.png index 720b431ba..654378d2d 100644 Binary files a/docs/games/Kill_The_King/img/Kill_The_King-level-Isometric-0.png and b/docs/games/Kill_The_King/img/Kill_The_King-level-Isometric-0.png differ diff --git a/docs/games/Kill_The_King/img/Kill_The_King-level-Vector-0.png b/docs/games/Kill_The_King/img/Kill_The_King-level-Vector-0.png index 36db75b96..3bdc4774f 100644 Binary files a/docs/games/Kill_The_King/img/Kill_The_King-level-Vector-0.png and b/docs/games/Kill_The_King/img/Kill_The_King-level-Vector-0.png differ diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-archer-Block2D.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-archer-Block2D.png index c68181295..3b7662732 100644 Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-archer-Block2D.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-archer-Block2D.png differ diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-archer-Isometric.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-archer-Isometric.png index f6d15b694..e18564c2d 100644 Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-archer-Isometric.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-archer-Isometric.png differ diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-archer-Vector.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-archer-Vector.png index 5f7dd9cd6..b300bb8b3 100644 Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-archer-Vector.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-archer-Vector.png differ diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-forest-Isometric.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-forest-Isometric.png index d5245edf6..00bbdfc64 100644 Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-forest-Isometric.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-forest-Isometric.png differ diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-forest-Vector.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-forest-Vector.png index 81269459b..619e42feb 100644 Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-forest-Vector.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-forest-Vector.png differ diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-healer-Block2D.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-healer-Block2D.png index 2dc23607d..e64b9328f 100644 Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-healer-Block2D.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-healer-Block2D.png differ diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-healer-Isometric.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-healer-Isometric.png index 40f3e3ada..408c2735b 100644 Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-healer-Isometric.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-healer-Isometric.png differ diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-healer-Vector.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-healer-Vector.png index 5f7dd9cd6..c0ac27968 100644 Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-healer-Vector.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-healer-Vector.png differ diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-hole-Isometric.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-hole-Isometric.png index e717258f7..fd78293bd 100644 Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-hole-Isometric.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-hole-Isometric.png differ diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-hole-Vector.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-hole-Vector.png index 34f07f038..fe01dce2a 100644 Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-hole-Vector.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-hole-Vector.png differ diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-king-Isometric.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-king-Isometric.png index 635809f28..0a7621eab 100644 Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-king-Isometric.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-king-Isometric.png differ diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-king-Vector.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-king-Vector.png index 5f7dd9cd6..fe01dce2a 100644 Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-king-Vector.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-king-Vector.png differ diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-mountain-Block2D.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-mountain-Block2D.png index a2187eadf..799df081e 100644 Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-mountain-Block2D.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-mountain-Block2D.png differ diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-mountain-Isometric.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-mountain-Isometric.png index 5e4de9341..1badedbff 100644 Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-mountain-Isometric.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-mountain-Isometric.png differ diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-mountain-Vector.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-mountain-Vector.png index 0efac0d90..c0ac27968 100644 Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-mountain-Vector.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-mountain-Vector.png differ diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-warrior-Block2D.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-warrior-Block2D.png index c5692d38a..d1d57e4c5 100644 Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-warrior-Block2D.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-warrior-Block2D.png differ diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-warrior-Isometric.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-warrior-Isometric.png index 14dcc567e..20516e806 100644 Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-warrior-Isometric.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-warrior-Isometric.png differ diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-warrior-Vector.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-warrior-Vector.png index 5f7dd9cd6..619e42feb 100644 Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-warrior-Vector.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-warrior-Vector.png differ diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-water-Isometric.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-water-Isometric.png index 64f362f6f..4f68717f6 100644 Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-water-Isometric.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-water-Isometric.png differ diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-water-Vector.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-water-Vector.png index fd002494a..b300bb8b3 100644 Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-water-Vector.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-water-Vector.png differ diff --git a/docs/games/Kill_The_King/index.rst b/docs/games/Kill_The_King/index.rst index b7ccdac45..eac6e53ce 100644 --- a/docs/games/Kill_The_King/index.rst +++ b/docs/games/Kill_The_King/index.rst @@ -18,13 +18,14 @@ Levels --------- .. list-table:: Levels + :class: level-gallery :header-rows: 1 * - - Vector + - Isometric - Sprite2D - Block2D - - Isometric * - .. list-table:: * - Level ID @@ -32,9 +33,9 @@ Levels * - Size - 32x17 - .. thumbnail:: img/Kill_The_King-level-Vector-0.png + - .. thumbnail:: img/Kill_The_King-level-Isometric-0.png - .. thumbnail:: img/Kill_The_King-level-Sprite2D-0.png - .. thumbnail:: img/Kill_The_King-level-Block2D-0.png - - .. thumbnail:: img/Kill_The_King-level-Isometric-0.png Code Example ------------ @@ -99,6 +100,15 @@ Objects - .. image:: img/Kill_The_King-tile-warrior-Vector.png - .. image:: img/Kill_The_King-tile-archer-Vector.png - .. image:: img/Kill_The_King-tile-king-Vector.png + * - Isometric + - .. image:: img/Kill_The_King-tile-mountain-Isometric.png + - .. image:: img/Kill_The_King-tile-water-Isometric.png + - .. image:: img/Kill_The_King-tile-forest-Isometric.png + - .. image:: img/Kill_The_King-tile-hole-Isometric.png + - .. image:: img/Kill_The_King-tile-healer-Isometric.png + - .. image:: img/Kill_The_King-tile-warrior-Isometric.png + - .. image:: img/Kill_The_King-tile-archer-Isometric.png + - .. image:: img/Kill_The_King-tile-king-Isometric.png * - Sprite2D - .. image:: img/Kill_The_King-tile-mountain-Sprite2D.png - .. image:: img/Kill_The_King-tile-water-Sprite2D.png @@ -117,15 +127,6 @@ Objects - .. image:: img/Kill_The_King-tile-warrior-Block2D.png - .. image:: img/Kill_The_King-tile-archer-Block2D.png - .. image:: img/Kill_The_King-tile-king-Block2D.png - * - Isometric - - .. image:: img/Kill_The_King-tile-mountain-Isometric.png - - .. image:: img/Kill_The_King-tile-water-Isometric.png - - .. image:: img/Kill_The_King-tile-forest-Isometric.png - - .. image:: img/Kill_The_King-tile-hole-Isometric.png - - .. image:: img/Kill_The_King-tile-healer-Isometric.png - - .. image:: img/Kill_The_King-tile-warrior-Isometric.png - - .. image:: img/Kill_The_King-tile-archer-Isometric.png - - .. image:: img/Kill_The_King-tile-king-Isometric.png Actions diff --git a/docs/games/Labyrinth/img/Labyrinth-level-Block2D-0.png b/docs/games/Labyrinth/img/Labyrinth-level-Block2D-0.png index b2f1ffd66..8380bddc8 100644 Binary files a/docs/games/Labyrinth/img/Labyrinth-level-Block2D-0.png and b/docs/games/Labyrinth/img/Labyrinth-level-Block2D-0.png differ diff --git a/docs/games/Labyrinth/img/Labyrinth-level-Block2D-1.png b/docs/games/Labyrinth/img/Labyrinth-level-Block2D-1.png index 17e87a597..1d5e6f611 100644 Binary files a/docs/games/Labyrinth/img/Labyrinth-level-Block2D-1.png and b/docs/games/Labyrinth/img/Labyrinth-level-Block2D-1.png differ diff --git a/docs/games/Labyrinth/img/Labyrinth-level-Block2D-2.png b/docs/games/Labyrinth/img/Labyrinth-level-Block2D-2.png index 96f2a2457..656773a0c 100644 Binary files a/docs/games/Labyrinth/img/Labyrinth-level-Block2D-2.png and b/docs/games/Labyrinth/img/Labyrinth-level-Block2D-2.png differ diff --git a/docs/games/Labyrinth/img/Labyrinth-level-Block2D-3.png b/docs/games/Labyrinth/img/Labyrinth-level-Block2D-3.png index 714acbcd0..fb16a30e6 100644 Binary files a/docs/games/Labyrinth/img/Labyrinth-level-Block2D-3.png and b/docs/games/Labyrinth/img/Labyrinth-level-Block2D-3.png differ diff --git a/docs/games/Labyrinth/img/Labyrinth-level-Block2D-4.png b/docs/games/Labyrinth/img/Labyrinth-level-Block2D-4.png index 0de7cdb45..0f3477629 100644 Binary files a/docs/games/Labyrinth/img/Labyrinth-level-Block2D-4.png and b/docs/games/Labyrinth/img/Labyrinth-level-Block2D-4.png differ diff --git a/docs/games/Labyrinth/img/Labyrinth-level-Vector-0.png b/docs/games/Labyrinth/img/Labyrinth-level-Vector-0.png index 3bcdbce0f..5ec4378f3 100644 Binary files a/docs/games/Labyrinth/img/Labyrinth-level-Vector-0.png and b/docs/games/Labyrinth/img/Labyrinth-level-Vector-0.png differ diff --git a/docs/games/Labyrinth/img/Labyrinth-level-Vector-1.png b/docs/games/Labyrinth/img/Labyrinth-level-Vector-1.png index 24d5ab3c2..59f7849a4 100644 Binary files a/docs/games/Labyrinth/img/Labyrinth-level-Vector-1.png and b/docs/games/Labyrinth/img/Labyrinth-level-Vector-1.png differ diff --git a/docs/games/Labyrinth/img/Labyrinth-level-Vector-2.png b/docs/games/Labyrinth/img/Labyrinth-level-Vector-2.png index c6a15f591..93b9dd548 100644 Binary files a/docs/games/Labyrinth/img/Labyrinth-level-Vector-2.png and b/docs/games/Labyrinth/img/Labyrinth-level-Vector-2.png differ diff --git a/docs/games/Labyrinth/img/Labyrinth-level-Vector-3.png b/docs/games/Labyrinth/img/Labyrinth-level-Vector-3.png index bc65ebce3..69b1610bd 100644 Binary files a/docs/games/Labyrinth/img/Labyrinth-level-Vector-3.png and b/docs/games/Labyrinth/img/Labyrinth-level-Vector-3.png differ diff --git a/docs/games/Labyrinth/img/Labyrinth-level-Vector-4.png b/docs/games/Labyrinth/img/Labyrinth-level-Vector-4.png index 9069320cd..c108c3efc 100644 Binary files a/docs/games/Labyrinth/img/Labyrinth-level-Vector-4.png and b/docs/games/Labyrinth/img/Labyrinth-level-Vector-4.png differ diff --git a/docs/games/Labyrinth/img/Labyrinth-tile-avatar-Block2D.png b/docs/games/Labyrinth/img/Labyrinth-tile-avatar-Block2D.png index cca586511..532f4fbf9 100644 Binary files a/docs/games/Labyrinth/img/Labyrinth-tile-avatar-Block2D.png and b/docs/games/Labyrinth/img/Labyrinth-tile-avatar-Block2D.png differ diff --git a/docs/games/Labyrinth/img/Labyrinth-tile-avatar-Vector.png b/docs/games/Labyrinth/img/Labyrinth-tile-avatar-Vector.png index 3220f5d4c..f76f390fd 100644 Binary files a/docs/games/Labyrinth/img/Labyrinth-tile-avatar-Vector.png and b/docs/games/Labyrinth/img/Labyrinth-tile-avatar-Vector.png differ diff --git a/docs/games/Labyrinth/img/Labyrinth-tile-exit-Block2D.png b/docs/games/Labyrinth/img/Labyrinth-tile-exit-Block2D.png index b42cb7cf8..473b1a1cd 100644 Binary files a/docs/games/Labyrinth/img/Labyrinth-tile-exit-Block2D.png and b/docs/games/Labyrinth/img/Labyrinth-tile-exit-Block2D.png differ diff --git a/docs/games/Labyrinth/img/Labyrinth-tile-exit-Vector.png b/docs/games/Labyrinth/img/Labyrinth-tile-exit-Vector.png index f76f390fd..3220f5d4c 100644 Binary files a/docs/games/Labyrinth/img/Labyrinth-tile-exit-Vector.png and b/docs/games/Labyrinth/img/Labyrinth-tile-exit-Vector.png differ diff --git a/docs/games/Labyrinth/img/Labyrinth-tile-trap-Vector.png b/docs/games/Labyrinth/img/Labyrinth-tile-trap-Vector.png index dabd04345..3220f5d4c 100644 Binary files a/docs/games/Labyrinth/img/Labyrinth-tile-trap-Vector.png and b/docs/games/Labyrinth/img/Labyrinth-tile-trap-Vector.png differ diff --git a/docs/games/Labyrinth/img/Labyrinth-tile-wall-Block2D.png b/docs/games/Labyrinth/img/Labyrinth-tile-wall-Block2D.png index 2940576bf..354d34021 100644 Binary files a/docs/games/Labyrinth/img/Labyrinth-tile-wall-Block2D.png and b/docs/games/Labyrinth/img/Labyrinth-tile-wall-Block2D.png differ diff --git a/docs/games/Labyrinth/img/Labyrinth-tile-wall-Vector.png b/docs/games/Labyrinth/img/Labyrinth-tile-wall-Vector.png index a3bc67813..f76f390fd 100644 Binary files a/docs/games/Labyrinth/img/Labyrinth-tile-wall-Vector.png and b/docs/games/Labyrinth/img/Labyrinth-tile-wall-Vector.png differ diff --git a/docs/games/Labyrinth/index.rst b/docs/games/Labyrinth/index.rst index 54c99a42f..6f9dd363b 100644 --- a/docs/games/Labyrinth/index.rst +++ b/docs/games/Labyrinth/index.rst @@ -16,6 +16,7 @@ Levels --------- .. list-table:: Levels + :class: level-gallery :header-rows: 1 * - diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-0.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-0.png index d784fd97e..af95ef5f8 100644 Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-0.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-0.png differ diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-1.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-1.png index 7a791ad8d..69a5e700f 100644 Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-1.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-1.png differ diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-2.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-2.png index 7c8e897b6..0ba22d932 100644 Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-2.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-2.png differ diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-3.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-3.png index aa6b2ec8d..6c9f04b37 100644 Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-3.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-3.png differ diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-4.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-4.png index efb1b3b17..f9ed98d26 100644 Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-4.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-4.png differ diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-0.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-0.png index c0b1323be..080179f91 100644 Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-0.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-0.png differ diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-1.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-1.png index 3c530b09c..6cbedd7f3 100644 Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-1.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-1.png differ diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-2.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-2.png index a85c94c6e..32d4513a4 100644 Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-2.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-2.png differ diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-3.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-3.png index 8b3d31509..ea27a7232 100644 Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-3.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-3.png differ diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-4.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-4.png index e1eadc174..cbebb4efd 100644 Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-4.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-4.png differ diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-avatar-Vector.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-avatar-Vector.png index 6985a0878..3fb1db731 100644 Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-avatar-Vector.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-avatar-Vector.png differ diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-box-Block2D.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-box-Block2D.png index 5556781fb..2cee22959 100644 Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-box-Block2D.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-box-Block2D.png differ diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-box-Vector.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-box-Vector.png index 1460b3271..6985a0878 100644 Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-box-Vector.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-box-Vector.png differ diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-goal-Vector.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-goal-Vector.png index a5cdcff22..e7623ec6f 100644 Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-goal-Vector.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-goal-Vector.png differ diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-hole-Vector.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-hole-Vector.png index 50a43e1f7..1460b3271 100644 Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-hole-Vector.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-hole-Vector.png differ diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-key-Block2D.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-key-Block2D.png index f3a371b8a..009ae95f9 100644 Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-key-Block2D.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-key-Block2D.png differ diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-key-Vector.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-key-Vector.png index 77a281909..bbb0c9965 100644 Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-key-Vector.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-key-Vector.png differ diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-mushroom-Vector.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-mushroom-Vector.png index f5ac61ae0..a5cdcff22 100644 Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-mushroom-Vector.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-mushroom-Vector.png differ diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-wall-Block2D.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-wall-Block2D.png index 2940576bf..354d34021 100644 Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-wall-Block2D.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-wall-Block2D.png differ diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-wall-Vector.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-wall-Vector.png index 0dea1ddca..c699d613a 100644 Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-wall-Vector.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-wall-Vector.png differ diff --git a/docs/games/Partially_Observable_Bait/index.rst b/docs/games/Partially_Observable_Bait/index.rst index 614c5a64d..275b932b2 100644 --- a/docs/games/Partially_Observable_Bait/index.rst +++ b/docs/games/Partially_Observable_Bait/index.rst @@ -16,6 +16,7 @@ Levels --------- .. list-table:: Levels + :class: level-gallery :header-rows: 1 * - diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-0.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-0.png index 1dfd15e40..716016102 100644 Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-0.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-0.png differ diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-1.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-1.png index 3d0ad655b..902bb2a53 100644 Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-1.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-1.png differ diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-2.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-2.png index bf5f97d45..3b1143c4e 100644 Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-2.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-2.png differ diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-3.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-3.png index c6b8d4153..5fa9434c1 100644 Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-3.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-3.png differ diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-4.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-4.png index f6b701fd4..451342bd8 100644 Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-4.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-4.png differ diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-0.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-0.png index 4e2f284be..47914b365 100644 Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-0.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-0.png differ diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-1.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-1.png index bfee64909..7a73f6b26 100644 Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-1.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-1.png differ diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-2.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-2.png index d7f38bd91..ca4ef2390 100644 Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-2.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-2.png differ diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-3.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-3.png index 0a42e1db6..063409d0d 100644 Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-3.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-3.png differ diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-4.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-4.png index c41ea274d..c440322b4 100644 Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-4.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-4.png differ diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-avatar-Vector.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-avatar-Vector.png index 449dbd771..bc5c2b3ee 100644 Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-avatar-Vector.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-avatar-Vector.png differ diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-blue_block-Vector.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-blue_block-Vector.png index cddd4d04e..449dbd771 100644 Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-blue_block-Vector.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-blue_block-Vector.png differ diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-blue_box-Block2D.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-blue_box-Block2D.png index 04c0f1ab7..02cfa53bd 100644 Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-blue_box-Block2D.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-blue_box-Block2D.png differ diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-blue_box-Vector.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-blue_box-Vector.png index 1ea637a7b..a3febd5dd 100644 Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-blue_box-Vector.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-blue_box-Vector.png differ diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-green_block-Vector.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-green_block-Vector.png index bc5c2b3ee..1ea637a7b 100644 Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-green_block-Vector.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-green_block-Vector.png differ diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-green_box-Block2D.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-green_box-Block2D.png index e7ce880ab..462b72f1e 100644 Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-green_box-Block2D.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-green_box-Block2D.png differ diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-green_box-Vector.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-green_box-Vector.png index bdb0ce86a..1ea637a7b 100644 Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-green_box-Vector.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-green_box-Vector.png differ diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-red_block-Vector.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-red_block-Vector.png index c59c09c03..cddd4d04e 100644 Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-red_block-Vector.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-red_block-Vector.png differ diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-red_box-Block2D.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-red_box-Block2D.png index 70e7a6cfc..e97e205e3 100644 Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-red_box-Block2D.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-red_box-Block2D.png differ diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-red_box-Vector.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-red_box-Vector.png index 1843eaae9..a3febd5dd 100644 Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-red_box-Vector.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-red_box-Vector.png differ diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-spike-Block2D.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-spike-Block2D.png index b19a62955..4e0852ee5 100644 Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-spike-Block2D.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-spike-Block2D.png differ diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-spike-Vector.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-spike-Vector.png index 8722650d1..449dbd771 100644 Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-spike-Vector.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-spike-Vector.png differ diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-wall-Block2D.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-wall-Block2D.png index 2940576bf..354d34021 100644 Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-wall-Block2D.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-wall-Block2D.png differ diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-wall-Vector.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-wall-Vector.png index 91397096b..bc5c2b3ee 100644 Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-wall-Vector.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-wall-Vector.png differ diff --git a/docs/games/Partially_Observable_Clusters/index.rst b/docs/games/Partially_Observable_Clusters/index.rst index 5b9769442..99c44dd0f 100644 --- a/docs/games/Partially_Observable_Clusters/index.rst +++ b/docs/games/Partially_Observable_Clusters/index.rst @@ -16,6 +16,7 @@ Levels --------- .. list-table:: Levels + :class: level-gallery :header-rows: 1 * - diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-0.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-0.png index e08f72af0..4482602f6 100644 Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-0.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-0.png differ diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-1.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-1.png index e08f72af0..4482602f6 100644 Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-1.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-1.png differ diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-2.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-2.png index 7e5bd5734..273048305 100644 Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-2.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-2.png differ diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-3.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-3.png index 927ca05a0..d8d385146 100644 Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-3.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-3.png differ diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-4.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-4.png index 965458aba..e8731ad45 100644 Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-4.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-4.png differ diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-5.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-5.png index 63ecb598f..abb456247 100644 Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-5.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-5.png differ diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Sprite2D-2.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Sprite2D-2.png index 573d02fe3..f3464f673 100644 Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Sprite2D-2.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Sprite2D-2.png differ diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Sprite2D-3.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Sprite2D-3.png index 4472f05d5..f7584150b 100644 Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Sprite2D-3.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Sprite2D-3.png differ diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Sprite2D-4.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Sprite2D-4.png index bf84e2527..130fff973 100644 Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Sprite2D-4.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Sprite2D-4.png differ diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Sprite2D-5.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Sprite2D-5.png index b97ca4ff6..16500dd79 100644 Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Sprite2D-5.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Sprite2D-5.png differ diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-0.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-0.png index a6b8fdf37..71fd39ba1 100644 Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-0.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-0.png differ diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-1.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-1.png index a6b8fdf37..71fd39ba1 100644 Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-1.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-1.png differ diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-2.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-2.png index 11e729c64..e05782f3b 100644 Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-2.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-2.png differ diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-3.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-3.png index 5eb4ce51a..c01d45924 100644 Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-3.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-3.png differ diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-4.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-4.png index 91312faad..e665e8c01 100644 Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-4.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-4.png differ diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-5.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-5.png index 1e02b03d6..c801bb6a0 100644 Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-5.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-5.png differ diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-avatar-Block2D.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-avatar-Block2D.png index e163562b3..e1720c195 100644 Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-avatar-Block2D.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-avatar-Block2D.png differ diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-avatar-Vector.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-avatar-Vector.png index 3b1230202..0efac0d90 100644 Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-avatar-Vector.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-avatar-Vector.png differ diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-boiling_water-Vector.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-boiling_water-Vector.png index 81269459b..3b1230202 100644 Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-boiling_water-Vector.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-boiling_water-Vector.png differ diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-key-Block2D.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-key-Block2D.png index 40a6d056a..a50ac3590 100644 Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-key-Block2D.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-key-Block2D.png differ diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-key-Sprite2D.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-key-Sprite2D.png index af95f3e10..c0761c930 100644 Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-key-Sprite2D.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-key-Sprite2D.png differ diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-key-Vector.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-key-Vector.png index b777829b0..34f07f038 100644 Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-key-Vector.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-key-Vector.png differ diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-lock-Block2D.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-lock-Block2D.png index a284f9eb9..48d905a59 100644 Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-lock-Block2D.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-lock-Block2D.png differ diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-lock-Vector.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-lock-Vector.png index 0efac0d90..3f6bf0a16 100644 Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-lock-Vector.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-lock-Vector.png differ diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-raw_pasta-Vector.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-raw_pasta-Vector.png index fd002494a..34f07f038 100644 Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-raw_pasta-Vector.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-raw_pasta-Vector.png differ diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-tomato-Vector.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-tomato-Vector.png index 55f2af5df..81269459b 100644 Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-tomato-Vector.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-tomato-Vector.png differ diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-tuna-Vector.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-tuna-Vector.png index e786c582e..b777829b0 100644 Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-tuna-Vector.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-tuna-Vector.png differ diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-wall-Block2D.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-wall-Block2D.png index 40a6d056a..a50ac3590 100644 Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-wall-Block2D.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-wall-Block2D.png differ diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-wall-Vector.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-wall-Vector.png index 40f1980b9..3b1230202 100644 Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-wall-Vector.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-wall-Vector.png differ diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/index.rst b/docs/games/Partially_Observable_Cook_Me_Pasta/index.rst index eb20eb4f3..5037c5fc2 100644 --- a/docs/games/Partially_Observable_Cook_Me_Pasta/index.rst +++ b/docs/games/Partially_Observable_Cook_Me_Pasta/index.rst @@ -16,6 +16,7 @@ Levels --------- .. list-table:: Levels + :class: level-gallery :header-rows: 1 * - diff --git a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-0.png b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-0.png index b2f1ffd66..8380bddc8 100644 Binary files a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-0.png and b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-0.png differ diff --git a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-1.png b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-1.png index 17e87a597..1d5e6f611 100644 Binary files a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-1.png and b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-1.png differ diff --git a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-2.png b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-2.png index 96f2a2457..656773a0c 100644 Binary files a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-2.png and b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-2.png differ diff --git a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-3.png b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-3.png index 714acbcd0..fb16a30e6 100644 Binary files a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-3.png and b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-3.png differ diff --git a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-4.png b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-4.png index 0de7cdb45..0f3477629 100644 Binary files a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-4.png and b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-4.png differ diff --git a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-0.png b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-0.png index 3bcdbce0f..5ec4378f3 100644 Binary files a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-0.png and b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-0.png differ diff --git a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-1.png b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-1.png index 24d5ab3c2..59f7849a4 100644 Binary files a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-1.png and b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-1.png differ diff --git a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-2.png b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-2.png index c6a15f591..93b9dd548 100644 Binary files a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-2.png and b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-2.png differ diff --git a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-3.png b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-3.png index bc65ebce3..69b1610bd 100644 Binary files a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-3.png and b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-3.png differ diff --git a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-4.png b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-4.png index 9069320cd..c108c3efc 100644 Binary files a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-4.png and b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-4.png differ diff --git a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-avatar-Block2D.png b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-avatar-Block2D.png index cca586511..532f4fbf9 100644 Binary files a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-avatar-Block2D.png and b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-avatar-Block2D.png differ diff --git a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-avatar-Vector.png b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-avatar-Vector.png index 3220f5d4c..f76f390fd 100644 Binary files a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-avatar-Vector.png and b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-avatar-Vector.png differ diff --git a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-exit-Block2D.png b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-exit-Block2D.png index b42cb7cf8..473b1a1cd 100644 Binary files a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-exit-Block2D.png and b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-exit-Block2D.png differ diff --git a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-exit-Vector.png b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-exit-Vector.png index f76f390fd..3220f5d4c 100644 Binary files a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-exit-Vector.png and b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-exit-Vector.png differ diff --git a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-trap-Vector.png b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-trap-Vector.png index dabd04345..3220f5d4c 100644 Binary files a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-trap-Vector.png and b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-trap-Vector.png differ diff --git a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-wall-Block2D.png b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-wall-Block2D.png index 2940576bf..354d34021 100644 Binary files a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-wall-Block2D.png and b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-wall-Block2D.png differ diff --git a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-wall-Vector.png b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-wall-Vector.png index a3bc67813..f76f390fd 100644 Binary files a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-wall-Vector.png and b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-wall-Vector.png differ diff --git a/docs/games/Partially_Observable_Labyrinth/index.rst b/docs/games/Partially_Observable_Labyrinth/index.rst index 2d3595a65..537dbd4c0 100644 --- a/docs/games/Partially_Observable_Labyrinth/index.rst +++ b/docs/games/Partially_Observable_Labyrinth/index.rst @@ -16,6 +16,7 @@ Levels --------- .. list-table:: Levels + :class: level-gallery :header-rows: 1 * - diff --git a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-0.png b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-0.png index f1920a6d3..019d20387 100644 Binary files a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-0.png and b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-0.png differ diff --git a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-1.png b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-1.png index 388cd092a..f013ba23c 100644 Binary files a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-1.png and b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-1.png differ diff --git a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-2.png b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-2.png index 82c4a75ec..9d84d3c39 100644 Binary files a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-2.png and b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-2.png differ diff --git a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-3.png b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-3.png index eed9eeff1..0a68bff6f 100644 Binary files a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-3.png and b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-3.png differ diff --git a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-4.png b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-4.png index f614306f5..3db821a1a 100644 Binary files a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-4.png and b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-4.png differ diff --git a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-0.png b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-0.png index a1f41222b..0531d598e 100644 Binary files a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-0.png and b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-0.png differ diff --git a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-1.png b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-1.png index b33f80707..80eeaf3e0 100644 Binary files a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-1.png and b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-1.png differ diff --git a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-2.png b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-2.png index 4b4225dba..fac62472c 100644 Binary files a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-2.png and b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-2.png differ diff --git a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-3.png b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-3.png index 44a85eb72..54653ce1d 100644 Binary files a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-3.png and b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-3.png differ diff --git a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-4.png b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-4.png index d1f74b9fc..256f8d1b0 100644 Binary files a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-4.png and b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-4.png differ diff --git a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-avatar-Vector.png b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-avatar-Vector.png index c23edfdd3..a2f51f612 100644 Binary files a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-avatar-Vector.png and b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-avatar-Vector.png differ diff --git a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-box-Vector.png b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-box-Vector.png index c0ac27968..c23edfdd3 100644 Binary files a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-box-Vector.png and b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-box-Vector.png differ diff --git a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-box_in_place-Vector.png b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-box_in_place-Vector.png index 50a43e1f7..1460b3271 100644 Binary files a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-box_in_place-Vector.png and b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-box_in_place-Vector.png differ diff --git a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-hole-Block2D.png b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-hole-Block2D.png index f28dea013..acb0afe66 100644 Binary files a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-hole-Block2D.png and b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-hole-Block2D.png differ diff --git a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-hole-Vector.png b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-hole-Vector.png index 5423baded..c0ac27968 100644 Binary files a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-hole-Vector.png and b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-hole-Vector.png differ diff --git a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-wall-Block2D.png b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-wall-Block2D.png index 7857e4834..c22b087ef 100644 Binary files a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-wall-Block2D.png and b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-wall-Block2D.png differ diff --git a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-wall-Vector.png b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-wall-Vector.png index 758055b8f..7d7ba957a 100644 Binary files a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-wall-Vector.png and b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-wall-Vector.png differ diff --git a/docs/games/Partially_Observable_Sokoban_-_2/index.rst b/docs/games/Partially_Observable_Sokoban_-_2/index.rst index a742eaa19..ee5526016 100644 --- a/docs/games/Partially_Observable_Sokoban_-_2/index.rst +++ b/docs/games/Partially_Observable_Sokoban_-_2/index.rst @@ -16,6 +16,7 @@ Levels --------- .. list-table:: Levels + :class: level-gallery :header-rows: 1 * - diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Block2D-0.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Block2D-0.png index 28cf74c32..b9bf1c074 100644 Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Block2D-0.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Block2D-0.png differ diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Block2D-1.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Block2D-1.png index 181beae50..8ec9869db 100644 Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Block2D-1.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Block2D-1.png differ diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Block2D-2.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Block2D-2.png index e4f783913..452e2dc5f 100644 Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Block2D-2.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Block2D-2.png differ diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Sprite2D-0.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Sprite2D-0.png index 01f93dcbc..335547d1c 100644 Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Sprite2D-0.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Sprite2D-0.png differ diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Sprite2D-1.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Sprite2D-1.png index efbc6ecc2..ae3e181e3 100644 Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Sprite2D-1.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Sprite2D-1.png differ diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Sprite2D-2.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Sprite2D-2.png index d20cd254a..94fb66b95 100644 Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Sprite2D-2.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Sprite2D-2.png differ diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Vector-0.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Vector-0.png index bf776148e..26ac6edec 100644 Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Vector-0.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Vector-0.png differ diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Vector-1.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Vector-1.png index 8fe477152..73f936452 100644 Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Vector-1.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Vector-1.png differ diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Vector-2.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Vector-2.png index ca953ba04..4b60d7e22 100644 Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Vector-2.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Vector-2.png differ diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-attack_fire-Vector.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-attack_fire-Vector.png index d8a72ac84..95e86ee99 100644 Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-attack_fire-Vector.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-attack_fire-Vector.png differ diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-avatar-Block2D.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-avatar-Block2D.png index 53aef6fc7..f10c9a4f3 100644 Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-avatar-Block2D.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-avatar-Block2D.png differ diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-avatar-Vector.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-avatar-Vector.png index 3b74da918..d8a72ac84 100644 Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-avatar-Vector.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-avatar-Vector.png differ diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-goal-Block2D.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-goal-Block2D.png index 89b715e3a..070c76dae 100644 Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-goal-Block2D.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-goal-Block2D.png differ diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-goal-Vector.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-goal-Vector.png index 95e86ee99..3b74da918 100644 Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-goal-Vector.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-goal-Vector.png differ diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-key-Block2D.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-key-Block2D.png index 75b9fb4e2..29fdd4dae 100644 Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-key-Block2D.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-key-Block2D.png differ diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-key-Sprite2D.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-key-Sprite2D.png index e976c2768..cb457e470 100644 Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-key-Sprite2D.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-key-Sprite2D.png differ diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-key-Vector.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-key-Vector.png index 09f573db4..3b74da918 100644 Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-key-Vector.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-key-Vector.png differ diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-spider-Block2D.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-spider-Block2D.png index b19a62955..4e0852ee5 100644 Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-spider-Block2D.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-spider-Block2D.png differ diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-spider-Vector.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-spider-Vector.png index 37ac5d892..d8a72ac84 100644 Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-spider-Vector.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-spider-Vector.png differ diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-wall-Block2D.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-wall-Block2D.png index 672268aa4..b98b77ffc 100644 Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-wall-Block2D.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-wall-Block2D.png differ diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-wall-Vector.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-wall-Vector.png index 0ae910660..95e86ee99 100644 Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-wall-Vector.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-wall-Vector.png differ diff --git a/docs/games/Partially_Observable_Zelda/index.rst b/docs/games/Partially_Observable_Zelda/index.rst index dc17d81c8..a7fe18422 100644 --- a/docs/games/Partially_Observable_Zelda/index.rst +++ b/docs/games/Partially_Observable_Zelda/index.rst @@ -16,6 +16,7 @@ Levels --------- .. list-table:: Levels + :class: level-gallery :header-rows: 1 * - diff --git a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-0.png b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-0.png index a341956e0..ae885fd46 100644 Binary files a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-0.png and b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-0.png differ diff --git a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-1.png b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-1.png index 6f85411af..5a7e01c5b 100644 Binary files a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-1.png and b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-1.png differ diff --git a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-2.png b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-2.png index fa81b8f26..c9ccbffea 100644 Binary files a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-2.png and b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-2.png differ diff --git a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-3.png b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-3.png index 197934e4f..e9df241fd 100644 Binary files a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-3.png and b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-3.png differ diff --git a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-4.png b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-4.png index 6e75c09fb..393c8afa0 100644 Binary files a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-4.png and b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-4.png differ diff --git a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-0.png b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-0.png index f7c62b08c..aaf26adfc 100644 Binary files a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-0.png and b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-0.png differ diff --git a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-1.png b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-1.png index e5e5be48b..aaf26adfc 100644 Binary files a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-1.png and b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-1.png differ diff --git a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-2.png b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-2.png index 6513bccde..aaf26adfc 100644 Binary files a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-2.png and b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-2.png differ diff --git a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-3.png b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-3.png index c0023cbc6..6ee534694 100644 Binary files a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-3.png and b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-3.png differ diff --git a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-4.png b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-4.png index 9f4354789..aaf26adfc 100644 Binary files a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-4.png and b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-4.png differ diff --git a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-tile-avatar-Vector.png b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-tile-avatar-Vector.png index 3220f5d4c..f76f390fd 100644 Binary files a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-tile-avatar-Vector.png and b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-tile-avatar-Vector.png differ diff --git a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-tile-ground-Block2D.png b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-tile-ground-Block2D.png index 286da7396..fae52bb5a 100644 Binary files a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-tile-ground-Block2D.png and b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-tile-ground-Block2D.png differ diff --git a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-tile-ground-Vector.png b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-tile-ground-Vector.png index f76f390fd..3220f5d4c 100644 Binary files a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-tile-ground-Vector.png and b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-tile-ground-Vector.png differ diff --git a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-tile-rock-Vector.png b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-tile-rock-Vector.png index dabd04345..3220f5d4c 100644 Binary files a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-tile-rock-Vector.png and b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-tile-rock-Vector.png differ diff --git a/docs/games/Partially_Observable_Zen_Puzzle/index.rst b/docs/games/Partially_Observable_Zen_Puzzle/index.rst index f9a3f1941..5fa138000 100644 --- a/docs/games/Partially_Observable_Zen_Puzzle/index.rst +++ b/docs/games/Partially_Observable_Zen_Puzzle/index.rst @@ -16,6 +16,7 @@ Levels --------- .. list-table:: Levels + :class: level-gallery :header-rows: 1 * - diff --git a/docs/games/Push_Mania/img/Push_Mania-level-Isometric-0.png b/docs/games/Push_Mania/img/Push_Mania-level-Isometric-0.png index baf7f3675..5f0b8c1db 100644 Binary files a/docs/games/Push_Mania/img/Push_Mania-level-Isometric-0.png and b/docs/games/Push_Mania/img/Push_Mania-level-Isometric-0.png differ diff --git a/docs/games/Push_Mania/img/Push_Mania-level-Isometric-1.png b/docs/games/Push_Mania/img/Push_Mania-level-Isometric-1.png index 44d364f3e..6b1d74837 100644 Binary files a/docs/games/Push_Mania/img/Push_Mania-level-Isometric-1.png and b/docs/games/Push_Mania/img/Push_Mania-level-Isometric-1.png differ diff --git a/docs/games/Push_Mania/img/Push_Mania-level-Vector-0.png b/docs/games/Push_Mania/img/Push_Mania-level-Vector-0.png index b3b0ec901..680dff641 100644 Binary files a/docs/games/Push_Mania/img/Push_Mania-level-Vector-0.png and b/docs/games/Push_Mania/img/Push_Mania-level-Vector-0.png differ diff --git a/docs/games/Push_Mania/img/Push_Mania-level-Vector-1.png b/docs/games/Push_Mania/img/Push_Mania-level-Vector-1.png index d06c74247..3291673e6 100644 Binary files a/docs/games/Push_Mania/img/Push_Mania-level-Vector-1.png and b/docs/games/Push_Mania/img/Push_Mania-level-Vector-1.png differ diff --git a/docs/games/Push_Mania/img/Push_Mania-tile-hole-Isometric.png b/docs/games/Push_Mania/img/Push_Mania-tile-hole-Isometric.png index 690d59f63..c65272e2e 100644 Binary files a/docs/games/Push_Mania/img/Push_Mania-tile-hole-Isometric.png and b/docs/games/Push_Mania/img/Push_Mania-tile-hole-Isometric.png differ diff --git a/docs/games/Push_Mania/img/Push_Mania-tile-hole-Vector.png b/docs/games/Push_Mania/img/Push_Mania-tile-hole-Vector.png index d8a72ac84..c0ac27968 100644 Binary files a/docs/games/Push_Mania/img/Push_Mania-tile-hole-Vector.png and b/docs/games/Push_Mania/img/Push_Mania-tile-hole-Vector.png differ diff --git a/docs/games/Push_Mania/img/Push_Mania-tile-pusher-Isometric.png b/docs/games/Push_Mania/img/Push_Mania-tile-pusher-Isometric.png index 40f3e3ada..408c2735b 100644 Binary files a/docs/games/Push_Mania/img/Push_Mania-tile-pusher-Isometric.png and b/docs/games/Push_Mania/img/Push_Mania-tile-pusher-Isometric.png differ diff --git a/docs/games/Push_Mania/img/Push_Mania-tile-pusher-Vector.png b/docs/games/Push_Mania/img/Push_Mania-tile-pusher-Vector.png index 0ae910660..c0ac27968 100644 Binary files a/docs/games/Push_Mania/img/Push_Mania-tile-pusher-Vector.png and b/docs/games/Push_Mania/img/Push_Mania-tile-pusher-Vector.png differ diff --git a/docs/games/Push_Mania/index.rst b/docs/games/Push_Mania/index.rst index ca58e4d99..d3b30c22c 100644 --- a/docs/games/Push_Mania/index.rst +++ b/docs/games/Push_Mania/index.rst @@ -18,13 +18,14 @@ Levels --------- .. list-table:: Levels + :class: level-gallery :header-rows: 1 * - - Vector + - Isometric - Sprite2D - Block2D - - Isometric * - .. list-table:: * - Level ID @@ -32,9 +33,9 @@ Levels * - Size - 10x11 - .. thumbnail:: img/Push_Mania-level-Vector-0.png + - .. thumbnail:: img/Push_Mania-level-Isometric-0.png - .. thumbnail:: img/Push_Mania-level-Sprite2D-0.png - .. thumbnail:: img/Push_Mania-level-Block2D-0.png - - .. thumbnail:: img/Push_Mania-level-Isometric-0.png * - .. list-table:: * - Level ID @@ -42,9 +43,9 @@ Levels * - Size - 25x11 - .. thumbnail:: img/Push_Mania-level-Vector-1.png + - .. thumbnail:: img/Push_Mania-level-Isometric-1.png - .. thumbnail:: img/Push_Mania-level-Sprite2D-1.png - .. thumbnail:: img/Push_Mania-level-Block2D-1.png - - .. thumbnail:: img/Push_Mania-level-Isometric-1.png Code Example ------------ @@ -91,15 +92,15 @@ Objects * - Vector - .. image:: img/Push_Mania-tile-hole-Vector.png - .. image:: img/Push_Mania-tile-pusher-Vector.png + * - Isometric + - .. image:: img/Push_Mania-tile-hole-Isometric.png + - .. image:: img/Push_Mania-tile-pusher-Isometric.png * - Sprite2D - .. image:: img/Push_Mania-tile-hole-Sprite2D.png - .. image:: img/Push_Mania-tile-pusher-Sprite2D.png * - Block2D - .. image:: img/Push_Mania-tile-hole-Block2D.png - .. image:: img/Push_Mania-tile-pusher-Block2D.png - * - Isometric - - .. image:: img/Push_Mania-tile-hole-Isometric.png - - .. image:: img/Push_Mania-tile-pusher-Isometric.png Actions diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-0.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-0.png index a598b7af7..83e7e34bf 100644 Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-0.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-0.png differ diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-1.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-1.png index 2d70394f6..450f29787 100644 Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-1.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-1.png differ diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-2.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-2.png index ed437d837..a7ac9076b 100644 Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-2.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-2.png differ diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-3.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-3.png index 1d28bce65..0fd7caa26 100644 Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-3.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-3.png differ diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-4.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-4.png index f9a62ddf2..1e5bfb4ae 100644 Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-4.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-4.png differ diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-5.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-5.png index 4931ffb98..364ee0367 100644 Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-5.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-5.png differ diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-6.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-6.png index 02cf0157d..5bce1477e 100644 Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-6.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-6.png differ diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-7.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-7.png index ed437d837..a7ac9076b 100644 Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-7.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-7.png differ diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-8.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-8.png index e2675478a..cc825c258 100644 Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-8.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-8.png differ diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-9.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-9.png index de21d75c1..1e0fda094 100644 Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-9.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-9.png differ diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-0.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-0.png index 163d98539..d2856442e 100644 Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-0.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-0.png differ diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-1.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-1.png index 821ce42f3..dd5ab3c71 100644 Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-1.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-1.png differ diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-2.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-2.png index 687bdfbf6..fbda95f52 100644 Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-2.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-2.png differ diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-3.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-3.png index 79269be2c..a485f8ff4 100644 Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-3.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-3.png differ diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-4.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-4.png index af634c717..86c45c7bd 100644 Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-4.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-4.png differ diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-5.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-5.png index 150ebed02..c331a49a7 100644 Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-5.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-5.png differ diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-6.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-6.png index 79de5a154..07aa502ed 100644 Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-6.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-6.png differ diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-7.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-7.png index 687bdfbf6..fbda95f52 100644 Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-7.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-7.png differ diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-8.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-8.png index e4ff8bad3..2cc70fd07 100644 Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-8.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-8.png differ diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-9.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-9.png index 854da06e3..348d4d4a6 100644 Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-9.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-9.png differ diff --git a/docs/games/Random_butterflies/img/Random_butterflies-tile-butterfly-Vector.png b/docs/games/Random_butterflies/img/Random_butterflies-tile-butterfly-Vector.png index c23edfdd3..a2f51f612 100644 Binary files a/docs/games/Random_butterflies/img/Random_butterflies-tile-butterfly-Vector.png and b/docs/games/Random_butterflies/img/Random_butterflies-tile-butterfly-Vector.png differ diff --git a/docs/games/Random_butterflies/img/Random_butterflies-tile-catcher-Vector.png b/docs/games/Random_butterflies/img/Random_butterflies-tile-catcher-Vector.png index c0ac27968..c23edfdd3 100644 Binary files a/docs/games/Random_butterflies/img/Random_butterflies-tile-catcher-Vector.png and b/docs/games/Random_butterflies/img/Random_butterflies-tile-catcher-Vector.png differ diff --git a/docs/games/Random_butterflies/img/Random_butterflies-tile-cocoon-Vector.png b/docs/games/Random_butterflies/img/Random_butterflies-tile-cocoon-Vector.png index 50a43e1f7..1460b3271 100644 Binary files a/docs/games/Random_butterflies/img/Random_butterflies-tile-cocoon-Vector.png and b/docs/games/Random_butterflies/img/Random_butterflies-tile-cocoon-Vector.png differ diff --git a/docs/games/Random_butterflies/img/Random_butterflies-tile-spider-Vector.png b/docs/games/Random_butterflies/img/Random_butterflies-tile-spider-Vector.png index 5423baded..c0ac27968 100644 Binary files a/docs/games/Random_butterflies/img/Random_butterflies-tile-spider-Vector.png and b/docs/games/Random_butterflies/img/Random_butterflies-tile-spider-Vector.png differ diff --git a/docs/games/Random_butterflies/img/Random_butterflies-tile-wall-Block2D.png b/docs/games/Random_butterflies/img/Random_butterflies-tile-wall-Block2D.png index 99a0dd88a..4ff6f5785 100644 Binary files a/docs/games/Random_butterflies/img/Random_butterflies-tile-wall-Block2D.png and b/docs/games/Random_butterflies/img/Random_butterflies-tile-wall-Block2D.png differ diff --git a/docs/games/Random_butterflies/img/Random_butterflies-tile-wall-Vector.png b/docs/games/Random_butterflies/img/Random_butterflies-tile-wall-Vector.png index 758055b8f..7d7ba957a 100644 Binary files a/docs/games/Random_butterflies/img/Random_butterflies-tile-wall-Vector.png and b/docs/games/Random_butterflies/img/Random_butterflies-tile-wall-Vector.png differ diff --git a/docs/games/Random_butterflies/index.rst b/docs/games/Random_butterflies/index.rst index c81279df9..ee207d513 100644 --- a/docs/games/Random_butterflies/index.rst +++ b/docs/games/Random_butterflies/index.rst @@ -20,6 +20,7 @@ Levels --------- .. list-table:: Levels + :class: level-gallery :header-rows: 1 * - diff --git a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Block2D-0.png b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Block2D-0.png index 687d77a6b..99b5f4839 100644 Binary files a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Block2D-0.png and b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Block2D-0.png differ diff --git a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Block2D-1.png b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Block2D-1.png index 18bdc2fc1..5e2617ef5 100644 Binary files a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Block2D-1.png and b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Block2D-1.png differ diff --git a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Block2D-2.png b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Block2D-2.png index 33f46b06e..2d8c88ebd 100644 Binary files a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Block2D-2.png and b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Block2D-2.png differ diff --git a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Block2D-3.png b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Block2D-3.png index 1e90418cf..99b066699 100644 Binary files a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Block2D-3.png and b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Block2D-3.png differ diff --git a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Vector-0.png b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Vector-0.png index f48f7ca79..901a89e32 100644 Binary files a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Vector-0.png and b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Vector-0.png differ diff --git a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Vector-1.png b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Vector-1.png index f16f72812..fb218e5e8 100644 Binary files a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Vector-1.png and b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Vector-1.png differ diff --git a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Vector-2.png b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Vector-2.png index 1aa85fd51..05c08aa16 100644 Binary files a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Vector-2.png and b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Vector-2.png differ diff --git a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Vector-3.png b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Vector-3.png index 82f376a2e..7529784a7 100644 Binary files a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Vector-3.png and b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Vector-3.png differ diff --git a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-fixed_wall-Block2D.png b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-fixed_wall-Block2D.png index aa52694a3..47c9cdd28 100644 Binary files a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-fixed_wall-Block2D.png and b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-fixed_wall-Block2D.png differ diff --git a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-fixed_wall-Vector.png b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-fixed_wall-Vector.png index e3112deb3..a5cdcff22 100644 Binary files a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-fixed_wall-Vector.png and b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-fixed_wall-Vector.png differ diff --git a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-moveable_wall-Vector.png b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-moveable_wall-Vector.png index fcb8b23fd..1460b3271 100644 Binary files a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-moveable_wall-Vector.png and b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-moveable_wall-Vector.png differ diff --git a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-tagger-Block2D.png b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-tagger-Block2D.png index bc5ae02a3..755575c32 100644 Binary files a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-tagger-Block2D.png and b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-tagger-Block2D.png differ diff --git a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-tagger-Vector.png b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-tagger-Vector.png index 29635546f..6985a0878 100644 Binary files a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-tagger-Vector.png and b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-tagger-Vector.png differ diff --git a/docs/games/Robot_Tag_12v12/index.rst b/docs/games/Robot_Tag_12v12/index.rst index e43db658c..3c8629a94 100644 --- a/docs/games/Robot_Tag_12v12/index.rst +++ b/docs/games/Robot_Tag_12v12/index.rst @@ -16,6 +16,7 @@ Levels --------- .. list-table:: Levels + :class: level-gallery :header-rows: 1 * - diff --git a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Block2D-0.png b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Block2D-0.png index 4818e5b25..b07081a9c 100644 Binary files a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Block2D-0.png and b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Block2D-0.png differ diff --git a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Block2D-1.png b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Block2D-1.png index 546a7e047..3e6708e09 100644 Binary files a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Block2D-1.png and b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Block2D-1.png differ diff --git a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Block2D-2.png b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Block2D-2.png index ecdab7509..8f4d8ba76 100644 Binary files a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Block2D-2.png and b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Block2D-2.png differ diff --git a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Block2D-3.png b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Block2D-3.png index 5c6ad944b..a7228553f 100644 Binary files a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Block2D-3.png and b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Block2D-3.png differ diff --git a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Vector-0.png b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Vector-0.png index 54f90fd8a..102180827 100644 Binary files a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Vector-0.png and b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Vector-0.png differ diff --git a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Vector-1.png b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Vector-1.png index 1fc7ead47..af1cb40a5 100644 Binary files a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Vector-1.png and b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Vector-1.png differ diff --git a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Vector-2.png b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Vector-2.png index e6840279a..96930fef3 100644 Binary files a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Vector-2.png and b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Vector-2.png differ diff --git a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Vector-3.png b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Vector-3.png index fbbbabcb1..8908bbb92 100644 Binary files a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Vector-3.png and b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Vector-3.png differ diff --git a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-fixed_wall-Block2D.png b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-fixed_wall-Block2D.png index aa52694a3..47c9cdd28 100644 Binary files a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-fixed_wall-Block2D.png and b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-fixed_wall-Block2D.png differ diff --git a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-fixed_wall-Vector.png b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-fixed_wall-Vector.png index 449dbd771..a5cdcff22 100644 Binary files a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-fixed_wall-Vector.png and b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-fixed_wall-Vector.png differ diff --git a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-moveable_wall-Vector.png b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-moveable_wall-Vector.png index cddd4d04e..1460b3271 100644 Binary files a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-moveable_wall-Vector.png and b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-moveable_wall-Vector.png differ diff --git a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-tagger-Block2D.png b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-tagger-Block2D.png index bc5ae02a3..755575c32 100644 Binary files a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-tagger-Block2D.png and b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-tagger-Block2D.png differ diff --git a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-tagger-Vector.png b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-tagger-Vector.png index 1ea637a7b..6985a0878 100644 Binary files a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-tagger-Vector.png and b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-tagger-Vector.png differ diff --git a/docs/games/Robot_Tag_4v4/index.rst b/docs/games/Robot_Tag_4v4/index.rst index d1e27ffd0..1c9272309 100644 --- a/docs/games/Robot_Tag_4v4/index.rst +++ b/docs/games/Robot_Tag_4v4/index.rst @@ -16,6 +16,7 @@ Levels --------- .. list-table:: Levels + :class: level-gallery :header-rows: 1 * - diff --git a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Block2D-0.png b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Block2D-0.png index 4bfaaa557..e12a98f0d 100644 Binary files a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Block2D-0.png and b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Block2D-0.png differ diff --git a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Block2D-1.png b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Block2D-1.png index 6940686c5..119d581d1 100644 Binary files a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Block2D-1.png and b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Block2D-1.png differ diff --git a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Block2D-2.png b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Block2D-2.png index 731801e42..77a96189f 100644 Binary files a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Block2D-2.png and b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Block2D-2.png differ diff --git a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Block2D-3.png b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Block2D-3.png index 717ec6ebb..8e32dbff8 100644 Binary files a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Block2D-3.png and b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Block2D-3.png differ diff --git a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Vector-0.png b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Vector-0.png index b3d9e1cb5..a31334671 100644 Binary files a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Vector-0.png and b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Vector-0.png differ diff --git a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Vector-1.png b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Vector-1.png index b45e6dc25..8d9b693d7 100644 Binary files a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Vector-1.png and b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Vector-1.png differ diff --git a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Vector-2.png b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Vector-2.png index 5de617ffd..483956ab0 100644 Binary files a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Vector-2.png and b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Vector-2.png differ diff --git a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Vector-3.png b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Vector-3.png index 0974dc4fe..459dd19aa 100644 Binary files a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Vector-3.png and b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Vector-3.png differ diff --git a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-fixed_wall-Block2D.png b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-fixed_wall-Block2D.png index aa52694a3..47c9cdd28 100644 Binary files a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-fixed_wall-Block2D.png and b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-fixed_wall-Block2D.png differ diff --git a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-fixed_wall-Vector.png b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-fixed_wall-Vector.png index dc863080f..a5cdcff22 100644 Binary files a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-fixed_wall-Vector.png and b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-fixed_wall-Vector.png differ diff --git a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-moveable_wall-Vector.png b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-moveable_wall-Vector.png index 0aa5dff5a..1460b3271 100644 Binary files a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-moveable_wall-Vector.png and b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-moveable_wall-Vector.png differ diff --git a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-tagger-Block2D.png b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-tagger-Block2D.png index d55d4b872..7532c63f4 100644 Binary files a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-tagger-Block2D.png and b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-tagger-Block2D.png differ diff --git a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-tagger-Vector.png b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-tagger-Vector.png index 3220f5d4c..6985a0878 100644 Binary files a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-tagger-Vector.png and b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-tagger-Vector.png differ diff --git a/docs/games/Robot_Tag_8v8/index.rst b/docs/games/Robot_Tag_8v8/index.rst index 1bd2ba026..f288f8d51 100644 --- a/docs/games/Robot_Tag_8v8/index.rst +++ b/docs/games/Robot_Tag_8v8/index.rst @@ -16,6 +16,7 @@ Levels --------- .. list-table:: Levels + :class: level-gallery :header-rows: 1 * - diff --git a/docs/games/Sokoban/img/Sokoban-level-Block2D-0.png b/docs/games/Sokoban/img/Sokoban-level-Block2D-0.png index 7af682ee3..a7b51c2ab 100644 Binary files a/docs/games/Sokoban/img/Sokoban-level-Block2D-0.png and b/docs/games/Sokoban/img/Sokoban-level-Block2D-0.png differ diff --git a/docs/games/Sokoban/img/Sokoban-level-Block2D-1.png b/docs/games/Sokoban/img/Sokoban-level-Block2D-1.png index b84270919..f067ac6d0 100644 Binary files a/docs/games/Sokoban/img/Sokoban-level-Block2D-1.png and b/docs/games/Sokoban/img/Sokoban-level-Block2D-1.png differ diff --git a/docs/games/Sokoban/img/Sokoban-level-Block2D-2.png b/docs/games/Sokoban/img/Sokoban-level-Block2D-2.png index 22376e49c..a19dc4c4b 100644 Binary files a/docs/games/Sokoban/img/Sokoban-level-Block2D-2.png and b/docs/games/Sokoban/img/Sokoban-level-Block2D-2.png differ diff --git a/docs/games/Sokoban/img/Sokoban-level-Block2D-3.png b/docs/games/Sokoban/img/Sokoban-level-Block2D-3.png index 0f54cdd05..b473462d5 100644 Binary files a/docs/games/Sokoban/img/Sokoban-level-Block2D-3.png and b/docs/games/Sokoban/img/Sokoban-level-Block2D-3.png differ diff --git a/docs/games/Sokoban/img/Sokoban-level-Block2D-4.png b/docs/games/Sokoban/img/Sokoban-level-Block2D-4.png index c7eaddc38..036fa4b89 100644 Binary files a/docs/games/Sokoban/img/Sokoban-level-Block2D-4.png and b/docs/games/Sokoban/img/Sokoban-level-Block2D-4.png differ diff --git a/docs/games/Sokoban/img/Sokoban-level-Block2D-5.png b/docs/games/Sokoban/img/Sokoban-level-Block2D-5.png index 0d57bd652..9286f4bf7 100644 Binary files a/docs/games/Sokoban/img/Sokoban-level-Block2D-5.png and b/docs/games/Sokoban/img/Sokoban-level-Block2D-5.png differ diff --git a/docs/games/Sokoban/img/Sokoban-level-Vector-0.png b/docs/games/Sokoban/img/Sokoban-level-Vector-0.png index f68d61f4c..fd1cffbce 100644 Binary files a/docs/games/Sokoban/img/Sokoban-level-Vector-0.png and b/docs/games/Sokoban/img/Sokoban-level-Vector-0.png differ diff --git a/docs/games/Sokoban/img/Sokoban-level-Vector-1.png b/docs/games/Sokoban/img/Sokoban-level-Vector-1.png index d0656aaa7..3862ef370 100644 Binary files a/docs/games/Sokoban/img/Sokoban-level-Vector-1.png and b/docs/games/Sokoban/img/Sokoban-level-Vector-1.png differ diff --git a/docs/games/Sokoban/img/Sokoban-level-Vector-2.png b/docs/games/Sokoban/img/Sokoban-level-Vector-2.png index 695447e43..5f01eb97e 100644 Binary files a/docs/games/Sokoban/img/Sokoban-level-Vector-2.png and b/docs/games/Sokoban/img/Sokoban-level-Vector-2.png differ diff --git a/docs/games/Sokoban/img/Sokoban-level-Vector-3.png b/docs/games/Sokoban/img/Sokoban-level-Vector-3.png index 7ae087741..860d3dca0 100644 Binary files a/docs/games/Sokoban/img/Sokoban-level-Vector-3.png and b/docs/games/Sokoban/img/Sokoban-level-Vector-3.png differ diff --git a/docs/games/Sokoban/img/Sokoban-level-Vector-4.png b/docs/games/Sokoban/img/Sokoban-level-Vector-4.png index a4ea29316..38c9bd182 100644 Binary files a/docs/games/Sokoban/img/Sokoban-level-Vector-4.png and b/docs/games/Sokoban/img/Sokoban-level-Vector-4.png differ diff --git a/docs/games/Sokoban/img/Sokoban-level-Vector-5.png b/docs/games/Sokoban/img/Sokoban-level-Vector-5.png index 25a8bacc6..8aa3a53c8 100644 Binary files a/docs/games/Sokoban/img/Sokoban-level-Vector-5.png and b/docs/games/Sokoban/img/Sokoban-level-Vector-5.png differ diff --git a/docs/games/Sokoban/img/Sokoban-tile-avatar-Vector.png b/docs/games/Sokoban/img/Sokoban-tile-avatar-Vector.png index 3220f5d4c..f76f390fd 100644 Binary files a/docs/games/Sokoban/img/Sokoban-tile-avatar-Vector.png and b/docs/games/Sokoban/img/Sokoban-tile-avatar-Vector.png differ diff --git a/docs/games/Sokoban/img/Sokoban-tile-box-Vector.png b/docs/games/Sokoban/img/Sokoban-tile-box-Vector.png index f76f390fd..3220f5d4c 100644 Binary files a/docs/games/Sokoban/img/Sokoban-tile-box-Vector.png and b/docs/games/Sokoban/img/Sokoban-tile-box-Vector.png differ diff --git a/docs/games/Sokoban/img/Sokoban-tile-hole-Vector.png b/docs/games/Sokoban/img/Sokoban-tile-hole-Vector.png index dabd04345..3220f5d4c 100644 Binary files a/docs/games/Sokoban/img/Sokoban-tile-hole-Vector.png and b/docs/games/Sokoban/img/Sokoban-tile-hole-Vector.png differ diff --git a/docs/games/Sokoban/img/Sokoban-tile-wall-Block2D.png b/docs/games/Sokoban/img/Sokoban-tile-wall-Block2D.png index 7857e4834..c22b087ef 100644 Binary files a/docs/games/Sokoban/img/Sokoban-tile-wall-Block2D.png and b/docs/games/Sokoban/img/Sokoban-tile-wall-Block2D.png differ diff --git a/docs/games/Sokoban/img/Sokoban-tile-wall-Vector.png b/docs/games/Sokoban/img/Sokoban-tile-wall-Vector.png index a3bc67813..f76f390fd 100644 Binary files a/docs/games/Sokoban/img/Sokoban-tile-wall-Vector.png and b/docs/games/Sokoban/img/Sokoban-tile-wall-Vector.png differ diff --git a/docs/games/Sokoban/index.rst b/docs/games/Sokoban/index.rst index b8bc8bf78..e634888f0 100644 --- a/docs/games/Sokoban/index.rst +++ b/docs/games/Sokoban/index.rst @@ -16,6 +16,7 @@ Levels --------- .. list-table:: Levels + :class: level-gallery :header-rows: 1 * - diff --git a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-0.png b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-0.png index f1920a6d3..019d20387 100644 Binary files a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-0.png and b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-0.png differ diff --git a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-1.png b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-1.png index 388cd092a..f013ba23c 100644 Binary files a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-1.png and b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-1.png differ diff --git a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-2.png b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-2.png index 82c4a75ec..9d84d3c39 100644 Binary files a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-2.png and b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-2.png differ diff --git a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-3.png b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-3.png index eed9eeff1..0a68bff6f 100644 Binary files a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-3.png and b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-3.png differ diff --git a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-4.png b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-4.png index f614306f5..3db821a1a 100644 Binary files a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-4.png and b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-4.png differ diff --git a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-0.png b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-0.png index a1f41222b..0531d598e 100644 Binary files a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-0.png and b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-0.png differ diff --git a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-1.png b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-1.png index b33f80707..80eeaf3e0 100644 Binary files a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-1.png and b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-1.png differ diff --git a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-2.png b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-2.png index 4b4225dba..fac62472c 100644 Binary files a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-2.png and b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-2.png differ diff --git a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-3.png b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-3.png index 44a85eb72..54653ce1d 100644 Binary files a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-3.png and b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-3.png differ diff --git a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-4.png b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-4.png index d1f74b9fc..256f8d1b0 100644 Binary files a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-4.png and b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-4.png differ diff --git a/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-avatar-Vector.png b/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-avatar-Vector.png index c23edfdd3..a2f51f612 100644 Binary files a/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-avatar-Vector.png and b/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-avatar-Vector.png differ diff --git a/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-box-Vector.png b/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-box-Vector.png index c0ac27968..c23edfdd3 100644 Binary files a/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-box-Vector.png and b/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-box-Vector.png differ diff --git a/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-box_in_place-Vector.png b/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-box_in_place-Vector.png index 50a43e1f7..1460b3271 100644 Binary files a/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-box_in_place-Vector.png and b/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-box_in_place-Vector.png differ diff --git a/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-hole-Block2D.png b/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-hole-Block2D.png index f28dea013..acb0afe66 100644 Binary files a/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-hole-Block2D.png and b/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-hole-Block2D.png differ diff --git a/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-hole-Vector.png b/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-hole-Vector.png index 5423baded..c0ac27968 100644 Binary files a/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-hole-Vector.png and b/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-hole-Vector.png differ diff --git a/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-wall-Block2D.png b/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-wall-Block2D.png index 7857e4834..c22b087ef 100644 Binary files a/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-wall-Block2D.png and b/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-wall-Block2D.png differ diff --git a/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-wall-Vector.png b/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-wall-Vector.png index 758055b8f..7d7ba957a 100644 Binary files a/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-wall-Vector.png and b/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-wall-Vector.png differ diff --git a/docs/games/Sokoban_-_2/index.rst b/docs/games/Sokoban_-_2/index.rst index 71db5e3cb..0b70df9f0 100644 --- a/docs/games/Sokoban_-_2/index.rst +++ b/docs/games/Sokoban_-_2/index.rst @@ -16,6 +16,7 @@ Levels --------- .. list-table:: Levels + :class: level-gallery :header-rows: 1 * - diff --git a/docs/games/Spider_Nest/img/Spider_Nest-level-Block2D-0.png b/docs/games/Spider_Nest/img/Spider_Nest-level-Block2D-0.png index 00d0551cf..e2310a92d 100644 Binary files a/docs/games/Spider_Nest/img/Spider_Nest-level-Block2D-0.png and b/docs/games/Spider_Nest/img/Spider_Nest-level-Block2D-0.png differ diff --git a/docs/games/Spider_Nest/img/Spider_Nest-level-Vector-0.png b/docs/games/Spider_Nest/img/Spider_Nest-level-Vector-0.png index 31641e434..7f15a06fb 100644 Binary files a/docs/games/Spider_Nest/img/Spider_Nest-level-Vector-0.png and b/docs/games/Spider_Nest/img/Spider_Nest-level-Vector-0.png differ diff --git a/docs/games/Spider_Nest/img/Spider_Nest-tile-gem-Vector.png b/docs/games/Spider_Nest/img/Spider_Nest-tile-gem-Vector.png index d8a72ac84..95e86ee99 100644 Binary files a/docs/games/Spider_Nest/img/Spider_Nest-tile-gem-Vector.png and b/docs/games/Spider_Nest/img/Spider_Nest-tile-gem-Vector.png differ diff --git a/docs/games/Spider_Nest/img/Spider_Nest-tile-gnome-Vector.png b/docs/games/Spider_Nest/img/Spider_Nest-tile-gnome-Vector.png index 3b74da918..d8a72ac84 100644 Binary files a/docs/games/Spider_Nest/img/Spider_Nest-tile-gnome-Vector.png and b/docs/games/Spider_Nest/img/Spider_Nest-tile-gnome-Vector.png differ diff --git a/docs/games/Spider_Nest/img/Spider_Nest-tile-lava-Vector.png b/docs/games/Spider_Nest/img/Spider_Nest-tile-lava-Vector.png index 95e86ee99..3b74da918 100644 Binary files a/docs/games/Spider_Nest/img/Spider_Nest-tile-lava-Vector.png and b/docs/games/Spider_Nest/img/Spider_Nest-tile-lava-Vector.png differ diff --git a/docs/games/Spider_Nest/img/Spider_Nest-tile-nest-Vector.png b/docs/games/Spider_Nest/img/Spider_Nest-tile-nest-Vector.png index 09f573db4..3b74da918 100644 Binary files a/docs/games/Spider_Nest/img/Spider_Nest-tile-nest-Vector.png and b/docs/games/Spider_Nest/img/Spider_Nest-tile-nest-Vector.png differ diff --git a/docs/games/Spider_Nest/img/Spider_Nest-tile-spider-Vector.png b/docs/games/Spider_Nest/img/Spider_Nest-tile-spider-Vector.png index 37ac5d892..d8a72ac84 100644 Binary files a/docs/games/Spider_Nest/img/Spider_Nest-tile-spider-Vector.png and b/docs/games/Spider_Nest/img/Spider_Nest-tile-spider-Vector.png differ diff --git a/docs/games/Spider_Nest/img/Spider_Nest-tile-wall-Block2D.png b/docs/games/Spider_Nest/img/Spider_Nest-tile-wall-Block2D.png index 672268aa4..b98b77ffc 100644 Binary files a/docs/games/Spider_Nest/img/Spider_Nest-tile-wall-Block2D.png and b/docs/games/Spider_Nest/img/Spider_Nest-tile-wall-Block2D.png differ diff --git a/docs/games/Spider_Nest/img/Spider_Nest-tile-wall-Vector.png b/docs/games/Spider_Nest/img/Spider_Nest-tile-wall-Vector.png index 0ae910660..95e86ee99 100644 Binary files a/docs/games/Spider_Nest/img/Spider_Nest-tile-wall-Vector.png and b/docs/games/Spider_Nest/img/Spider_Nest-tile-wall-Vector.png differ diff --git a/docs/games/Spider_Nest/index.rst b/docs/games/Spider_Nest/index.rst index 4cc1aa89b..c7e9e1337 100644 --- a/docs/games/Spider_Nest/index.rst +++ b/docs/games/Spider_Nest/index.rst @@ -16,13 +16,14 @@ Levels --------- .. list-table:: Levels + :class: level-gallery :header-rows: 1 * - - Vector + - Isometric - Sprite2D - Block2D - - Isometric * - .. list-table:: * - Level ID @@ -30,9 +31,9 @@ Levels * - Size - 36x33 - .. thumbnail:: img/Spider_Nest-level-Vector-0.png + - .. thumbnail:: img/Spider_Nest-level-Isometric-0.png - .. thumbnail:: img/Spider_Nest-level-Sprite2D-0.png - .. thumbnail:: img/Spider_Nest-level-Block2D-0.png - - .. thumbnail:: img/Spider_Nest-level-Isometric-0.png Code Example ------------ @@ -88,6 +89,13 @@ Objects - .. image:: img/Spider_Nest-tile-gnome-Vector.png - .. image:: img/Spider_Nest-tile-nest-Vector.png - .. image:: img/Spider_Nest-tile-lava-Vector.png + * - Isometric + - .. image:: img/Spider_Nest-tile-wall-Isometric.png + - .. image:: img/Spider_Nest-tile-spider-Isometric.png + - .. image:: img/Spider_Nest-tile-gem-Isometric.png + - .. image:: img/Spider_Nest-tile-gnome-Isometric.png + - .. image:: img/Spider_Nest-tile-nest-Isometric.png + - .. image:: img/Spider_Nest-tile-lava-Isometric.png * - Sprite2D - .. image:: img/Spider_Nest-tile-wall-Sprite2D.png - .. image:: img/Spider_Nest-tile-spider-Sprite2D.png @@ -102,13 +110,6 @@ Objects - .. image:: img/Spider_Nest-tile-gnome-Block2D.png - .. image:: img/Spider_Nest-tile-nest-Block2D.png - .. image:: img/Spider_Nest-tile-lava-Block2D.png - * - Isometric - - .. image:: img/Spider_Nest-tile-wall-Isometric.png - - .. image:: img/Spider_Nest-tile-spider-Isometric.png - - .. image:: img/Spider_Nest-tile-gem-Isometric.png - - .. image:: img/Spider_Nest-tile-gnome-Isometric.png - - .. image:: img/Spider_Nest-tile-nest-Isometric.png - - .. image:: img/Spider_Nest-tile-lava-Isometric.png Actions diff --git a/docs/games/Spiders/img/Spiders-level-Block2D-0.png b/docs/games/Spiders/img/Spiders-level-Block2D-0.png index 8f0b53cbe..d9a20199e 100644 Binary files a/docs/games/Spiders/img/Spiders-level-Block2D-0.png and b/docs/games/Spiders/img/Spiders-level-Block2D-0.png differ diff --git a/docs/games/Spiders/img/Spiders-level-Block2D-1.png b/docs/games/Spiders/img/Spiders-level-Block2D-1.png index d5f7a69ca..830038514 100644 Binary files a/docs/games/Spiders/img/Spiders-level-Block2D-1.png and b/docs/games/Spiders/img/Spiders-level-Block2D-1.png differ diff --git a/docs/games/Spiders/img/Spiders-level-Block2D-2.png b/docs/games/Spiders/img/Spiders-level-Block2D-2.png index ce840fa6c..77a6ca6de 100644 Binary files a/docs/games/Spiders/img/Spiders-level-Block2D-2.png and b/docs/games/Spiders/img/Spiders-level-Block2D-2.png differ diff --git a/docs/games/Spiders/img/Spiders-level-Block2D-3.png b/docs/games/Spiders/img/Spiders-level-Block2D-3.png index fc8b68e78..551778572 100644 Binary files a/docs/games/Spiders/img/Spiders-level-Block2D-3.png and b/docs/games/Spiders/img/Spiders-level-Block2D-3.png differ diff --git a/docs/games/Spiders/img/Spiders-level-Block2D-4.png b/docs/games/Spiders/img/Spiders-level-Block2D-4.png index 5c66b32f9..12cd02326 100644 Binary files a/docs/games/Spiders/img/Spiders-level-Block2D-4.png and b/docs/games/Spiders/img/Spiders-level-Block2D-4.png differ diff --git a/docs/games/Spiders/img/Spiders-level-Vector-0.png b/docs/games/Spiders/img/Spiders-level-Vector-0.png index c5b4a2228..4d251183f 100644 Binary files a/docs/games/Spiders/img/Spiders-level-Vector-0.png and b/docs/games/Spiders/img/Spiders-level-Vector-0.png differ diff --git a/docs/games/Spiders/img/Spiders-level-Vector-1.png b/docs/games/Spiders/img/Spiders-level-Vector-1.png index d0fbb18e4..76ebf9f3d 100644 Binary files a/docs/games/Spiders/img/Spiders-level-Vector-1.png and b/docs/games/Spiders/img/Spiders-level-Vector-1.png differ diff --git a/docs/games/Spiders/img/Spiders-level-Vector-2.png b/docs/games/Spiders/img/Spiders-level-Vector-2.png index 45b6de417..31aa9e2fd 100644 Binary files a/docs/games/Spiders/img/Spiders-level-Vector-2.png and b/docs/games/Spiders/img/Spiders-level-Vector-2.png differ diff --git a/docs/games/Spiders/img/Spiders-level-Vector-3.png b/docs/games/Spiders/img/Spiders-level-Vector-3.png index 678d32abe..e4fd847b1 100644 Binary files a/docs/games/Spiders/img/Spiders-level-Vector-3.png and b/docs/games/Spiders/img/Spiders-level-Vector-3.png differ diff --git a/docs/games/Spiders/img/Spiders-level-Vector-4.png b/docs/games/Spiders/img/Spiders-level-Vector-4.png index 1958a5ffb..a98f2bf65 100644 Binary files a/docs/games/Spiders/img/Spiders-level-Vector-4.png and b/docs/games/Spiders/img/Spiders-level-Vector-4.png differ diff --git a/docs/games/Spiders/img/Spiders-tile-gem-Vector.png b/docs/games/Spiders/img/Spiders-tile-gem-Vector.png index 3220f5d4c..f76f390fd 100644 Binary files a/docs/games/Spiders/img/Spiders-tile-gem-Vector.png and b/docs/games/Spiders/img/Spiders-tile-gem-Vector.png differ diff --git a/docs/games/Spiders/img/Spiders-tile-gnome-Vector.png b/docs/games/Spiders/img/Spiders-tile-gnome-Vector.png index f76f390fd..3220f5d4c 100644 Binary files a/docs/games/Spiders/img/Spiders-tile-gnome-Vector.png and b/docs/games/Spiders/img/Spiders-tile-gnome-Vector.png differ diff --git a/docs/games/Spiders/img/Spiders-tile-spider-Vector.png b/docs/games/Spiders/img/Spiders-tile-spider-Vector.png index dabd04345..3220f5d4c 100644 Binary files a/docs/games/Spiders/img/Spiders-tile-spider-Vector.png and b/docs/games/Spiders/img/Spiders-tile-spider-Vector.png differ diff --git a/docs/games/Spiders/img/Spiders-tile-wall-Block2D.png b/docs/games/Spiders/img/Spiders-tile-wall-Block2D.png index 672268aa4..b98b77ffc 100644 Binary files a/docs/games/Spiders/img/Spiders-tile-wall-Block2D.png and b/docs/games/Spiders/img/Spiders-tile-wall-Block2D.png differ diff --git a/docs/games/Spiders/img/Spiders-tile-wall-Vector.png b/docs/games/Spiders/img/Spiders-tile-wall-Vector.png index a3bc67813..f76f390fd 100644 Binary files a/docs/games/Spiders/img/Spiders-tile-wall-Vector.png and b/docs/games/Spiders/img/Spiders-tile-wall-Vector.png differ diff --git a/docs/games/Spiders/index.rst b/docs/games/Spiders/index.rst index 744741eb6..fe89ce022 100644 --- a/docs/games/Spiders/index.rst +++ b/docs/games/Spiders/index.rst @@ -16,13 +16,14 @@ Levels --------- .. list-table:: Levels + :class: level-gallery :header-rows: 1 * - - Vector + - Isometric - Sprite2D - Block2D - - Isometric * - .. list-table:: * - Level ID @@ -30,9 +31,9 @@ Levels * - Size - 6x6 - .. thumbnail:: img/Spiders-level-Vector-0.png + - .. thumbnail:: img/Spiders-level-Isometric-0.png - .. thumbnail:: img/Spiders-level-Sprite2D-0.png - .. thumbnail:: img/Spiders-level-Block2D-0.png - - .. thumbnail:: img/Spiders-level-Isometric-0.png * - .. list-table:: * - Level ID @@ -40,9 +41,9 @@ Levels * - Size - 7x7 - .. thumbnail:: img/Spiders-level-Vector-1.png + - .. thumbnail:: img/Spiders-level-Isometric-1.png - .. thumbnail:: img/Spiders-level-Sprite2D-1.png - .. thumbnail:: img/Spiders-level-Block2D-1.png - - .. thumbnail:: img/Spiders-level-Isometric-1.png * - .. list-table:: * - Level ID @@ -50,9 +51,9 @@ Levels * - Size - 8x8 - .. thumbnail:: img/Spiders-level-Vector-2.png + - .. thumbnail:: img/Spiders-level-Isometric-2.png - .. thumbnail:: img/Spiders-level-Sprite2D-2.png - .. thumbnail:: img/Spiders-level-Block2D-2.png - - .. thumbnail:: img/Spiders-level-Isometric-2.png * - .. list-table:: * - Level ID @@ -60,9 +61,9 @@ Levels * - Size - 10x10 - .. thumbnail:: img/Spiders-level-Vector-3.png + - .. thumbnail:: img/Spiders-level-Isometric-3.png - .. thumbnail:: img/Spiders-level-Sprite2D-3.png - .. thumbnail:: img/Spiders-level-Block2D-3.png - - .. thumbnail:: img/Spiders-level-Isometric-3.png * - .. list-table:: * - Level ID @@ -70,9 +71,9 @@ Levels * - Size - 19x18 - .. thumbnail:: img/Spiders-level-Vector-4.png + - .. thumbnail:: img/Spiders-level-Isometric-4.png - .. thumbnail:: img/Spiders-level-Sprite2D-4.png - .. thumbnail:: img/Spiders-level-Block2D-4.png - - .. thumbnail:: img/Spiders-level-Isometric-4.png Code Example ------------ @@ -122,6 +123,11 @@ Objects - .. image:: img/Spiders-tile-spider-Vector.png - .. image:: img/Spiders-tile-gem-Vector.png - .. image:: img/Spiders-tile-gnome-Vector.png + * - Isometric + - .. image:: img/Spiders-tile-wall-Isometric.png + - .. image:: img/Spiders-tile-spider-Isometric.png + - .. image:: img/Spiders-tile-gem-Isometric.png + - .. image:: img/Spiders-tile-gnome-Isometric.png * - Sprite2D - .. image:: img/Spiders-tile-wall-Sprite2D.png - .. image:: img/Spiders-tile-spider-Sprite2D.png @@ -132,11 +138,6 @@ Objects - .. image:: img/Spiders-tile-spider-Block2D.png - .. image:: img/Spiders-tile-gem-Block2D.png - .. image:: img/Spiders-tile-gnome-Block2D.png - * - Isometric - - .. image:: img/Spiders-tile-wall-Isometric.png - - .. image:: img/Spiders-tile-spider-Isometric.png - - .. image:: img/Spiders-tile-gem-Isometric.png - - .. image:: img/Spiders-tile-gnome-Isometric.png Actions diff --git a/docs/games/Zelda/img/Zelda-level-Block2D-0.png b/docs/games/Zelda/img/Zelda-level-Block2D-0.png index 28cf74c32..b9bf1c074 100644 Binary files a/docs/games/Zelda/img/Zelda-level-Block2D-0.png and b/docs/games/Zelda/img/Zelda-level-Block2D-0.png differ diff --git a/docs/games/Zelda/img/Zelda-level-Block2D-1.png b/docs/games/Zelda/img/Zelda-level-Block2D-1.png index a0ae9c439..c61d78843 100644 Binary files a/docs/games/Zelda/img/Zelda-level-Block2D-1.png and b/docs/games/Zelda/img/Zelda-level-Block2D-1.png differ diff --git a/docs/games/Zelda/img/Zelda-level-Block2D-2.png b/docs/games/Zelda/img/Zelda-level-Block2D-2.png index e4f783913..452e2dc5f 100644 Binary files a/docs/games/Zelda/img/Zelda-level-Block2D-2.png and b/docs/games/Zelda/img/Zelda-level-Block2D-2.png differ diff --git a/docs/games/Zelda/img/Zelda-level-Sprite2D-0.png b/docs/games/Zelda/img/Zelda-level-Sprite2D-0.png index 01f93dcbc..335547d1c 100644 Binary files a/docs/games/Zelda/img/Zelda-level-Sprite2D-0.png and b/docs/games/Zelda/img/Zelda-level-Sprite2D-0.png differ diff --git a/docs/games/Zelda/img/Zelda-level-Sprite2D-1.png b/docs/games/Zelda/img/Zelda-level-Sprite2D-1.png index 291c16462..ea6ee5738 100644 Binary files a/docs/games/Zelda/img/Zelda-level-Sprite2D-1.png and b/docs/games/Zelda/img/Zelda-level-Sprite2D-1.png differ diff --git a/docs/games/Zelda/img/Zelda-level-Sprite2D-2.png b/docs/games/Zelda/img/Zelda-level-Sprite2D-2.png index d20cd254a..94fb66b95 100644 Binary files a/docs/games/Zelda/img/Zelda-level-Sprite2D-2.png and b/docs/games/Zelda/img/Zelda-level-Sprite2D-2.png differ diff --git a/docs/games/Zelda/img/Zelda-level-Vector-0.png b/docs/games/Zelda/img/Zelda-level-Vector-0.png index bf776148e..26ac6edec 100644 Binary files a/docs/games/Zelda/img/Zelda-level-Vector-0.png and b/docs/games/Zelda/img/Zelda-level-Vector-0.png differ diff --git a/docs/games/Zelda/img/Zelda-level-Vector-1.png b/docs/games/Zelda/img/Zelda-level-Vector-1.png index 4b2d31da4..299f5387c 100644 Binary files a/docs/games/Zelda/img/Zelda-level-Vector-1.png and b/docs/games/Zelda/img/Zelda-level-Vector-1.png differ diff --git a/docs/games/Zelda/img/Zelda-level-Vector-2.png b/docs/games/Zelda/img/Zelda-level-Vector-2.png index ca953ba04..4b60d7e22 100644 Binary files a/docs/games/Zelda/img/Zelda-level-Vector-2.png and b/docs/games/Zelda/img/Zelda-level-Vector-2.png differ diff --git a/docs/games/Zelda/img/Zelda-tile-attack_fire-Vector.png b/docs/games/Zelda/img/Zelda-tile-attack_fire-Vector.png index d8a72ac84..95e86ee99 100644 Binary files a/docs/games/Zelda/img/Zelda-tile-attack_fire-Vector.png and b/docs/games/Zelda/img/Zelda-tile-attack_fire-Vector.png differ diff --git a/docs/games/Zelda/img/Zelda-tile-avatar-Block2D.png b/docs/games/Zelda/img/Zelda-tile-avatar-Block2D.png index 53aef6fc7..f10c9a4f3 100644 Binary files a/docs/games/Zelda/img/Zelda-tile-avatar-Block2D.png and b/docs/games/Zelda/img/Zelda-tile-avatar-Block2D.png differ diff --git a/docs/games/Zelda/img/Zelda-tile-avatar-Vector.png b/docs/games/Zelda/img/Zelda-tile-avatar-Vector.png index 3b74da918..d8a72ac84 100644 Binary files a/docs/games/Zelda/img/Zelda-tile-avatar-Vector.png and b/docs/games/Zelda/img/Zelda-tile-avatar-Vector.png differ diff --git a/docs/games/Zelda/img/Zelda-tile-goal-Block2D.png b/docs/games/Zelda/img/Zelda-tile-goal-Block2D.png index 89b715e3a..070c76dae 100644 Binary files a/docs/games/Zelda/img/Zelda-tile-goal-Block2D.png and b/docs/games/Zelda/img/Zelda-tile-goal-Block2D.png differ diff --git a/docs/games/Zelda/img/Zelda-tile-goal-Vector.png b/docs/games/Zelda/img/Zelda-tile-goal-Vector.png index 95e86ee99..3b74da918 100644 Binary files a/docs/games/Zelda/img/Zelda-tile-goal-Vector.png and b/docs/games/Zelda/img/Zelda-tile-goal-Vector.png differ diff --git a/docs/games/Zelda/img/Zelda-tile-key-Block2D.png b/docs/games/Zelda/img/Zelda-tile-key-Block2D.png index 75b9fb4e2..29fdd4dae 100644 Binary files a/docs/games/Zelda/img/Zelda-tile-key-Block2D.png and b/docs/games/Zelda/img/Zelda-tile-key-Block2D.png differ diff --git a/docs/games/Zelda/img/Zelda-tile-key-Sprite2D.png b/docs/games/Zelda/img/Zelda-tile-key-Sprite2D.png index e976c2768..cb457e470 100644 Binary files a/docs/games/Zelda/img/Zelda-tile-key-Sprite2D.png and b/docs/games/Zelda/img/Zelda-tile-key-Sprite2D.png differ diff --git a/docs/games/Zelda/img/Zelda-tile-key-Vector.png b/docs/games/Zelda/img/Zelda-tile-key-Vector.png index 09f573db4..3b74da918 100644 Binary files a/docs/games/Zelda/img/Zelda-tile-key-Vector.png and b/docs/games/Zelda/img/Zelda-tile-key-Vector.png differ diff --git a/docs/games/Zelda/img/Zelda-tile-spider-Block2D.png b/docs/games/Zelda/img/Zelda-tile-spider-Block2D.png index b19a62955..4e0852ee5 100644 Binary files a/docs/games/Zelda/img/Zelda-tile-spider-Block2D.png and b/docs/games/Zelda/img/Zelda-tile-spider-Block2D.png differ diff --git a/docs/games/Zelda/img/Zelda-tile-spider-Vector.png b/docs/games/Zelda/img/Zelda-tile-spider-Vector.png index 37ac5d892..d8a72ac84 100644 Binary files a/docs/games/Zelda/img/Zelda-tile-spider-Vector.png and b/docs/games/Zelda/img/Zelda-tile-spider-Vector.png differ diff --git a/docs/games/Zelda/img/Zelda-tile-wall-Block2D.png b/docs/games/Zelda/img/Zelda-tile-wall-Block2D.png index 672268aa4..b98b77ffc 100644 Binary files a/docs/games/Zelda/img/Zelda-tile-wall-Block2D.png and b/docs/games/Zelda/img/Zelda-tile-wall-Block2D.png differ diff --git a/docs/games/Zelda/img/Zelda-tile-wall-Vector.png b/docs/games/Zelda/img/Zelda-tile-wall-Vector.png index 0ae910660..95e86ee99 100644 Binary files a/docs/games/Zelda/img/Zelda-tile-wall-Vector.png and b/docs/games/Zelda/img/Zelda-tile-wall-Vector.png differ diff --git a/docs/games/Zelda/index.rst b/docs/games/Zelda/index.rst index a66346330..370157c2f 100644 --- a/docs/games/Zelda/index.rst +++ b/docs/games/Zelda/index.rst @@ -16,6 +16,7 @@ Levels --------- .. list-table:: Levels + :class: level-gallery :header-rows: 1 * - diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Block2D-0.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Block2D-0.png index 28cf74c32..b9bf1c074 100644 Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Block2D-0.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Block2D-0.png differ diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Block2D-1.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Block2D-1.png index a0ae9c439..c61d78843 100644 Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Block2D-1.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Block2D-1.png differ diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Block2D-2.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Block2D-2.png index 9b5d56fa8..cd6181ee8 100644 Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Block2D-2.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Block2D-2.png differ diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Sprite2D-0.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Sprite2D-0.png index 01f93dcbc..335547d1c 100644 Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Sprite2D-0.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Sprite2D-0.png differ diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Sprite2D-1.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Sprite2D-1.png index 291c16462..ea6ee5738 100644 Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Sprite2D-1.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Sprite2D-1.png differ diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Sprite2D-2.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Sprite2D-2.png index 3389a9f3e..a6c5544d1 100644 Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Sprite2D-2.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Sprite2D-2.png differ diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Vector-0.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Vector-0.png index bf776148e..26ac6edec 100644 Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Vector-0.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Vector-0.png differ diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Vector-1.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Vector-1.png index 4b2d31da4..299f5387c 100644 Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Vector-1.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Vector-1.png differ diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Vector-2.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Vector-2.png index 4e2cfa314..d07933b5f 100644 Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Vector-2.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Vector-2.png differ diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-attack_fire-Vector.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-attack_fire-Vector.png index d8a72ac84..95e86ee99 100644 Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-attack_fire-Vector.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-attack_fire-Vector.png differ diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-avatar-Block2D.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-avatar-Block2D.png index 53aef6fc7..f10c9a4f3 100644 Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-avatar-Block2D.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-avatar-Block2D.png differ diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-avatar-Vector.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-avatar-Vector.png index 3b74da918..d8a72ac84 100644 Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-avatar-Vector.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-avatar-Vector.png differ diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-goal-Block2D.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-goal-Block2D.png index 89b715e3a..070c76dae 100644 Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-goal-Block2D.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-goal-Block2D.png differ diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-goal-Vector.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-goal-Vector.png index 95e86ee99..3b74da918 100644 Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-goal-Vector.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-goal-Vector.png differ diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-key-Block2D.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-key-Block2D.png index 75b9fb4e2..29fdd4dae 100644 Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-key-Block2D.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-key-Block2D.png differ diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-key-Sprite2D.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-key-Sprite2D.png index e976c2768..cb457e470 100644 Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-key-Sprite2D.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-key-Sprite2D.png differ diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-key-Vector.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-key-Vector.png index 09f573db4..3b74da918 100644 Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-key-Vector.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-key-Vector.png differ diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-spider-Block2D.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-spider-Block2D.png index b19a62955..4e0852ee5 100644 Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-spider-Block2D.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-spider-Block2D.png differ diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-spider-Vector.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-spider-Vector.png index 37ac5d892..d8a72ac84 100644 Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-spider-Vector.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-spider-Vector.png differ diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-wall-Block2D.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-wall-Block2D.png index 672268aa4..b98b77ffc 100644 Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-wall-Block2D.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-wall-Block2D.png differ diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-wall-Vector.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-wall-Vector.png index 0ae910660..95e86ee99 100644 Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-wall-Vector.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-wall-Vector.png differ diff --git a/docs/games/Zelda_Sequential/index.rst b/docs/games/Zelda_Sequential/index.rst index 7b657224f..d99726bb2 100644 --- a/docs/games/Zelda_Sequential/index.rst +++ b/docs/games/Zelda_Sequential/index.rst @@ -16,6 +16,7 @@ Levels --------- .. list-table:: Levels + :class: level-gallery :header-rows: 1 * - diff --git a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-0.png b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-0.png index a341956e0..ae885fd46 100644 Binary files a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-0.png and b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-0.png differ diff --git a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-1.png b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-1.png index 6f85411af..5a7e01c5b 100644 Binary files a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-1.png and b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-1.png differ diff --git a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-2.png b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-2.png index fa81b8f26..c9ccbffea 100644 Binary files a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-2.png and b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-2.png differ diff --git a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-3.png b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-3.png index 197934e4f..e9df241fd 100644 Binary files a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-3.png and b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-3.png differ diff --git a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-4.png b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-4.png index 6e75c09fb..393c8afa0 100644 Binary files a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-4.png and b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-4.png differ diff --git a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-0.png b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-0.png index f7c62b08c..aaf26adfc 100644 Binary files a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-0.png and b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-0.png differ diff --git a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-1.png b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-1.png index e5e5be48b..aaf26adfc 100644 Binary files a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-1.png and b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-1.png differ diff --git a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-2.png b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-2.png index 6513bccde..aaf26adfc 100644 Binary files a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-2.png and b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-2.png differ diff --git a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-3.png b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-3.png index c0023cbc6..6ee534694 100644 Binary files a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-3.png and b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-3.png differ diff --git a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-4.png b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-4.png index 9f4354789..aaf26adfc 100644 Binary files a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-4.png and b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-4.png differ diff --git a/docs/games/Zen_Puzzle/img/Zen_Puzzle-tile-avatar-Vector.png b/docs/games/Zen_Puzzle/img/Zen_Puzzle-tile-avatar-Vector.png index 3220f5d4c..f76f390fd 100644 Binary files a/docs/games/Zen_Puzzle/img/Zen_Puzzle-tile-avatar-Vector.png and b/docs/games/Zen_Puzzle/img/Zen_Puzzle-tile-avatar-Vector.png differ diff --git a/docs/games/Zen_Puzzle/img/Zen_Puzzle-tile-ground-Block2D.png b/docs/games/Zen_Puzzle/img/Zen_Puzzle-tile-ground-Block2D.png index 286da7396..fae52bb5a 100644 Binary files a/docs/games/Zen_Puzzle/img/Zen_Puzzle-tile-ground-Block2D.png and b/docs/games/Zen_Puzzle/img/Zen_Puzzle-tile-ground-Block2D.png differ diff --git a/docs/games/Zen_Puzzle/img/Zen_Puzzle-tile-ground-Vector.png b/docs/games/Zen_Puzzle/img/Zen_Puzzle-tile-ground-Vector.png index f76f390fd..3220f5d4c 100644 Binary files a/docs/games/Zen_Puzzle/img/Zen_Puzzle-tile-ground-Vector.png and b/docs/games/Zen_Puzzle/img/Zen_Puzzle-tile-ground-Vector.png differ diff --git a/docs/games/Zen_Puzzle/img/Zen_Puzzle-tile-rock-Vector.png b/docs/games/Zen_Puzzle/img/Zen_Puzzle-tile-rock-Vector.png index dabd04345..3220f5d4c 100644 Binary files a/docs/games/Zen_Puzzle/img/Zen_Puzzle-tile-rock-Vector.png and b/docs/games/Zen_Puzzle/img/Zen_Puzzle-tile-rock-Vector.png differ diff --git a/docs/games/Zen_Puzzle/index.rst b/docs/games/Zen_Puzzle/index.rst index a851f357f..058ec0360 100644 --- a/docs/games/Zen_Puzzle/index.rst +++ b/docs/games/Zen_Puzzle/index.rst @@ -16,6 +16,7 @@ Levels --------- .. list-table:: Levels + :class: level-gallery :header-rows: 1 * - diff --git a/docs/games/img/Cook_Me_Pasta-taster.png b/docs/games/img/Cook_Me_Pasta-taster.png index b97ca4ff6..16500dd79 100644 Binary files a/docs/games/img/Cook_Me_Pasta-taster.png and b/docs/games/img/Cook_Me_Pasta-taster.png differ diff --git a/docs/games/img/Foragers-taster.png b/docs/games/img/Foragers-taster.png index 730209ea3..3e700aff3 100644 Binary files a/docs/games/img/Foragers-taster.png and b/docs/games/img/Foragers-taster.png differ diff --git a/docs/games/img/Grafter_Escape_Rooms-taster.png b/docs/games/img/Grafter_Escape_Rooms-taster.png new file mode 100644 index 000000000..fbf93573a Binary files /dev/null and b/docs/games/img/Grafter_Escape_Rooms-taster.png differ diff --git a/docs/games/img/GriddlyRTS-taster.png b/docs/games/img/GriddlyRTS-taster.png index bda33ba00..906779827 100644 Binary files a/docs/games/img/GriddlyRTS-taster.png and b/docs/games/img/GriddlyRTS-taster.png differ diff --git a/docs/games/img/Heal_Or_Die-taster.png b/docs/games/img/Heal_Or_Die-taster.png index ba2eb78fa..5785c55fb 100644 Binary files a/docs/games/img/Heal_Or_Die-taster.png and b/docs/games/img/Heal_Or_Die-taster.png differ diff --git a/docs/games/img/Kill_The_King-taster.png b/docs/games/img/Kill_The_King-taster.png index 720b431ba..654378d2d 100644 Binary files a/docs/games/img/Kill_The_King-taster.png and b/docs/games/img/Kill_The_King-taster.png differ diff --git a/docs/games/img/Partially_Observable_Cook_Me_Pasta-taster.png b/docs/games/img/Partially_Observable_Cook_Me_Pasta-taster.png index b97ca4ff6..16500dd79 100644 Binary files a/docs/games/img/Partially_Observable_Cook_Me_Pasta-taster.png and b/docs/games/img/Partially_Observable_Cook_Me_Pasta-taster.png differ diff --git a/docs/games/img/Partially_Observable_Zelda-taster.png b/docs/games/img/Partially_Observable_Zelda-taster.png index d20cd254a..94fb66b95 100644 Binary files a/docs/games/img/Partially_Observable_Zelda-taster.png and b/docs/games/img/Partially_Observable_Zelda-taster.png differ diff --git a/docs/games/img/Push_Mania-taster.png b/docs/games/img/Push_Mania-taster.png index 44d364f3e..6b1d74837 100644 Binary files a/docs/games/img/Push_Mania-taster.png and b/docs/games/img/Push_Mania-taster.png differ diff --git a/docs/games/img/Zelda-taster.png b/docs/games/img/Zelda-taster.png index d20cd254a..94fb66b95 100644 Binary files a/docs/games/img/Zelda-taster.png and b/docs/games/img/Zelda-taster.png differ diff --git a/docs/games/img/Zelda_Sequential-taster.png b/docs/games/img/Zelda_Sequential-taster.png index 3389a9f3e..a6c5544d1 100644 Binary files a/docs/games/img/Zelda_Sequential-taster.png and b/docs/games/img/Zelda_Sequential-taster.png differ diff --git a/docs/games/index.rst b/docs/games/index.rst index 833c11fa1..9ec80b6f9 100644 --- a/docs/games/index.rst +++ b/docs/games/index.rst @@ -1,59 +1,5 @@ .. _doc_games: -*** -RTS -*** - -.. toctree:: - :hidden: - - GriddlyRTS/index - Push_Mania/index - Heal_Or_Die/index - Kill_The_King/index - -.. list-table:: - :class: game-gallery - - * - **GriddlyRTS** - - .. image:: img/GriddlyRTS-taster.png - :target: GriddlyRTS/index.html - :width: 200 - - An RTS Game. There's aliens and stuff. - - **Push Mania** - - .. image:: img/Push_Mania-taster.png - :target: Push_Mania/index.html - :width: 200 - - Game environment ported from https://github.com/GAIGResearch/Stratega. - You must push all your opponents pieces into the holes. - - - **Heal Or Die** - - .. image:: img/Heal_Or_Die-taster.png - :target: Heal_Or_Die/index.html - :width: 200 - - Game environment ported from https://github.com/GAIGResearch/Stratega. - You have units that heal and units that perform close combat. - Additionally, on every turn, the health of your units decreases. Win the game by killing your opponents pieces first. - - * - **Kill The King** - - .. image:: img/Kill_The_King-taster.png - :target: Kill_The_King/index.html - :width: 200 - - Game environment ported from https://github.com/GAIGResearch/Stratega. - Both you and your opponent must protect the king from being killed. - - - - - - - ************* Single-Player ************* @@ -61,118 +7,143 @@ Single-Player .. toctree:: :hidden: - Drunk_Dwarf/index Spiders/index - Doggo/index Eyeball/index - Zen_Puzzle/index - Partially_Observable_Zelda/index - Bait/index - Labyrinth/index - Partially_Observable_Cook_Me_Pasta/index - Partially_Observable_Bait/index + Drunk_Dwarf/index + Doggo/index + Butterflies_and_Spiders/index Partially_Observable_Sokoban_-_2/index - Sokoban/index - Random_butterflies/index - Bait_With_Keys/index - Clusters/index + Labyrinth/index + Bait/index Partially_Observable_Zen_Puzzle/index - Sokoban_-_2/index - Zelda/index - Partially_Observable_Clusters/index + Partially_Observable_Cook_Me_Pasta/index Spider_Nest/index Partially_Observable_Labyrinth/index + Sokoban_-_2/index + Partially_Observable_Clusters/index + Bait_With_Keys/index + Random_butterflies/index Cook_Me_Pasta/index - Butterflies_and_Spiders/index + Partially_Observable_Bait/index Zelda_Sequential/index + Partially_Observable_Zelda/index + Sokoban/index + Zelda/index + Clusters/index + Zen_Puzzle/index + Grafter_Escape_Rooms/index .. list-table:: :class: game-gallery - * - **Drunk Dwarf** - - .. image:: img/Drunk_Dwarf-taster.png - :target: Drunk_Dwarf/index.html - :width: 200 - - A port of the games provided in the https://github.com/maximecb/gym-minigrid environment, but you're a drunk dwarf trying find your keys that you've dropped to get to your bed (which is a coffin?? Wierd.). - - **Spiders** + * - **Spiders** .. image:: img/Spiders-taster.png :target: Spiders/index.html :width: 200 A port of the games provided in the https://github.com/maximecb/gym-minigrid Dynamic obstacles environment, but you're a gnome avoiding ghosts to get to a gem. - - **Doggo** + - **Eyeball** + + .. image:: img/Eyeball-taster.png + :target: Eyeball/index.html + :width: 200 + + A port of the games provided in the https://github.com/maximecb/gym-minigrid 4 Rooms environment, but you're a giant eye looking for it's eyedrops because everything is yellow and it hurts to look at. + - **Drunk Dwarf** + + .. image:: img/Drunk_Dwarf-taster.png + :target: Drunk_Dwarf/index.html + :width: 200 + + A port of the games provided in the https://github.com/maximecb/gym-minigrid environment, but you're a drunk dwarf trying find your keys that you've dropped to get to your bed (which is a coffin?? Wierd.). + * - **Doggo** .. image:: img/Doggo-taster.png :target: Doggo/index.html :width: 200 A port of the games provided in the https://github.com/maximecb/gym-minigrid Empty environment, but you're a doggo fetching a stick. - * - **Eyeball** + - **Butterflies and Spiders** - .. image:: img/Eyeball-taster.png - :target: Eyeball/index.html + .. image:: img/Butterflies_and_Spiders-taster.png + :target: Butterflies_and_Spiders/index.html :width: 200 - A port of the games provided in the https://github.com/maximecb/gym-minigrid 4 Rooms environment, but you're a giant eye looking for it's eyedrops because everything is yellow and it hurts to look at. - - **Zen Puzzle** + You want to catch all of the butterflies while also avoiding the spiders. Butterflies spawn slowly from cocoons. + The butterflies are also eaten by the spiders so you need to be fast to collect them. + You win the level as soon as there are no butterflies on the screen. - .. image:: img/Zen_Puzzle-taster.png - :target: Zen_Puzzle/index.html + - **Partially Observable Sokoban - 2** + + .. image:: img/Partially_Observable_Sokoban_-_2-taster.png + :target: Partially_Observable_Sokoban_-_2/index.html :width: 200 - Set all the tiles in the level to the same color, but you cannot move over a tile more than once! (Not even sure why this is zen its super frustrating) - - **Partially Observable Zelda** + Push the boxes onto the marked spaces, once a box has moved onto a space, it cannot be moved + * - **Labyrinth** - .. image:: img/Partially_Observable_Zelda-taster.png - :target: Partially_Observable_Zelda/index.html + .. image:: img/Labyrinth-taster.png + :target: Labyrinth/index.html :width: 200 - A port of the GVGAI game "Zelda", but partially observable. Pick up keys to reach doors and avoid enemies. - * - **Bait** + Its a maze, find your way out. Watch out for spikey things. + - **Bait** .. image:: img/Bait-taster.png :target: Bait/index.html :width: 200 Get the key and unlock the door. Fill in the holes in the floor with blocks to get to the key. - - **Labyrinth** + - **Partially Observable Zen Puzzle** - .. image:: img/Labyrinth-taster.png - :target: Labyrinth/index.html + .. image:: img/Partially_Observable_Zen_Puzzle-taster.png + :target: Partially_Observable_Zen_Puzzle/index.html :width: 200 - Its a maze, find your way out. Watch out for spikey things. - - **Partially Observable Cook Me Pasta** + Set all the tiles in the level to the same color, but you cannot move over a tile more than once! (Not even sure why this is zen its super frustrating) + * - **Partially Observable Cook Me Pasta** .. image:: img/Partially_Observable_Cook_Me_Pasta-taster.png :target: Partially_Observable_Cook_Me_Pasta/index.html :width: 200 Help the chef create the meal, but make sure the ingredients are put together in the right order. - * - **Partially Observable Bait** + - **Spider Nest** - .. image:: img/Partially_Observable_Bait-taster.png - :target: Partially_Observable_Bait/index.html + .. image:: img/Spider_Nest-taster.png + :target: Spider_Nest/index.html :width: 200 - Get the key and unlock the door. Fill in the holes in the floor with blocks to get to the key. - - **Partially Observable Sokoban - 2** + A port of the games provided in the https://github.com/maximecb/gym-minigrid Dynamic obstacles environment, but you're a gnome avoiding ghosts to get to a gem. + - **Partially Observable Labyrinth** - .. image:: img/Partially_Observable_Sokoban_-_2-taster.png - :target: Partially_Observable_Sokoban_-_2/index.html + .. image:: img/Partially_Observable_Labyrinth-taster.png + :target: Partially_Observable_Labyrinth/index.html + :width: 200 + + Its a maze, find your way out. Watch out for spikey things. In this version the observation space for the player is partial. + * - **Sokoban - 2** + + .. image:: img/Sokoban_-_2-taster.png + :target: Sokoban_-_2/index.html :width: 200 Push the boxes onto the marked spaces, once a box has moved onto a space, it cannot be moved - - **Sokoban** + - **Partially Observable Clusters** - .. image:: img/Sokoban-taster.png - :target: Sokoban/index.html + .. image:: img/Partially_Observable_Clusters-taster.png + :target: Partially_Observable_Clusters/index.html :width: 200 - Push the boxes into holes. + Cluster the coloured objects together by pushing them against the static coloured blocks. + - **Bait With Keys** + + .. image:: img/Bait_With_Keys-taster.png + :target: Bait_With_Keys/index.html + :width: 200 + + Get the key and unlock the door. Fill in the holes in the floor with blocks to get to the key. (This environment is the same as the normal Bait environment, but if the avatar has the key, it is visible) * - **Random butterflies** .. image:: img/Random_butterflies-taster.png @@ -184,86 +155,125 @@ Single-Player You win the level as soon as there are no butterflies left. The player also only has partial observability. - - **Bait With Keys** + - **Cook Me Pasta** - .. image:: img/Bait_With_Keys-taster.png - :target: Bait_With_Keys/index.html + .. image:: img/Cook_Me_Pasta-taster.png + :target: Cook_Me_Pasta/index.html :width: 200 - Get the key and unlock the door. Fill in the holes in the floor with blocks to get to the key. (This environment is the same as the normal Bait environment, but if the avatar has the key, it is visible) - - **Clusters** + Help the chef create the meal, but make sure the ingredients are put together in the right order. + - **Partially Observable Bait** - .. image:: img/Clusters-taster.png - :target: Clusters/index.html + .. image:: img/Partially_Observable_Bait-taster.png + :target: Partially_Observable_Bait/index.html :width: 200 - Cluster the coloured objects together by pushing them against the static coloured blocks. - * - **Partially Observable Zen Puzzle** + Get the key and unlock the door. Fill in the holes in the floor with blocks to get to the key. + * - **Zelda Sequential** - .. image:: img/Partially_Observable_Zen_Puzzle-taster.png - :target: Partially_Observable_Zen_Puzzle/index.html + .. image:: img/Zelda_Sequential-taster.png + :target: Zelda_Sequential/index.html :width: 200 - Set all the tiles in the level to the same color, but you cannot move over a tile more than once! (Not even sure why this is zen its super frustrating) - - **Sokoban - 2** + A port of the GVGAI game "Zelda". Pick up keys to reach doors in the correct order and avoid enemies. For example, previously you could go -- key -> door -> door. But now you would need to go -- key -> door --> key --> door. + - **Partially Observable Zelda** - .. image:: img/Sokoban_-_2-taster.png - :target: Sokoban_-_2/index.html + .. image:: img/Partially_Observable_Zelda-taster.png + :target: Partially_Observable_Zelda/index.html :width: 200 - Push the boxes onto the marked spaces, once a box has moved onto a space, it cannot be moved - - **Zelda** + A port of the GVGAI game "Zelda", but partially observable. Pick up keys to reach doors and avoid enemies. + - **Sokoban** + + .. image:: img/Sokoban-taster.png + :target: Sokoban/index.html + :width: 200 + + Push the boxes into holes. + * - **Zelda** .. image:: img/Zelda-taster.png :target: Zelda/index.html :width: 200 A port of the GVGAI game "Zelda". Pick up keys to reach doors and avoid enemies. - * - **Partially Observable Clusters** + - **Clusters** - .. image:: img/Partially_Observable_Clusters-taster.png - :target: Partially_Observable_Clusters/index.html + .. image:: img/Clusters-taster.png + :target: Clusters/index.html :width: 200 Cluster the coloured objects together by pushing them against the static coloured blocks. - - **Spider Nest** + - **Zen Puzzle** - .. image:: img/Spider_Nest-taster.png - :target: Spider_Nest/index.html + .. image:: img/Zen_Puzzle-taster.png + :target: Zen_Puzzle/index.html :width: 200 - A port of the games provided in the https://github.com/maximecb/gym-minigrid Dynamic obstacles environment, but you're a gnome avoiding ghosts to get to a gem. - - **Partially Observable Labyrinth** + Set all the tiles in the level to the same color, but you cannot move over a tile more than once! (Not even sure why this is zen its super frustrating) + * - **Grafter Escape Rooms** - .. image:: img/Partially_Observable_Labyrinth-taster.png - :target: Partially_Observable_Labyrinth/index.html + .. image:: img/Grafter_Escape_Rooms-taster.png + :target: Grafter_Escape_Rooms/index.html :width: 200 - Its a maze, find your way out. Watch out for spikey things. In this version the observation space for the player is partial. - * - **Cook Me Pasta** + 100 human designed escape rooms using the mechanics of the Crafter environment. + - + - - .. image:: img/Cook_Me_Pasta-taster.png - :target: Cook_Me_Pasta/index.html + +*** +RTS +*** + +.. toctree:: + :hidden: + + GriddlyRTS/index + Push_Mania/index + Kill_The_King/index + Heal_Or_Die/index + +.. list-table:: + :class: game-gallery + + * - **GriddlyRTS** + + .. image:: img/GriddlyRTS-taster.png + :target: GriddlyRTS/index.html :width: 200 - Help the chef create the meal, but make sure the ingredients are put together in the right order. - - **Butterflies and Spiders** + An RTS Game. There's aliens and stuff. + - **Push Mania** - .. image:: img/Butterflies_and_Spiders-taster.png - :target: Butterflies_and_Spiders/index.html + .. image:: img/Push_Mania-taster.png + :target: Push_Mania/index.html :width: 200 - You want to catch all of the butterflies while also avoiding the spiders. Butterflies spawn slowly from cocoons. - The butterflies are also eaten by the spiders so you need to be fast to collect them. - You win the level as soon as there are no butterflies on the screen. + Game environment ported from https://github.com/GAIGResearch/Stratega. + You must push all your opponents pieces into the holes. - - **Zelda Sequential** + - **Kill The King** - .. image:: img/Zelda_Sequential-taster.png - :target: Zelda_Sequential/index.html + .. image:: img/Kill_The_King-taster.png + :target: Kill_The_King/index.html :width: 200 - A port of the GVGAI game "Zelda". Pick up keys to reach doors in the correct order and avoid enemies. For example, previously you could go -- key -> door -> door. But now you would need to go -- key -> door --> key --> door. + Game environment ported from https://github.com/GAIGResearch/Stratega. + Both you and your opponent must protect the king from being killed. + + * - **Heal Or Die** + + .. image:: img/Heal_Or_Die-taster.png + :target: Heal_Or_Die/index.html + :width: 200 + + Game environment ported from https://github.com/GAIGResearch/Stratega. + You have units that heal and units that perform close combat. + Additionally, on every turn, the health of your units decreases. Win the game by killing your opponents pieces first. + + - + - *********** @@ -273,21 +283,21 @@ Multi-Agent .. toctree:: :hidden: - Foragers/index + Robot_Tag_12v12/index Robot_Tag_8v8/index + Foragers/index Robot_Tag_4v4/index - Robot_Tag_12v12/index .. list-table:: :class: game-gallery - * - **Foragers** + * - **Robot Tag 12v12** - .. image:: img/Foragers-taster.png - :target: Foragers/index.html + .. image:: img/Robot_Tag_12v12-taster.png + :target: Robot_Tag_12v12/index.html :width: 200 - A very simple multi-agent game. Agents must collect the coloured potions + Robots start randomly as "tagged" or not, robots can "tag" other robots. Any robot that is "tagged" 3 times dies. - **Robot Tag 8v8** .. image:: img/Robot_Tag_8v8-taster.png @@ -295,17 +305,17 @@ Multi-Agent :width: 200 Robots start randomly as "tagged" or not, robots can "tag" other robots. Any robot that is "tagged" 3 times dies. - - **Robot Tag 4v4** + - **Foragers** - .. image:: img/Robot_Tag_4v4-taster.png - :target: Robot_Tag_4v4/index.html + .. image:: img/Foragers-taster.png + :target: Foragers/index.html :width: 200 - Robots start randomly as "tagged" or not, robots can "tag" other robots. Any robot that is "tagged" 3 times dies. - * - **Robot Tag 12v12** + A very simple multi-agent game. Agents must collect the coloured potions + * - **Robot Tag 4v4** - .. image:: img/Robot_Tag_12v12-taster.png - :target: Robot_Tag_12v12/index.html + .. image:: img/Robot_Tag_4v4-taster.png + :target: Robot_Tag_4v4/index.html :width: 200 Robots start randomly as "tagged" or not, robots can "tag" other robots. Any robot that is "tagged" 3 times dies. diff --git a/docs/tutorials/GDY/actions.rst b/docs/tutorials/GDY/actions.rst index a4cde633c..eb22f6850 100644 --- a/docs/tutorials/GDY/actions.rst +++ b/docs/tutorials/GDY/actions.rst @@ -17,7 +17,7 @@ Lets look at a few examples to make these ideas more concrete! Step 1 - Movement ***************** -We are building the game "Sokoban" so we will first define that our ``avatar`` object which we defined before can move around in empty space. To do that we can define our "move" action as follows: +We are building the game "Sokoban" so we will first define that the ``avatar`` object can move around in empty space. To do that we can define a "move" action as follows: .. code-block:: YAML @@ -34,11 +34,12 @@ We are building the game "Sokoban" so we will first define that our ``avatar`` o Object: _empty We have named the above action "move" and defined a single behaviour. The behaviour object contains the ``Src`` key with the ``Object`` value ``avatar`` meaning that we are defing what happens if the ``avatar`` object performs the "move" action. -We also define the ``Dst`` key with the ``Object`` value ``_empty``. The ``_empty`` keyword is a special keyword that the behaviour only applies when the action is perfomed on a space that has no objects present. +We also define the ``Dst`` key with the ``Object`` value ``_empty``. The ``_empty`` keyword is a special object that refers to "empty space". This action therefore is only executed when the ``avatar`` performs an action on an ``_empty`` space. -Finally we have ``Commands`` object in the ``Src`` key. The ``Commands`` object contains a list of instructions that will happen to the ``Src`` object if this action is executed. The command we have here is `mov: _dest` which tells the environment to move the object to the destination of the action. The `_dest` keyword is another special keyword used in actions which contains the location of the destination of the action. +Finally we have ``Commands`` object in the ``Src`` key. The ``Commands`` object contains a list of instructions that will be executed by the ``Src`` object. The command we have here is `mov: _dest` which tells the environment to move the object to the destination of the action. +The `_dest` keyword is another special keyword used in actions which contains the location of the destination of the action. -For more information about possible commands that can be run on either the ``Src`` or ``Dst`` objects go `here <#/properties/Actions/items/properties/Behaviours/definitions/behaviourDefinitionCommandList>`_ +For more information about possible commands that can be run on either the ``Src`` or ``Dst`` objects you can refer to the schema docs `here <#/properties/Actions/items/properties/Behaviours/definitions/behaviourDefinitionCommandList>`_ ********************** Step 2 - Pushing boxes @@ -68,9 +69,12 @@ To define that we want ``box`` objects to move when the ``avatar`` object moves Here we are actually defining two behaviours. The first behaviour is similar to the one in the previous example. We define that the ``box`` object has the mechanic allowing it to move into empty space. -The second behaviour we define allows the ``avatar`` object to interact with the ``box`` object. The ``mov`` command tells ``avatar`` it can move in the same way it would just moving into empty space. The ``box`` object however now needs to be moved in the same direction as the ``avatar``. This can be achieved by applying the same "move" action again, but on the destination object. ``cascade: _dest`` re-applies the same action on the destination object, which will move the ``box``! +The second behaviour we define allows the ``avatar`` object to interact with the ``box`` object. The ``mov: _dest`` command tells ``avatar`` to move to the destination location when the action is executed. +The ``box`` object also needs to be moved in the same direction as the ``avatar``. +This can be achieved by applying the same "move" action again, but on the destination object. +``cascade: _dest`` re-applies (or cascades) the same action on the destination object, which will move the ``box``! -.. note:: We have only allowed the ``box`` object to "move" into empty space. If the ``_dest`` location is not empty, i.e. it contains a ``wall`` object or a ``hole`` object, the command will not be executed. This will stop the previous action also, stopping the ``avatar`` from moving also. +.. note:: We have only allowed the ``box`` object to "move" into empty space. If the ``_dest`` location is not empty, i.e. it contains a ``wall`` object or a ``hole`` object, the command will not be executed. This will stop also the ``avatar`` from moving. ********************************** Step 3 - Pushing a box into a hole diff --git a/docs/tutorials/GDY/environment.rst b/docs/tutorials/GDY/environment.rst index 38c103cd2..72d7d8140 100644 --- a/docs/tutorials/GDY/environment.rst +++ b/docs/tutorials/GDY/environment.rst @@ -4,7 +4,7 @@ Environment ########### -The Environment object contains the definition of how the game will be controlled by the player, the conditions underwhich the game ends, and the levels that are contained in the game. +The ``Environment`` configuration contains the definition of how the game will be controlled by the player, the conditions underwhich the game ends, the configurations of observers and the levels that are contained in the game. ***************************** Step 1 - Player Configuration @@ -24,7 +24,7 @@ Step 2 - Termination Conditions Termination conditions are the rules which decide when the game episodes are complete, and whether the agent wins or loses. -Rules can be defined seperately for ``Win`` and ``Lose``. In Sokoban, we just have a win condition where the player wins if all of the boxes have fallen into the holes. This is how it is defined in GDY. +Rules can be defined seperately for ``Win`` and ``Lose``. In Sokoban, the player "wins" by pushing all of the boxes into holes. This is how it is defined in GDY. .. code-block:: YAML @@ -32,13 +32,13 @@ Rules can be defined seperately for ``Win`` and ``Lose``. In Sokoban, we just ha Win: - eq: [box:count, 0] -We define here that the agent wins in the case that the number of ``box`` objects in the environment reaches 0. The ``:count`` option can be appended to any object name to return the number of any of the objects. +We define here that the agent wins in the case that the number of ``box`` objects in the environment reaches 0. The ``:count`` attribute can be appended to any object name to return the number of those objects. *************** Step 3 - Levels *************** -In our Sokoban game we are going to define two levels. The layout of each level is defined by a level string which is made up of the ``MapCharacter`` characters that were defined in the :ref:`Objects ` section of this tutorial. +In our Sokoban game we are going to define two levels. The layout of each level is defined by a level string which is made up of ``MapCharacter`` characters that are defined in the :ref:`Objects ` section of this tutorial. the dot ``.`` character means that the space in the map in unoccupied. @@ -70,18 +70,19 @@ the two defined levels will look like this when rendered: ******************************************** -Step 4 - Name, TileSize and Background Image +Step 4 - TileSize and Background Image ******************************************** -- code-block:: YAML - Name: sokoban - TileSize: 24 - BackgroundTile: images/gvgai/newset/floor2.png + Observers: + Sprite2D: + TileSize: 24 + BackgroundTile: gvgai/newset/floor2.png + Block2D: + TileSize: 24 -Here we specify the size of the tiles in pixels ``TileSize``. Also if we want to use an image for the background when there are no objects present we can supply a ``BackgroundTile`` image. The ``BackgroundTile`` is ignored any Observers except from ``Sprite2D``. - -Additionally every environment must have a unique ``Name`` to differentiate it from other environments. +Here we specify the size of the tiles in pixels ``TileSize`` for both the Sprite2D and Block2D observers. Also if we want to use an image for the background when there are no objects present we can supply a ``BackgroundTile`` image. *********************** Putting it all together @@ -93,8 +94,12 @@ The environment definition with all the parts described looks like this: Environment: Name: sokoban - TileSize: 24 - BackgroundTile: images/gvgai/newset/floor2.png + Observers: + Sprite2D: + TileSize: 24 + BackgroundTile: gvgai/newset/floor2.png + Block2D: + TileSize: 24 Player: AvatarObject: avatar Termination: diff --git a/docs/tutorials/GDY/gym.rst b/docs/tutorials/GDY/gym.rst index 04f4d12d9..5df1c202a 100644 --- a/docs/tutorials/GDY/gym.rst +++ b/docs/tutorials/GDY/gym.rst @@ -12,7 +12,7 @@ Step 1 - Imports To play games with the keyboard using the gym interface, the ``play`` function can be used to wrap a gym environment -The only griddly import thats required is the ``GymWrapperFactory``, this is used to create gym wrappers for any Griddly environments +The only griddly import that is required is the ``GymWrapperFactory``, this is used to create gym wrappers for any Griddly environments .. code-block:: python diff --git a/docs/tutorials/GDY/index.rst b/docs/tutorials/GDY/index.rst index 9d9f7f331..a10db985c 100644 --- a/docs/tutorials/GDY/index.rst +++ b/docs/tutorials/GDY/index.rst @@ -4,13 +4,9 @@ GDY Tutorial - Making Sokoban ############################# -.. note:: It's recommended to follow the short :ref:`GDY Schema tutorial ` which will help validate any issues with GDY files as they are being created. +This tutorial will take you through building the game Sokoban using Griddly's Game Description Yaml (GDY). -This tutorial will take you through building a simple game with GDY. At the end of this tutorial you will have recreated the Sokoban game in Griddly. - -The tutorial comes in three main stages which represent each of the three main configuration stages, ``Enviroment``, ``Actions`` and ``Objects``. - -The top level of GDY files always look like this: +The tutorial comes in three stages covering the main areas of the GDY configuration file ``Enviroment``, ``Actions`` and ``Objects``. .. code-block:: @@ -21,6 +17,7 @@ The top level of GDY files always look like this: Objects: ... +Choose from the following options to learn how to configure each section: :ref:`Enviroment ` - Define how the player (or players) interact with the environment and design the levels. @@ -28,7 +25,7 @@ The top level of GDY files always look like this: :ref:`Objects ` - Define all the objects that might exist and how they will be rendered on screen. -Afterwards the environment can be loaded by Griddy and used in other projects. In this tutorial the environment will be loaded into an OpenAI gym wrapper and can be played with using your keyboard. +Finally you can load the game in python and play it: --> :ref:`How to play the tutorial game ` diff --git a/docs/tutorials/GDY/objects.rst b/docs/tutorials/GDY/objects.rst index ebf88123f..8de6fe323 100644 --- a/docs/tutorials/GDY/objects.rst +++ b/docs/tutorials/GDY/objects.rst @@ -143,25 +143,25 @@ The completed ``Object`` section of our GDY file looks like this: - Name: wall MapCharacter: w Observers: - Sprite2D: - TilingMode: WALL_16 - Image: - - images/gvgai/oryx/wall3_0.png - - images/gvgai/oryx/wall3_1.png - - images/gvgai/oryx/wall3_2.png - - images/gvgai/oryx/wall3_3.png - - images/gvgai/oryx/wall3_4.png - - images/gvgai/oryx/wall3_5.png - - images/gvgai/oryx/wall3_6.png - - images/gvgai/oryx/wall3_7.png - - images/gvgai/oryx/wall3_8.png - - images/gvgai/oryx/wall3_9.png - - images/gvgai/oryx/wall3_10.png - - images/gvgai/oryx/wall3_11.png - - images/gvgai/oryx/wall3_12.png - - images/gvgai/oryx/wall3_13.png - - images/gvgai/oryx/wall3_14.png - - images/gvgai/oryx/wall3_15.png + Sprite2D: + TilingMode: WALL_16 + Image: + - images/gvgai/oryx/wall3_0.png + - images/gvgai/oryx/wall3_1.png + - images/gvgai/oryx/wall3_2.png + - images/gvgai/oryx/wall3_3.png + - images/gvgai/oryx/wall3_4.png + - images/gvgai/oryx/wall3_5.png + - images/gvgai/oryx/wall3_6.png + - images/gvgai/oryx/wall3_7.png + - images/gvgai/oryx/wall3_8.png + - images/gvgai/oryx/wall3_9.png + - images/gvgai/oryx/wall3_10.png + - images/gvgai/oryx/wall3_11.png + - images/gvgai/oryx/wall3_12.png + - images/gvgai/oryx/wall3_13.png + - images/gvgai/oryx/wall3_14.png + - images/gvgai/oryx/wall3_15.png - Name: hole Z: 1 diff --git a/js/README.md b/js/README.md new file mode 100644 index 000000000..4360ab3ee --- /dev/null +++ b/js/README.md @@ -0,0 +1,58 @@ +# Griddly JS + +GriddlyJS is built using React and Web Assembly + +## Building From Source (including web-assembly) + +### Install Emscripten SDK + +To compile the web-assembly module for Griddly, you first need to [install emscripten](https://emscripten.org/docs/getting_started/downloads.html). + +Emscripten is a compiler toolchain for building web-assembly modules. + + +### Configure and Build + +Choose Release/Debug for the build type and run the following command: + +```shell +./configure.sh && ./build.sh [Release/Debug] +``` + +Once this is done, you can follow the instructions to Install Dependencies and Run Locally + +## Building Webapp Only + +GriddlyJS includes a pre-built web-assembly module for the current version of Griddly. + +If you just want to run the web-app locally then run the following commands which sync the resource directories + +``` +configure.sh +``` + +## Installing Dependencies + +### Node Package Manager + +As GriddlyJS is a web project, you must have NPM installed. The easiest way to do this is to [install NVM](https://github.com/nvm-sh/nvm#installing-and-updating) and choose a stable version. + +``` +nvm install lts/gallium && nvm use lts/gallium +``` + + +### Install node packages + +```shell +npm install +``` + +## Running Locally + +to run locally you can just run the following command in the `griddlyjs-app` folder: + +```shell +npm start +``` + diff --git a/js/bindings/Jiddly.cpp b/js/bindings/GriddlyJS.cpp similarity index 74% rename from js/bindings/Jiddly.cpp rename to js/bindings/GriddlyJS.cpp index 16ad12ab9..5a6c271ca 100644 --- a/js/bindings/Jiddly.cpp +++ b/js/bindings/GriddlyJS.cpp @@ -1,4 +1,4 @@ -#include "Jiddly.hpp" +#include "GriddlyJS.hpp" #include @@ -8,21 +8,21 @@ #include "../../src/Griddly/Core/GDY/Objects/ObjectGenerator.hpp" #include "../../src/Griddly/Core/GDY/TerminationGenerator.hpp" -Jiddly::Jiddly() { +GriddlyJS::GriddlyJS() { #ifndef NDEBUG spdlog::set_level(spdlog::level::debug); #else spdlog::set_level(spdlog::level::info); #endif - spdlog::debug("Jiddly module loaded!"); + spdlog::debug("GriddlyJS module loaded!"); } -std::shared_ptr Jiddly::loadString(std::string levelString) { +std::shared_ptr GriddlyJS::loadString(std::string levelString) { auto objectGenerator = std::make_shared(griddly::ObjectGenerator()); auto terminationGenerator = std::make_shared(griddly::TerminationGenerator()); auto gdyFactory = std::make_shared(griddly::GDYFactory(objectGenerator, terminationGenerator)); std::istringstream s(levelString); gdyFactory->parseFromStream(s); - return std::make_shared(JiddlyGDYWrapper(gdyFactory)); + return std::make_shared(GriddlyJSGDYWrapper(gdyFactory)); } \ No newline at end of file diff --git a/js/bindings/GriddlyJS.hpp b/js/bindings/GriddlyJS.hpp new file mode 100644 index 000000000..f48ed4fbd --- /dev/null +++ b/js/bindings/GriddlyJS.hpp @@ -0,0 +1,91 @@ +#include +#include + +#include "../../src/Griddly/Core/Grid.hpp" +#include "GriddlyJSGDYWrapper.hpp" + +namespace e = emscripten; + +class GriddlyJS { + public: + GriddlyJS(); + std::shared_ptr loadString(std::string levelString); +}; + +template +e::class_> register_unordered_map(const char* name) { + typedef std::unordered_map MapType; + + size_t (MapType::*size)() const = &MapType::size; + return e::class_(name) + .template constructor<>() + .function("size", size) + .function("get", e::internal::MapAccess::get) + .function("set", e::internal::MapAccess::set) + .function("keys", e::internal::MapAccess::keys); +} + +EMSCRIPTEN_BINDINGS(GriddlyJS) { + // Classes + e::class_("GriddlyJS") + .constructor() + .function("loadString", &GriddlyJS::loadString); + + e::class_("GriddlyJSGDYWrapper") + .smart_ptr>("GriddlyJSGDYWrapper") + .function("setMaxSteps", &GriddlyJSGDYWrapper::setMaxSteps) + .function("getPlayerCount", &GriddlyJSGDYWrapper::getPlayerCount) + .function("getAvatarObject", &GriddlyJSGDYWrapper::getAvatarObject) + .function("getExternalActionNames", &GriddlyJSGDYWrapper::getExternalActionNames) + .function("getLevelCount", &GriddlyJSGDYWrapper::getLevelCount) + .function("getObserverType", &GriddlyJSGDYWrapper::getObserverType) + .function("getActionInputMappings", &GriddlyJSGDYWrapper::getActionInputMappings) + .function("createGame", &GriddlyJSGDYWrapper::createGame); + + e::class_("GriddlyJSGameWrapper") + .smart_ptr>("GriddlyJSGameWrapper") + .function("getActionTypeId", &GriddlyJSGameWrapper::getActionTypeId) + .function("init", &GriddlyJSGameWrapper::init) + .function("release", &GriddlyJSGameWrapper::release) + .function("registerPlayer", &GriddlyJSGameWrapper::registerPlayer) + .function("loadLevel", &GriddlyJSGameWrapper::loadLevel) + .function("loadLevelString", &GriddlyJSGameWrapper::loadLevelString) + .function("reset", &GriddlyJSGameWrapper::reset) + .function("getGlobalObservationDescription", &GriddlyJSGameWrapper::getGlobalObservationDescription) + .function("observe", &GriddlyJSGameWrapper::observe) + .function("stepParallel", &GriddlyJSGameWrapper::stepParallel) + .function("getWidth", &GriddlyJSGameWrapper::getWidth) + .function("getHeight", &GriddlyJSGameWrapper::getHeight) + .function("getState", &GriddlyJSGameWrapper::getState) + .function("getGlobalVariableNames", &GriddlyJSGameWrapper::getGlobalVariableNames) + .function("getObjectVariableMap", &GriddlyJSGameWrapper::getObjectVariableMap) + .function("getGlobalVariables", &GriddlyJSGameWrapper::getGlobalVariables) + .function("getObjectNames", &GriddlyJSGameWrapper::getObjectNames) + .function("getObjectVariableNames", &GriddlyJSGameWrapper::getObjectVariableNames) + .function("seedRandomGenerator", &GriddlyJSGameWrapper::seedRandomGenerator); + + e::class_("GriddlyJSPlayerWrapper") + .smart_ptr>("GriddlyJSPlayerWrapper") + .function("getObservationDescription", &GriddlyJSPlayerWrapper::getObservationDescription) + .function("observe", &GriddlyJSPlayerWrapper::observe); + + // Types + e::value_object("glm::ivec2") + .field("x", &glm::ivec2::x) + .field("y", &glm::ivec2::y); + + e::value_object("glm::vec2") + .field("x", &glm::vec2::x) + .field("y", &glm::vec2::y); + + e::register_vector("IntVector"); + e::register_vector("UInt32Vector"); + e::register_vector("UInt8Vector"); + e::register_vector("StringVector"); + + e::enum_("ObserverType") + .value("VECTOR", griddly::ObserverType::VECTOR) + .value("ASCII", griddly::ObserverType::ASCII) + .value("ENTITY", griddly::ObserverType::ENTITY) + .value("NONE", griddly::ObserverType::NONE); +} diff --git a/js/bindings/JiddlyGDYWrapper.cpp b/js/bindings/GriddlyJSGDYWrapper.cpp similarity index 72% rename from js/bindings/JiddlyGDYWrapper.cpp rename to js/bindings/GriddlyJSGDYWrapper.cpp index 4ca418545..8a7be6cb8 100644 --- a/js/bindings/JiddlyGDYWrapper.cpp +++ b/js/bindings/GriddlyJSGDYWrapper.cpp @@ -1,22 +1,22 @@ -#include "JiddlyGDYWrapper.hpp" +#include "GriddlyJSGDYWrapper.hpp" -JiddlyGDYWrapper::JiddlyGDYWrapper(std::shared_ptr gdyFactory) +GriddlyJSGDYWrapper::GriddlyJSGDYWrapper(std::shared_ptr gdyFactory) : gdyFactory_(gdyFactory) { } -void JiddlyGDYWrapper::setMaxSteps(uint32_t maxSteps) { +void GriddlyJSGDYWrapper::setMaxSteps(uint32_t maxSteps) { gdyFactory_->setMaxSteps(maxSteps); } -uint32_t JiddlyGDYWrapper::getPlayerCount() const { +uint32_t GriddlyJSGDYWrapper::getPlayerCount() const { return gdyFactory_->getPlayerCount(); } -std::string JiddlyGDYWrapper::getAvatarObject() const { +std::string GriddlyJSGDYWrapper::getAvatarObject() const { return gdyFactory_->getAvatarObject(); } -e::val JiddlyGDYWrapper::getExternalActionNames() const { +e::val GriddlyJSGDYWrapper::getExternalActionNames() const { e::val js_actionNames = e::val::array(); for (const auto& actionName : gdyFactory_->getExternalActionNames()) { js_actionNames.call("push", actionName); @@ -24,15 +24,15 @@ e::val JiddlyGDYWrapper::getExternalActionNames() const { return js_actionNames; } -uint32_t JiddlyGDYWrapper::getLevelCount() const { +uint32_t GriddlyJSGDYWrapper::getLevelCount() const { return gdyFactory_->getLevelCount(); } -griddly::ObserverType& JiddlyGDYWrapper::getObserverType(std::string observerName) { +griddly::ObserverType& GriddlyJSGDYWrapper::getObserverType(std::string observerName) { return gdyFactory_->getNamedObserverType(observerName); } -e::val JiddlyGDYWrapper::getActionInputMappings() const { +e::val GriddlyJSGDYWrapper::getActionInputMappings() const { const auto& actionInputsDefinitions = gdyFactory_->getActionInputsDefinitions(); e::val js_actionInputsDefinitions = e::val::object(); for (auto actionInputDefinitionPair : actionInputsDefinitions) { @@ -69,6 +69,6 @@ e::val JiddlyGDYWrapper::getActionInputMappings() const { return js_actionInputsDefinitions; } -std::shared_ptr JiddlyGDYWrapper::createGame(std::string globalObserverName) { - return std::make_shared(JiddlyGameWrapper(globalObserverName, gdyFactory_)); +std::shared_ptr GriddlyJSGDYWrapper::createGame(std::string globalObserverName) { + return std::make_shared(GriddlyJSGameWrapper(globalObserverName, gdyFactory_)); } diff --git a/js/bindings/JiddlyGDYWrapper.hpp b/js/bindings/GriddlyJSGDYWrapper.hpp similarity index 70% rename from js/bindings/JiddlyGDYWrapper.hpp rename to js/bindings/GriddlyJSGDYWrapper.hpp index c581803a8..d5cdeb898 100644 --- a/js/bindings/JiddlyGDYWrapper.hpp +++ b/js/bindings/GriddlyJSGDYWrapper.hpp @@ -4,13 +4,13 @@ #include #include "../../src/Griddly/Core/GDY/GDYFactory.hpp" -#include "JiddlyGameWrapper.hpp" +#include "GriddlyJSGameWrapper.hpp" namespace e = emscripten; -class JiddlyGDYWrapper { +class GriddlyJSGDYWrapper { public: - JiddlyGDYWrapper(std::shared_ptr gdyFactory); + GriddlyJSGDYWrapper(std::shared_ptr gdyFactory); void setMaxSteps(uint32_t maxSteps); @@ -26,7 +26,7 @@ class JiddlyGDYWrapper { e::val getActionInputMappings() const; - std::shared_ptr createGame(std::string globalObserverName); + std::shared_ptr createGame(std::string globalObserverName); private: const std::shared_ptr gdyFactory_; diff --git a/js/bindings/JiddlyGameWrapper.cpp b/js/bindings/GriddlyJSGameWrapper.cpp similarity index 76% rename from js/bindings/JiddlyGameWrapper.cpp rename to js/bindings/GriddlyJSGameWrapper.cpp index 4913594cd..b04a34ce4 100644 --- a/js/bindings/JiddlyGameWrapper.cpp +++ b/js/bindings/GriddlyJSGameWrapper.cpp @@ -1,34 +1,34 @@ -#include "JiddlyGameWrapper.hpp" +#include "GriddlyJSGameWrapper.hpp" #include #include -#include "JiddlyWrapperCommon.cpp" +#include "GriddlyJSWrapperCommon.cpp" namespace e = emscripten; -JiddlyGameWrapper::JiddlyGameWrapper(std::string globalObserverName, std::shared_ptr gdyFactory) : gdyFactory_(gdyFactory) { +GriddlyJSGameWrapper::GriddlyJSGameWrapper(std::string globalObserverName, std::shared_ptr gdyFactory) : gdyFactory_(gdyFactory) { std::shared_ptr grid = std::make_shared(griddly::Grid()); gameProcess_ = std::make_shared(griddly::TurnBasedGameProcess(globalObserverName, gdyFactory, grid)); spdlog::debug("Created game process wrapper"); } -std::shared_ptr JiddlyGameWrapper::unwrapped() { +std::shared_ptr GriddlyJSGameWrapper::unwrapped() { return gameProcess_; } -std::shared_ptr JiddlyGameWrapper::registerPlayer(std::string playerName, std::string observerName) { +std::shared_ptr GriddlyJSGameWrapper::registerPlayer(std::string playerName, std::string observerName) { auto nextPlayerId = ++playerCount_; auto observer = gdyFactory_->createObserver(gameProcess_->getGrid(), observerName, gdyFactory_->getPlayerCount(), nextPlayerId); - auto player = std::make_shared(JiddlyPlayerWrapper(nextPlayerId, playerName, observer, gdyFactory_, gameProcess_)); + auto player = std::make_shared(GriddlyJSPlayerWrapper(nextPlayerId, playerName, observer, gdyFactory_, gameProcess_)); players_.push_back(player); gameProcess_->addPlayer(player->unwrapped()); return player; } -const uint32_t JiddlyGameWrapper::getActionTypeId(std::string actionName) const { +const uint32_t GriddlyJSGameWrapper::getActionTypeId(std::string actionName) const { auto actionNames = gdyFactory_->getExternalActionNames(); for (int i = 0; i < actionNames.size(); i++) { if (actionNames[i] == actionName) { @@ -38,35 +38,35 @@ const uint32_t JiddlyGameWrapper::getActionTypeId(std::string actionName) const throw std::runtime_error("unregistered action"); } -void JiddlyGameWrapper::init() { +void GriddlyJSGameWrapper::init() { gameProcess_->init(false); } -void JiddlyGameWrapper::release() { +void GriddlyJSGameWrapper::release() { gameProcess_->release(); } -void JiddlyGameWrapper::loadLevel(uint32_t levelId) { +void GriddlyJSGameWrapper::loadLevel(uint32_t levelId) { gameProcess_->setLevel(levelId); } -void JiddlyGameWrapper::loadLevelString(std::string levelString) { +void GriddlyJSGameWrapper::loadLevelString(std::string levelString) { gameProcess_->setLevel(levelString); } -void JiddlyGameWrapper::reset() { +void GriddlyJSGameWrapper::reset() { gameProcess_->reset(); } -e::val JiddlyGameWrapper::getGlobalObservationDescription() const { +e::val GriddlyJSGameWrapper::getGlobalObservationDescription() const { return wrapObservationDescription(gameProcess_->getObserver()); } -e::val JiddlyGameWrapper::observe() { +e::val GriddlyJSGameWrapper::observe() { return wrapObservation(gameProcess_->getObserver()); } -e::val JiddlyGameWrapper::stepParallel(e::val stepArray) { +e::val GriddlyJSGameWrapper::stepParallel(e::val stepArray) { const auto& externalActionNames = gdyFactory_->getExternalActionNames(); auto playerSize = stepArray["length"].as(); @@ -77,7 +77,7 @@ e::val JiddlyGameWrapper::stepParallel(e::val stepArray) { throw std::invalid_argument(error); } - std::vector playerRewards{}; + e::val playerRewards = e::val::array(); bool terminated = false; e::val info = e::val::object(); @@ -127,26 +127,27 @@ e::val JiddlyGameWrapper::stepParallel(e::val stepArray) { } for (int p = 0; p < playerSize; p++) { - playerRewards.push_back(gameProcess_->getAccumulatedRewards(p + 1)); + playerRewards.call("push", gameProcess_->getAccumulatedRewards(p + 1)); } auto js_result = e::val::object(); js_result.set("terminated", terminated); js_result.set("info", info); + js_result.set("reward", playerRewards); return js_result; } -uint32_t JiddlyGameWrapper::getWidth() const { +uint32_t GriddlyJSGameWrapper::getWidth() const { return gameProcess_->getGrid()->getWidth(); } -uint32_t JiddlyGameWrapper::getHeight() const { +uint32_t GriddlyJSGameWrapper::getHeight() const { return gameProcess_->getGrid()->getHeight(); } -e::val JiddlyGameWrapper::getState() const { +e::val GriddlyJSGameWrapper::getState() const { e::val js_state = e::val::object(); auto state = gameProcess_->getState(); @@ -189,7 +190,7 @@ e::val JiddlyGameWrapper::getState() const { return js_state; } -std::vector JiddlyGameWrapper::getGlobalVariableNames() const { +std::vector GriddlyJSGameWrapper::getGlobalVariableNames() const { std::vector globalVariableNames; auto globalVariables = gameProcess_->getGrid()->getGlobalVariables(); @@ -199,7 +200,7 @@ std::vector JiddlyGameWrapper::getGlobalVariableNames() const { return globalVariableNames; } -e::val JiddlyGameWrapper::getObjectVariableMap() const { +e::val GriddlyJSGameWrapper::getObjectVariableMap() const { auto test2 = e::val::object(); auto test = e::val::object(); test2.set("x", 5); @@ -209,7 +210,7 @@ e::val JiddlyGameWrapper::getObjectVariableMap() const { return test; } -e::val JiddlyGameWrapper::getGlobalVariables(std::vector variables) { +e::val GriddlyJSGameWrapper::getGlobalVariables(std::vector variables) { e::val js_globalVariables = e::val::object(); auto globalVariables = gameProcess_->getGrid()->getGlobalVariables(); @@ -227,14 +228,14 @@ e::val JiddlyGameWrapper::getGlobalVariables(std::vector variables) return js_globalVariables; } -std::vector JiddlyGameWrapper::getObjectNames() { +std::vector GriddlyJSGameWrapper::getObjectNames() { return gameProcess_->getGrid()->getObjectNames(); } -std::vector JiddlyGameWrapper::getObjectVariableNames() { +std::vector GriddlyJSGameWrapper::getObjectVariableNames() { return gameProcess_->getGrid()->getAllObjectVariableNames(); } -void JiddlyGameWrapper::seedRandomGenerator(uint32_t seed) { +void GriddlyJSGameWrapper::seedRandomGenerator(uint32_t seed) { gameProcess_->seedRandomGenerator(seed); } \ No newline at end of file diff --git a/js/bindings/JiddlyGameWrapper.hpp b/js/bindings/GriddlyJSGameWrapper.hpp similarity index 77% rename from js/bindings/JiddlyGameWrapper.hpp rename to js/bindings/GriddlyJSGameWrapper.hpp index 68f2c42b4..6298c040b 100644 --- a/js/bindings/JiddlyGameWrapper.hpp +++ b/js/bindings/GriddlyJSGameWrapper.hpp @@ -5,17 +5,17 @@ #include #include "../../src/Griddly/Core/TurnBasedGameProcess.hpp" -#include "JiddlyPlayerWrapper.hpp" +#include "GriddlyJSPlayerWrapper.hpp" namespace e = emscripten; -class JiddlyGameWrapper { +class GriddlyJSGameWrapper { public: - JiddlyGameWrapper(std::string globalObserverName, std::shared_ptr gdyFactory); + GriddlyJSGameWrapper(std::string globalObserverName, std::shared_ptr gdyFactory); std::shared_ptr unwrapped(); - std::shared_ptr registerPlayer(std::string playerName, std::string observerName); + std::shared_ptr registerPlayer(std::string playerName, std::string observerName); const uint32_t getActionTypeId(std::string actionName) const; @@ -57,5 +57,5 @@ class JiddlyGameWrapper { std::shared_ptr gameProcess_; const std::shared_ptr gdyFactory_; uint32_t playerCount_ = 0; - std::vector> players_; + std::vector> players_; }; \ No newline at end of file diff --git a/js/bindings/JiddlyPlayerWrapper.cpp b/js/bindings/GriddlyJSPlayerWrapper.cpp similarity index 77% rename from js/bindings/JiddlyPlayerWrapper.cpp rename to js/bindings/GriddlyJSPlayerWrapper.cpp index 3bd85bafd..dea2af787 100644 --- a/js/bindings/JiddlyPlayerWrapper.cpp +++ b/js/bindings/GriddlyJSPlayerWrapper.cpp @@ -1,14 +1,23 @@ -#include "JiddlyPlayerWrapper.hpp" +#include "GriddlyJSPlayerWrapper.hpp" +#include "GriddlyJSWrapperCommon.cpp" -JiddlyPlayerWrapper::JiddlyPlayerWrapper(int playerId, std::string playerName, std::shared_ptr observer, std::shared_ptr gdyFactory, std::shared_ptr gameProcess) +GriddlyJSPlayerWrapper::GriddlyJSPlayerWrapper(int playerId, std::string playerName, std::shared_ptr observer, std::shared_ptr gdyFactory, std::shared_ptr gameProcess) : player_(std::make_shared(griddly::Player(playerId, playerName, observer, gameProcess))), gdyFactory_(gdyFactory), gameProcess_(gameProcess) { } -std::shared_ptr JiddlyPlayerWrapper::unwrapped() { +std::shared_ptr GriddlyJSPlayerWrapper::unwrapped() { return player_; } -e::val JiddlyPlayerWrapper::stepSingle(std::string actionName, std::vector actionArray, bool updateTicks) { +e::val GriddlyJSPlayerWrapper::getObservationDescription() const { + return wrapObservationDescription(player_->getObserver()); +} + +e::val GriddlyJSPlayerWrapper::observe() { + return wrapObservation(player_->getObserver()); +} + +e::val GriddlyJSPlayerWrapper::stepSingle(std::string actionName, std::vector actionArray, bool updateTicks) { if (gameProcess_ != nullptr && !gameProcess_->isInitialized()) { throw std::invalid_argument("Cannot send player commands when game has not been initialized."); } @@ -31,7 +40,7 @@ e::val JiddlyPlayerWrapper::stepSingle(std::string actionName, std::vector JiddlyPlayerWrapper::buildAction(std::string actionName, std::vector actionArray) { +std::shared_ptr GriddlyJSPlayerWrapper::buildAction(std::string actionName, std::vector actionArray) { const auto& actionInputsDefinition = gdyFactory_->findActionInputsDefinition(actionName); auto playerAvatar = player_->getAvatar(); auto playerId = player_->getId(); diff --git a/js/bindings/JiddlyPlayerWrapper.hpp b/js/bindings/GriddlyJSPlayerWrapper.hpp similarity index 74% rename from js/bindings/JiddlyPlayerWrapper.hpp rename to js/bindings/GriddlyJSPlayerWrapper.hpp index ea3922ba0..05ad891b7 100644 --- a/js/bindings/JiddlyPlayerWrapper.hpp +++ b/js/bindings/GriddlyJSPlayerWrapper.hpp @@ -12,11 +12,13 @@ namespace e = emscripten; -class JiddlyPlayerWrapper { +class GriddlyJSPlayerWrapper { public: - JiddlyPlayerWrapper(int playerId, std::string playerName, std::shared_ptr observer, std::shared_ptr gdyFactory, std::shared_ptr gameProcess); + GriddlyJSPlayerWrapper(int playerId, std::string playerName, std::shared_ptr observer, std::shared_ptr gdyFactory, std::shared_ptr gameProcess); std::shared_ptr unwrapped(); + e::val getObservationDescription() const; + e::val observe(); e::val stepSingle(std::string actionName, std::vector actionArray, bool updateTicks); diff --git a/js/bindings/JiddlyWrapperCommon.cpp b/js/bindings/GriddlyJSWrapperCommon.cpp similarity index 93% rename from js/bindings/JiddlyWrapperCommon.cpp rename to js/bindings/GriddlyJSWrapperCommon.cpp index c0a9c8d34..b69d38264 100644 --- a/js/bindings/JiddlyWrapperCommon.cpp +++ b/js/bindings/GriddlyJSWrapperCommon.cpp @@ -119,7 +119,14 @@ inline e::val wrapObservationDescription(std::shared_ptr obse auto entityObserver = std::dynamic_pointer_cast(observer); observationDescription.set("Features", entityObserver->getEntityFeatures()); } else { - observationDescription.set("Shape", std::dynamic_pointer_cast(observer)->getShape()); + + const auto& shape = std::dynamic_pointer_cast(observer)->getShape(); + + e::val shapeVals = e::val::array(); + for (int i = 0; i < shape.size(); i++) { + shapeVals.call("push", shape[i]); + } + observationDescription.set("Shape", shapeVals); } return observationDescription; diff --git a/js/bindings/Jiddly.hpp b/js/bindings/Jiddly.hpp deleted file mode 100644 index 137758580..000000000 --- a/js/bindings/Jiddly.hpp +++ /dev/null @@ -1,89 +0,0 @@ -#include -#include - -#include "../../src/Griddly/Core/Grid.hpp" -#include "JiddlyGDYWrapper.hpp" - -namespace e = emscripten; - -class Jiddly { - public: - Jiddly(); - std::shared_ptr loadString(std::string levelString); -}; - -template -e::class_> register_unordered_map(const char* name) { - typedef std::unordered_map MapType; - - size_t (MapType::*size)() const = &MapType::size; - return e::class_(name) - .template constructor<>() - .function("size", size) - .function("get", e::internal::MapAccess::get) - .function("set", e::internal::MapAccess::set) - .function("keys", e::internal::MapAccess::keys); -} - -EMSCRIPTEN_BINDINGS(Jiddly) { - // Classes - e::class_("Jiddly") - .constructor() - .function("loadString", &Jiddly::loadString); - - e::class_("JiddlyGDYWrapper") - .smart_ptr>("JiddlyGDYWrapper") - .function("setMaxSteps", &JiddlyGDYWrapper::setMaxSteps) - .function("getPlayerCount", &JiddlyGDYWrapper::getPlayerCount) - .function("getAvatarObject", &JiddlyGDYWrapper::getAvatarObject) - .function("getExternalActionNames", &JiddlyGDYWrapper::getExternalActionNames) - .function("getLevelCount", &JiddlyGDYWrapper::getLevelCount) - .function("getObserverType", &JiddlyGDYWrapper::getObserverType) - .function("getActionInputMappings", &JiddlyGDYWrapper::getActionInputMappings) - .function("createGame", &JiddlyGDYWrapper::createGame); - - e::class_("JiddlyGameWrapper") - .smart_ptr>("JiddlyGameWrapper") - .function("getActionTypeId", &JiddlyGameWrapper::getActionTypeId) - .function("init", &JiddlyGameWrapper::init) - .function("release", &JiddlyGameWrapper::release) - .function("registerPlayer", &JiddlyGameWrapper::registerPlayer) - .function("loadLevel", &JiddlyGameWrapper::loadLevel) - .function("loadLevelString", &JiddlyGameWrapper::loadLevelString) - .function("reset", &JiddlyGameWrapper::reset) - .function("getGlobalObservationDescription", &JiddlyGameWrapper::getGlobalObservationDescription) - .function("observe", &JiddlyGameWrapper::observe) - .function("stepParallel", &JiddlyGameWrapper::stepParallel) - .function("getWidth", &JiddlyGameWrapper::getWidth) - .function("getHeight", &JiddlyGameWrapper::getHeight) - .function("getState", &JiddlyGameWrapper::getState) - .function("getGlobalVariableNames", &JiddlyGameWrapper::getGlobalVariableNames) - .function("getObjectVariableMap", &JiddlyGameWrapper::getObjectVariableMap) - .function("getGlobalVariables", &JiddlyGameWrapper::getGlobalVariables) - .function("getObjectNames", &JiddlyGameWrapper::getObjectNames) - .function("getObjectVariableNames", &JiddlyGameWrapper::getObjectVariableNames) - .function("seedRandomGenerator", &JiddlyGameWrapper::seedRandomGenerator); - - e::class_("JiddlyPlayerWrapper") - .smart_ptr>("JiddlyPlayerWrapper"); - - // Types - e::value_object("glm::ivec2") - .field("x", &glm::ivec2::x) - .field("y", &glm::ivec2::y); - - e::value_object("glm::vec2") - .field("x", &glm::vec2::x) - .field("y", &glm::vec2::y); - - e::register_vector("IntVector"); - e::register_vector("UInt32Vector"); - e::register_vector("UInt8Vector"); - e::register_vector("StringVector"); - - e::enum_("ObserverType") - .value("VECTOR", griddly::ObserverType::VECTOR) - .value("ASCII", griddly::ObserverType::ASCII) - .value("ENTITY", griddly::ObserverType::ENTITY) - .value("NONE", griddly::ObserverType::NONE); -} diff --git a/js/build.sh b/js/build.sh index 78dfd57d3..90c550e3f 100755 --- a/js/build.sh +++ b/js/build.sh @@ -6,30 +6,13 @@ if [ -z "$1" ]; then BUILD_TYPE="Debug" fi - -if [ ! -d "../build_wasm" ]; then - mkdir ../build_wasm -fi - -if [ ! -d "jiddly-app/src/wasm/" ]; then - mkdir jiddly-app/src/wasm/ -fi - -if [ ! -d "jiddly-app/public/js" ]; then - mkdir jiddly-app/public/js/ -fi - -rm jiddly-app/src/wasm/jiddly.js ../bin/jiddly.js -rm jiddly-app/public/js/jiddly.wasm ../bin/jiddly.wasm +rm griddlyjs-app/src/wasm/griddlyjs.js ../bin/griddlyjs.js +rm griddlyjs-app/public/js/griddlyjs.wasm ../bin/griddlyjs.wasm pushd ../build_wasm - emcmake cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE + emcmake cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE -B . emmake make popd -cp ../$BUILD_TYPE/bin/jiddly.js jiddly-app/src/wasm/jiddly.js -cp ../$BUILD_TYPE/bin/jiddly.wasm jiddly-app/public/js/jiddly.wasm - -cp -R ../resources/games jiddly-app/public/resources/games -cp -R ../resources/images jiddly-app/public/resources/images -cp ../resources/gdy-schema.json jiddly-app/public/resources/gdy-schema.json +cp ../$BUILD_TYPE/bin/griddlyjs.js griddlyjs-app/src/wasm/griddlyjs.js +cp ../$BUILD_TYPE/bin/griddlyjs.wasm griddlyjs-app/public/js/griddlyjs.wasm diff --git a/js/configure.sh b/js/configure.sh new file mode 100755 index 000000000..37b09d5fe --- /dev/null +++ b/js/configure.sh @@ -0,0 +1,27 @@ +if [ ! -d "../build_wasm" ]; then + mkdir ../build_wasm +fi + +if [ ! -d "griddlyjs-app/src/wasm/" ]; then + mkdir griddlyjs-app/src/wasm/ +fi + +if [ ! -d "griddlyjs-app/public/js" ]; then + mkdir griddlyjs-app/public/js/ +fi + +if [ ! -d "griddlyjs-app/public/resources" ]; then + mkdir griddlyjs-app/public/resources/ +fi + +if [ ! -d "griddlyjs-app/public/resources/games" ]; then + mkdir griddlyjs-app/public/resources/games +fi + +if [ ! -d "griddlyjs-app/public/resources/images" ]; then + mkdir griddlyjs-app/public/resources/images +fi + +cp -R ../resources/games/* griddlyjs-app/public/resources/games +cp -R ../resources/images/* griddlyjs-app/public/resources/images +cp ../resources/gdy-schema.json griddlyjs-app/public/resources/gdy-schema.json diff --git a/js/jiddly-app/.eslintrc b/js/griddlyjs-app/.eslintrc similarity index 100% rename from js/jiddly-app/.eslintrc rename to js/griddlyjs-app/.eslintrc diff --git a/js/jiddly-app/.gitignore b/js/griddlyjs-app/.gitignore similarity index 100% rename from js/jiddly-app/.gitignore rename to js/griddlyjs-app/.gitignore diff --git a/js/griddlyjs-app/favicon.ico b/js/griddlyjs-app/favicon.ico new file mode 100644 index 000000000..6db23a410 Binary files /dev/null and b/js/griddlyjs-app/favicon.ico differ diff --git a/js/jiddly-app/package-lock.json b/js/griddlyjs-app/package-lock.json similarity index 69% rename from js/jiddly-app/package-lock.json rename to js/griddlyjs-app/package-lock.json index 4046217ee..84fea6278 100644 --- a/js/jiddly-app/package-lock.json +++ b/js/griddlyjs-app/package-lock.json @@ -1,19 +1,21 @@ { - "name": "jiddly-app", - "version": "1.3.6", + "name": "griddlyjs-app", + "version": "1.4.0", "lockfileVersion": 2, "requires": true, "packages": { "": { - "name": "jiddly-app", - "version": "1.3.6", + "name": "griddlyjs-app", + "version": "1.4.0", "dependencies": { "@fortawesome/fontawesome-svg-core": "^6.1.1", + "@fortawesome/free-brands-svg-icons": "^6.1.1", "@fortawesome/free-solid-svg-icons": "^6.1.1", "@fortawesome/react-fontawesome": "^0.1.18", "@monaco-editor/react": "^4.4.2", + "@tensorflow/tfjs": "^3.18.0", "@testing-library/jest-dom": "^5.16.3", - "@testing-library/react": "^12.1.4", + "@testing-library/react": "^13.0.1", "@testing-library/user-event": "^13.5.0", "bootstrap": "^5.1.3", "bootswatch": "^5.1.3", @@ -28,36 +30,19 @@ } }, "node_modules/@ampproject/remapping": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", - "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "version": "2.2.0", + "license": "Apache-2.0", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.0" + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { "node": ">=6.0.0" } }, - "node_modules/@apideck/better-ajv-errors": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.3.tgz", - "integrity": "sha512-9o+HO2MbJhJHjDYZaDxJmSDckvDpiuItEsrIShV0DXeCshXWRHhqYyU/PKHMkuClOmFnZhRd6wzv4vpDu/dRKg==", - "dependencies": { - "json-schema": "^0.4.0", - "jsonpointer": "^5.0.0", - "leven": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "ajv": ">=8" - } - }, "node_modules/@babel/code-frame": { "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "license": "MIT", "dependencies": { "@babel/highlight": "^7.16.7" }, @@ -66,32 +51,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", - "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", + "version": "7.18.5", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz", - "integrity": "sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==", + "version": "7.18.5", + "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.7", - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helpers": "^7.17.8", - "@babel/parser": "^7.17.8", + "@babel/generator": "^7.18.2", + "@babel/helper-compilation-targets": "^7.18.2", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helpers": "^7.18.2", + "@babel/parser": "^7.18.5", "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0", + "@babel/traverse": "^7.18.5", + "@babel/types": "^7.18.4", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", + "json5": "^2.2.1", "semver": "^6.3.0" }, "engines": { @@ -102,18 +85,10 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/eslint-parser": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz", - "integrity": "sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.18.2.tgz", + "integrity": "sha512-oFQYkE8SuH14+uR51JVAmdqwKYXGRjEXx7s+WiagVjqQ+HPE+nnwyF2qlVG8evUsUHmPcA+6YXMEDbIhEyQc5A==", "dependencies": { "eslint-scope": "^5.1.1", "eslint-visitor-keys": "^2.1.0", @@ -155,27 +130,30 @@ "node": ">=4.0" } }, - "node_modules/@babel/eslint-parser/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/generator": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", - "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", + "version": "7.18.2", + "license": "MIT", "dependencies": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" + "@babel/types": "^7.18.2", + "@jridgewell/gen-mapping": "^0.3.0", + "jsesc": "^2.5.1" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.1", + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@babel/helper-annotate-as-pure": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", @@ -200,13 +178,12 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", - "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", + "version": "7.18.2", + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.17.7", + "@babel/compat-data": "^7.17.10", "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", + "browserslist": "^4.20.2", "semver": "^6.3.0" }, "engines": { @@ -216,23 +193,15 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz", - "integrity": "sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz", + "integrity": "sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.16.7", "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-member-expression-to-functions": "^7.17.7", "@babel/helper-optimise-call-expression": "^7.16.7", "@babel/helper-replace-supers": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7" @@ -245,9 +214,9 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", - "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.12.tgz", + "integrity": "sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.16.7", "regexpu-core": "^5.0.1" @@ -277,21 +246,9 @@ "@babel/core": "^7.4.0-0" } }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "dependencies": { - "@babel/types": "^7.16.7" - }, + "version": "7.18.2", + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -308,24 +265,11 @@ } }, "node_modules/@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "version": "7.17.9", + "license": "MIT", "dependencies": { - "@babel/helper-get-function-arity": "^7.16.7", "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.17.0" }, "engines": { "node": ">=6.9.0" @@ -333,8 +277,7 @@ }, "node_modules/@babel/helper-hoist-variables": { "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "license": "MIT", "dependencies": { "@babel/types": "^7.16.7" }, @@ -355,8 +298,7 @@ }, "node_modules/@babel/helper-module-imports": { "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "license": "MIT", "dependencies": { "@babel/types": "^7.16.7" }, @@ -365,9 +307,8 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", - "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", + "version": "7.18.0", + "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.16.7", "@babel/helper-module-imports": "^7.16.7", @@ -375,8 +316,8 @@ "@babel/helper-split-export-declaration": "^7.16.7", "@babel/helper-validator-identifier": "^7.16.7", "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" + "@babel/traverse": "^7.18.0", + "@babel/types": "^7.18.0" }, "engines": { "node": ">=6.9.0" @@ -394,9 +335,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", "engines": { "node": ">=6.9.0" } @@ -415,26 +356,25 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.2.tgz", + "integrity": "sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q==", "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-member-expression-to-functions": "^7.17.7", "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", - "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", + "version": "7.18.2", + "license": "MIT", "dependencies": { - "@babel/types": "^7.17.0" + "@babel/types": "^7.18.2" }, "engines": { "node": ">=6.9.0" @@ -453,8 +393,7 @@ }, "node_modules/@babel/helper-split-export-declaration": { "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "license": "MIT", "dependencies": { "@babel/types": "^7.16.7" }, @@ -464,16 +403,14 @@ }, "node_modules/@babel/helper-validator-identifier": { "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -493,22 +430,20 @@ } }, "node_modules/@babel/helpers": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.8.tgz", - "integrity": "sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==", + "version": "7.18.2", + "license": "MIT", "dependencies": { "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "version": "7.17.12", + "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.16.7", "chalk": "^2.0.0", @@ -518,10 +453,59 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "license": "MIT" + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/parser": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz", - "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==", + "version": "7.18.5", + "license": "MIT", "bin": { "parser": "bin/babel-parser.js" }, @@ -530,11 +514,11 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", - "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz", + "integrity": "sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -544,13 +528,13 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", - "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12.tgz", + "integrity": "sha512-/vt0hpIw0x4b6BLKUkwlvEoiGZYYLNZ96CzyHYPbtG2jZGz6LBe7/V+drYrc/d+ovrF9NBi0pmtvmNb/FsWtRQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.7" + "@babel/plugin-proposal-optional-chaining": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -560,11 +544,11 @@ } }, "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.17.12.tgz", + "integrity": "sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-remap-async-to-generator": "^7.16.8", "@babel/plugin-syntax-async-generators": "^7.8.4" }, @@ -576,12 +560,12 @@ } }, "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.17.12.tgz", + "integrity": "sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -591,12 +575,12 @@ } }, "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz", - "integrity": "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.0.tgz", + "integrity": "sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.17.6", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, "engines": { @@ -607,14 +591,15 @@ } }, "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.8.tgz", - "integrity": "sha512-U69odN4Umyyx1xO1rTII0IDkAEC+RNlcKXtqOblfpzqy1C+aOplb76BQNq0+XdpVkOaPlpEDwd++joY8FNFJKA==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.18.2.tgz", + "integrity": "sha512-kbDISufFOxeczi0v4NQP3p5kIeW6izn/6klfWBrIIdGZZe4UpHR+QU03FAoWjGGd9SUXAwbw2pup1kaL4OQsJQ==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.17.6", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/plugin-syntax-decorators": "^7.17.0", + "@babel/helper-create-class-features-plugin": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-replace-supers": "^7.18.2", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/plugin-syntax-decorators": "^7.17.12", "charcodes": "^0.2.0" }, "engines": { @@ -640,11 +625,11 @@ } }, "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", - "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.17.12.tgz", + "integrity": "sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { @@ -655,11 +640,11 @@ } }, "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", - "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.17.12.tgz", + "integrity": "sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { @@ -670,11 +655,11 @@ } }, "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", - "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.17.12.tgz", + "integrity": "sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { @@ -685,11 +670,11 @@ } }, "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", - "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.17.12.tgz", + "integrity": "sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, "engines": { @@ -715,15 +700,15 @@ } }, "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", - "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.0.tgz", + "integrity": "sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw==", "dependencies": { - "@babel/compat-data": "^7.17.0", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/compat-data": "^7.17.10", + "@babel/helper-compilation-targets": "^7.17.10", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" + "@babel/plugin-transform-parameters": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -748,11 +733,11 @@ } }, "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", - "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz", + "integrity": "sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, @@ -764,12 +749,12 @@ } }, "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", - "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.17.12.tgz", + "integrity": "sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.10", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -779,13 +764,13 @@ } }, "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", - "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz", + "integrity": "sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { @@ -796,12 +781,12 @@ } }, "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", - "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.17.12.tgz", + "integrity": "sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=4" @@ -858,11 +843,11 @@ } }, "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz", - "integrity": "sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.12.tgz", + "integrity": "sha512-D1Hz0qtGTza8K2xGyEdVNCYLdVHukAcbQr4K3/s6r/esadyEriZovpJimQOpu8ju4/jV8dW/1xdaE0UpDroidw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -894,11 +879,25 @@ } }, "node_modules/@babel/plugin-syntax-flow": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.7.tgz", - "integrity": "sha512-UDo3YGQO0jH6ytzVwgSLv9i/CzMcUjbKenL67dTrAZPPv6GFAtDhe6jqnvmoKzC/7htNTohhos+onPtDMqJwaQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.17.12.tgz", + "integrity": "sha512-B8QIgBvkIG6G2jgsOHQUist7Sm0EBLDCx8sen072IwqNuzMegZNXrYnSv77cYzA8mLDZAfQYqsLIhimiP1s2HQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.17.12.tgz", + "integrity": "sha512-n/loy2zkq9ZEM8tEOwON9wTQSTNDTDEz6NujPtJGLU7qObzT1N4c4YZZf8E6ATB2AjNQg/Ib2AIpO03EZaCehw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -930,11 +929,11 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", - "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.17.12.tgz", + "integrity": "sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1038,11 +1037,11 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz", - "integrity": "sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.12.tgz", + "integrity": "sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1052,11 +1051,11 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", - "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.17.12.tgz", + "integrity": "sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1066,12 +1065,12 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.17.12.tgz", + "integrity": "sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ==", "dependencies": { "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-remap-async-to-generator": "^7.16.8" }, "engines": { @@ -1096,11 +1095,11 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", - "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.4.tgz", + "integrity": "sha512-+Hq10ye+jlvLEogSOtq4mKvtk7qwcUQ1f0Mrueai866C82f844Yom2cttfJdMdqRLTxWpsbfbkIkOIfovyUQXw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1110,16 +1109,16 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", - "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.4.tgz", + "integrity": "sha512-e42NSG2mlKWgxKUAD9EJJSkZxR67+wZqzNxLSpc51T8tRU5SLFHsPmgYR5yr7sdgX4u+iHA1C5VafJ6AyImV3A==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-function-name": "^7.17.9", "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-replace-supers": "^7.18.2", "@babel/helper-split-export-declaration": "^7.16.7", "globals": "^11.1.0" }, @@ -1131,11 +1130,11 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", - "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.17.12.tgz", + "integrity": "sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1145,11 +1144,11 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz", - "integrity": "sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.0.tgz", + "integrity": "sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1174,11 +1173,11 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", - "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.17.12.tgz", + "integrity": "sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1203,12 +1202,12 @@ } }, "node_modules/@babel/plugin-transform-flow-strip-types": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz", - "integrity": "sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.17.12.tgz", + "integrity": "sha512-g8cSNt+cHCpG/uunPQELdq/TeV3eg1OLJYwxypwHtAWo9+nErH3lQx9CSO2uI9lF74A0mR0t4KoMjs1snSgnTw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-flow": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-flow": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1218,11 +1217,11 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", - "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", + "version": "7.18.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz", + "integrity": "sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1248,11 +1247,11 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", - "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.17.12.tgz", + "integrity": "sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1276,12 +1275,12 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", - "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.0.tgz", + "integrity": "sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA==", "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", "babel-plugin-dynamic-import-node": "^2.3.3" }, "engines": { @@ -1292,13 +1291,13 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.7.tgz", - "integrity": "sha512-ITPmR2V7MqioMJyrxUo2onHNC3e+MvfFiFIR0RP21d3PtlVb6sfzoxNKiphSZUOM9hEIdzCcZe83ieX3yoqjUA==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.2.tgz", + "integrity": "sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==", "dependencies": { - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-simple-access": "^7.18.2", "babel-plugin-dynamic-import-node": "^2.3.3" }, "engines": { @@ -1309,13 +1308,13 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz", - "integrity": "sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw==", + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.5.tgz", + "integrity": "sha512-SEewrhPpcqMF1V7DhnEbhVJLrC+nnYfe1E0piZMZXBpxi9WvZqWGwpsk7JYP7wPWeqaBh4gyKlBhHJu3uz5g4Q==", "dependencies": { "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-validator-identifier": "^7.16.7", "babel-plugin-dynamic-import-node": "^2.3.3" }, @@ -1327,12 +1326,12 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", - "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.0.tgz", + "integrity": "sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==", "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1342,11 +1341,12 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", - "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.12.tgz", + "integrity": "sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1356,11 +1356,11 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", - "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.5.tgz", + "integrity": "sha512-TuRL5uGW4KXU6OsRj+mLp9BM7pO8e7SGNTEokQRRxHFkXYMFiy2jlKSZPFtI/mKORDzciH+hneskcSOp0gU8hg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1385,11 +1385,11 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", - "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.17.12.tgz", + "integrity": "sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1413,11 +1413,11 @@ } }, "node_modules/@babel/plugin-transform-react-constant-elements": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.17.6.tgz", - "integrity": "sha512-OBv9VkyyKtsHZiHLoSfCn+h6yU7YKX8nrs32xUmOa1SRSk+t03FosB6fBZ0Yz4BpD1WV7l73Nsad+2Tz7APpqw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.17.12.tgz", + "integrity": "sha512-maEkX2xs2STuv2Px8QuqxqjhV2LsFobT1elCgyU5704fcyTu9DyD/bJXxD/mrRiVyhpHweOQ00OJ5FKhHq9oEw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1441,15 +1441,15 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.3.tgz", - "integrity": "sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.12.tgz", + "integrity": "sha512-Lcaw8bxd1DKht3thfD4A12dqo1X16he1Lm8rIv8sTwjAYNInRS1qHa9aJoqvzpscItXvftKDCfaEQzwoVyXpEQ==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.16.7", "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-jsx": "^7.16.7", - "@babel/types": "^7.17.0" + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-jsx": "^7.17.12", + "@babel/types": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1473,12 +1473,12 @@ } }, "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz", - "integrity": "sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.0.tgz", + "integrity": "sha512-6+0IK6ouvqDn9bmEG7mEyF/pwlJXVj5lwydybpyyH3D0A7Hftk+NCTdYjnLNZksn261xaOV5ksmp20pQEmc2RQ==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1488,11 +1488,12 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", - "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.0.tgz", + "integrity": "sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw==", "dependencies": { - "regenerator-transform": "^0.14.2" + "@babel/helper-plugin-utils": "^7.17.12", + "regenerator-transform": "^0.15.0" }, "engines": { "node": ">=6.9.0" @@ -1502,11 +1503,11 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", - "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.17.12.tgz", + "integrity": "sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1516,12 +1517,12 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz", - "integrity": "sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A==", + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.5.tgz", + "integrity": "sha512-Q17hHxXr2fplrE+5BSC1j1Fo5cOA8YeP8XW3/1paI8MzF/faZGh0MaH1KC4jLAvqLPamQWHB5/B7KqSLY1kuHA==", "dependencies": { "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "babel-plugin-polyfill-corejs2": "^0.3.0", "babel-plugin-polyfill-corejs3": "^0.5.0", "babel-plugin-polyfill-regenerator": "^0.3.0", @@ -1534,14 +1535,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/plugin-transform-shorthand-properties": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", @@ -1557,11 +1550,11 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", - "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.17.12.tgz", + "integrity": "sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" }, "engines": { @@ -1586,11 +1579,11 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", - "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.2.tgz", + "integrity": "sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1600,11 +1593,11 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", - "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.17.12.tgz", + "integrity": "sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1614,13 +1607,13 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz", - "integrity": "sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==", + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.4.tgz", + "integrity": "sha512-l4vHuSLUajptpHNEOUDEGsnpl9pfRLsN1XUoDQDD/YBuXTM+v37SHGS+c6n4jdcZy96QtuUuSvZYMLSSsjH8Mw==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-typescript": "^7.16.7" + "@babel/helper-create-class-features-plugin": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-typescript": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1659,36 +1652,37 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", - "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.2.tgz", + "integrity": "sha512-PfpdxotV6afmXMU47S08F9ZKIm2bJIQ0YbAAtDfIENX7G1NUAXigLREh69CWDjtgUy7dYn7bsMzkgdtAlmS68Q==", "dependencies": { - "@babel/compat-data": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/compat-data": "^7.17.10", + "@babel/helper-compilation-targets": "^7.18.2", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.16.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.17.12", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.17.12", + "@babel/plugin-proposal-async-generator-functions": "^7.17.12", + "@babel/plugin-proposal-class-properties": "^7.17.12", + "@babel/plugin-proposal-class-static-block": "^7.18.0", "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.17.12", + "@babel/plugin-proposal-json-strings": "^7.17.12", + "@babel/plugin-proposal-logical-assignment-operators": "^7.17.12", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.17.12", "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.16.7", + "@babel/plugin-proposal-object-rest-spread": "^7.18.0", "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.17.12", + "@babel/plugin-proposal-private-methods": "^7.17.12", + "@babel/plugin-proposal-private-property-in-object": "^7.17.12", + "@babel/plugin-proposal-unicode-property-regex": "^7.17.12", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.17.12", "@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", @@ -1698,44 +1692,44 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", + "@babel/plugin-transform-arrow-functions": "^7.17.12", + "@babel/plugin-transform-async-to-generator": "^7.17.12", "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.16.7", + "@babel/plugin-transform-block-scoping": "^7.17.12", + "@babel/plugin-transform-classes": "^7.17.12", + "@babel/plugin-transform-computed-properties": "^7.17.12", + "@babel/plugin-transform-destructuring": "^7.18.0", "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.17.12", "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.18.1", "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", + "@babel/plugin-transform-literals": "^7.17.12", "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.16.8", - "@babel/plugin-transform-modules-systemjs": "^7.16.7", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", - "@babel/plugin-transform-new-target": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.18.0", + "@babel/plugin-transform-modules-commonjs": "^7.18.2", + "@babel/plugin-transform-modules-systemjs": "^7.18.0", + "@babel/plugin-transform-modules-umd": "^7.18.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.17.12", + "@babel/plugin-transform-new-target": "^7.17.12", "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.17.12", "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-reserved-words": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.18.0", + "@babel/plugin-transform-reserved-words": "^7.17.12", "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", + "@babel/plugin-transform-spread": "^7.17.12", "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.18.2", + "@babel/plugin-transform-typeof-symbol": "^7.17.12", "@babel/plugin-transform-unicode-escapes": "^7.16.7", "@babel/plugin-transform-unicode-regex": "^7.16.7", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.8", + "@babel/types": "^7.18.2", "babel-plugin-polyfill-corejs2": "^0.3.0", "babel-plugin-polyfill-corejs3": "^0.5.0", "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.20.2", + "core-js-compat": "^3.22.1", "semver": "^6.3.0" }, "engines": { @@ -1745,14 +1739,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/preset-modules": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", @@ -1769,14 +1755,14 @@ } }, "node_modules/@babel/preset-react": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz", - "integrity": "sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.17.12.tgz", + "integrity": "sha512-h5U+rwreXtZaRBEQhW1hOJLMq8XNJBQ/9oymXiCXTuT/0uOwpbT0gUt+sXeOqoXBgNuUKI7TaObVwoEyWkpFgA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-validator-option": "^7.16.7", "@babel/plugin-transform-react-display-name": "^7.16.7", - "@babel/plugin-transform-react-jsx": "^7.16.7", + "@babel/plugin-transform-react-jsx": "^7.17.12", "@babel/plugin-transform-react-jsx-development": "^7.16.7", "@babel/plugin-transform-react-pure-annotations": "^7.16.7" }, @@ -1788,13 +1774,13 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz", - "integrity": "sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.17.12.tgz", + "integrity": "sha512-S1ViF8W2QwAKUGJXxP9NAfNaqGDdEBJKpYkxHf5Yy2C4NPPzXGeR3Lhk7G8xJaaLcFTRfNjVbtbVtm8Gb0mqvg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-typescript": "^7.16.7" + "@babel/plugin-transform-typescript": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1804,9 +1790,8 @@ } }, "node_modules/@babel/runtime": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.8.tgz", - "integrity": "sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==", + "version": "7.18.3", + "license": "MIT", "dependencies": { "regenerator-runtime": "^0.13.4" }, @@ -1815,9 +1800,9 @@ } }, "node_modules/@babel/runtime-corejs3": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.8.tgz", - "integrity": "sha512-ZbYSUvoSF6dXZmMl/CYTMOvzIFnbGfv4W3SEHYgMvNsFTeLaF2gkGAF4K2ddmtSK4Emej+0aYcnSC6N5dPCXUQ==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.18.3.tgz", + "integrity": "sha512-l4ddFwrc9rnR+EJsHsh+TJ4A35YqQz/UqcjtlX2ov53hlJYG5CxtQmNZxyajwDVmCxwy++rtvGU5HazCK4W41Q==", "dependencies": { "core-js-pure": "^3.20.2", "regenerator-runtime": "^0.13.4" @@ -1828,8 +1813,7 @@ }, "node_modules/@babel/template": { "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.16.7", "@babel/parser": "^7.16.7", @@ -1840,18 +1824,17 @@ } }, "node_modules/@babel/traverse": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", - "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", + "version": "7.18.5", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", + "@babel/generator": "^7.18.2", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-function-name": "^7.17.9", "@babel/helper-hoist-variables": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.3", - "@babel/types": "^7.17.0", + "@babel/parser": "^7.18.5", + "@babel/types": "^7.18.4", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1860,9 +1843,8 @@ } }, "node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "version": "7.18.4", + "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.16.7", "to-fast-properties": "^2.0.0" @@ -1881,10 +1863,29 @@ "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz", "integrity": "sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg==" }, - "node_modules/@csstools/postcss-color-function": { + "node_modules/@csstools/postcss-cascade-layers": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.0.3.tgz", - "integrity": "sha512-J26I69pT2B3MYiLY/uzCGKVJyMYVg9TCpXkWsRlt+Yfq+nELUEm72QXIMYXs4xA9cJA4Oqs2EylrfokKl3mJEQ==", + "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.0.3.tgz", + "integrity": "sha512-fvXP0+dcllGtRKAjA5n5tBr57xWQalKky09hSiXAZ9qqjHn0sDuQV2Jz0Y5zHRQ6iGrAjJZOf2+xQj3yuXfLwA==", + "dependencies": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/@csstools/postcss-color-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.0.tgz", + "integrity": "sha512-5D5ND/mZWcQoSfYnSPsXtuiFxhzmhxt6pcjrFLJyldj+p0ZN2vvRpYNX+lahFTtMhAYOa2WmkdGINr0yP0CvGA==", "dependencies": { "@csstools/postcss-progressive-custom-properties": "^1.1.0", "postcss-value-parser": "^4.2.0" @@ -1892,6 +1893,10 @@ "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { "postcss": "^8.4" } @@ -1911,17 +1916,21 @@ } }, "node_modules/@csstools/postcss-hwb-function": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.0.tgz", - "integrity": "sha512-VSTd7hGjmde4rTj1rR30sokY3ONJph1reCBTUXqeW1fKwETPy1x4t/XIeaaqbMbC5Xg4SM/lyXZ2S8NELT2TaA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.1.tgz", + "integrity": "sha512-AMZwWyHbbNLBsDADWmoXT9A5yl5dsGEBeJSJRUJt8Y9n8Ziu7Wstt4MC8jtPW7xjcLecyfJwtnUTNSmOzcnWeg==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { - "postcss": "^8.3" + "postcss": "^8.4" } }, "node_modules/@csstools/postcss-ic-unit": { @@ -1940,17 +1949,22 @@ } }, "node_modules/@csstools/postcss-is-pseudo-class": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.1.tgz", - "integrity": "sha512-Og5RrTzwFhrKoA79c3MLkfrIBYmwuf/X83s+JQtz/Dkk/MpsaKtqHV1OOzYkogQ+tj3oYp5Mq39XotBXNqVc3Q==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.5.tgz", + "integrity": "sha512-Ek+UFI4UP2hB9u0N1cJd6KgSF1rL0J3PT4is0oSStuus8+WzbGGPyJNMOKQ0w/tyPjxiCnOI4RdSMZt3nks64g==", "dependencies": { - "postcss-selector-parser": "^6.0.9" + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" }, "engines": { "node": "^12 || ^14 || >=16" }, - "peerDependencies": { - "postcss": "^8.4" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" } }, "node_modules/@csstools/postcss-normalize-display-values": { @@ -1968,9 +1982,9 @@ } }, "node_modules/@csstools/postcss-oklab-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.0.2.tgz", - "integrity": "sha512-QwhWesEkMlp4narAwUi6pgc6kcooh8cC7zfxa9LSQNYXqzcdNUtNBzbGc5nuyAVreb7uf5Ox4qH1vYT3GA1wOg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.0.tgz", + "integrity": "sha512-e/Q5HopQzmnQgqimG9v3w2IG4VRABsBq3itOcn4bnm+j4enTgQZ0nWsaH/m9GV2otWGQ0nwccYL5vmLKyvP1ww==", "dependencies": { "@csstools/postcss-progressive-custom-properties": "^1.1.0", "postcss-value-parser": "^4.2.0" @@ -1978,6 +1992,10 @@ "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { "postcss": "^8.4" } @@ -1996,19 +2014,86 @@ "postcss": "^8.3" } }, + "node_modules/@csstools/postcss-stepped-value-functions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.0.tgz", + "integrity": "sha512-q8c4bs1GumAiRenmFjASBcWSLKrbzHzWl6C2HcaAxAXIiL2rUlUWbqQZUjwVG5tied0rld19j/Mm90K3qI26vw==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/@csstools/postcss-trigonometric-functions": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.1.tgz", + "integrity": "sha512-G78CY/+GePc6dDCTUbwI6TTFQ5fs3N9POHhI6v0QzteGpf6ylARiJUNz9HrRKi4eVYBNXjae1W2766iUEFxHlw==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-unset-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.1.tgz", + "integrity": "sha512-f1G1WGDXEU/RN1TWAxBPQgQudtLnLQPyiWdtypkPC+mVYNKFKH/HYXSxH4MVNqwF8M0eDsoiU7HumJHCg/L/jg==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.1.tgz", + "integrity": "sha512-aG20vknL4/YjQF9BSV7ts4EWm/yrjagAN7OWBNmlbEOUiu0llj4OGrFoOKK3g2vey4/p2omKCoHrWtPxSwV3HA==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3", + "postcss-selector-parser": "^6.0.10" + } + }, "node_modules/@eslint/eslintrc": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", - "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.3.1", - "globals": "^13.9.0", + "espree": "^9.3.2", + "globals": "^13.15.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, "engines": { @@ -2016,9 +2101,9 @@ } }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", - "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", "dependencies": { "type-fest": "^0.20.2" }, @@ -2029,19 +2114,40 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@fortawesome/fontawesome-common-types": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.1.1.tgz", - "integrity": "sha512-wVn5WJPirFTnzN6tR95abCx+ocH+3IFLXAgyavnf9hUmN0CfWoDjPT/BAWsUVwSlYYVBeCLJxaqi7ZGe4uSjBA==", "hasInstallScript": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/@fortawesome/fontawesome-svg-core": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.1.1.tgz", - "integrity": "sha512-NCg0w2YIp81f4V6cMGD9iomfsIj7GWrqmsa0ZsPh59G7PKiGN1KymZNxmF00ssuAlo/VZmpK6xazsGOwzKYUMg==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@fortawesome/fontawesome-common-types": "6.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/free-brands-svg-icons": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.1.1.tgz", + "integrity": "sha512-mFbI/czjBZ+paUtw5NPr2IXjun5KAC8eFqh1hnxowjA4mMZxWz4GCIksq6j9ZSa6Uxj9JhjjDVEd77p2LN2Blg==", "hasInstallScript": true, "dependencies": { "@fortawesome/fontawesome-common-types": "6.1.1" @@ -2052,9 +2158,8 @@ }, "node_modules/@fortawesome/free-solid-svg-icons": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.1.1.tgz", - "integrity": "sha512-0/5exxavOhI/D4Ovm2r3vxNojGZioPwmFrKg0ZUH69Q68uFhFPs6+dhAToh6VEQBntxPRYPuT5Cg1tpNa9JUPg==", "hasInstallScript": true, + "license": "(CC-BY-4.0 AND MIT)", "dependencies": { "@fortawesome/fontawesome-common-types": "6.1.1" }, @@ -2064,8 +2169,7 @@ }, "node_modules/@fortawesome/react-fontawesome": { "version": "0.1.18", - "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.1.18.tgz", - "integrity": "sha512-RwLIB4TZw0M9gvy5u+TusAA0afbwM4JQIimNH/j3ygd6aIvYPQLqXMhC9ErY26J23rDPyDZldIfPq/HpTTJ/tQ==", + "license": "MIT", "dependencies": { "prop-types": "^15.8.1" }, @@ -2107,14 +2211,6 @@ "node": ">=8" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", @@ -2183,14 +2279,6 @@ "node": ">=8" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "engines": { - "node": ">=8" - } - }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", @@ -2215,70 +2303,6 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/@jest/console/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/console/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/console/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/console/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/@jest/console/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@jest/core": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", @@ -2325,70 +2349,6 @@ } } }, - "node_modules/@jest/core/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/core/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/core/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/core/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/@jest/core/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@jest/environment": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", @@ -2475,76 +2435,14 @@ } } }, - "node_modules/@jest/reporters/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/reporters/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/reporters/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/reporters/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/@jest/reporters/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/reporters/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/reporters/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/@jest/schemas": { + "version": "28.0.2", + "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "@sinclair/typebox": "^0.23.3" }, "engines": { - "node": ">=8" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, "node_modules/@jest/source-map": { @@ -2560,14 +2458,6 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/@jest/source-map/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@jest/test-result": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", @@ -2621,183 +2511,88 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/@jest/transform/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", "dependencies": { - "color-convert": "^2.0.1" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/@jest/transform/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/transform/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/transform/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/@jest/transform/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/transform/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/transform/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=6.0.0" } }, - "node_modules/@jest/types/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.0.7", + "license": "MIT", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=6.0.0" } }, - "node_modules/@jest/types/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.1", + "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=6.0.0" } }, - "node_modules/@jest/types/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/types/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/@jest/types/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" } }, - "node_modules/@jest/types/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", + "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", "dependencies": { - "has-flag": "^4.0.0" + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", - "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", - "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==" + "version": "1.4.13", + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", - "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", + "version": "0.3.13", + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" + }, "node_modules/@monaco-editor/loader": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@monaco-editor/loader/-/loader-1.3.0.tgz", - "integrity": "sha512-N3mGq1ktC3zh7WUx3NGO+PSDdNq9Vspk/41rEmRdrCqV9vNbBTRzAOplmUpNQsi+hmTs++ERMBobMERb8Kb+3g==", + "version": "1.3.2", + "license": "MIT", "dependencies": { "state-local": "^1.0.6" }, @@ -2806,11 +2601,10 @@ } }, "node_modules/@monaco-editor/react": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/@monaco-editor/react/-/react-4.4.2.tgz", - "integrity": "sha512-QwQKkP5zXK8oA6uMpZcyQqYKQbMFUIE1Z9gPhYajk4qXdt/kGCu3RvO9SGKGlS9MSciCyd3WjEksVMDoyxQk4w==", + "version": "4.4.5", + "license": "MIT", "dependencies": { - "@monaco-editor/loader": "^1.3.0", + "@monaco-editor/loader": "^1.3.2", "prop-types": "^15.7.2" }, "peerDependencies": { @@ -2852,9 +2646,9 @@ } }, "node_modules/@pmmmwh/react-refresh-webpack-plugin": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.4.tgz", - "integrity": "sha512-zZbZeHQDnoTlt2AF+diQT0wsSXpvWiaIOZwBRdltNFhG1+I3ozyaw7U/nBiUwyJ0D+zwdXp0E3bWOl38Ag2BMw==", + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.7.tgz", + "integrity": "sha512-bcKCAzF0DV2IIROp9ZHkRJa6O4jy7NlnHdWL3GmcUxYWNjLXkK5kfELELwEfSP5hXPfVL/qOGMAROuMQb9GG8Q==", "dependencies": { "ansi-html-community": "^0.0.8", "common-path-prefix": "^3.0.0", @@ -2901,26 +2695,34 @@ } }, "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "engines": { "node": ">= 8" } }, "node_modules/@popperjs/core": { "version": "2.11.5", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz", - "integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/popperjs" } }, + "node_modules/@react-aria/ssr": { + "version": "3.2.0", + "license": "Apache-2.0", + "dependencies": { + "@babel/runtime": "^7.6.2" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, "node_modules/@restart/hooks": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.6.tgz", - "integrity": "sha512-FzpEzy6QeLB3OpUrC9OQD/lWCluQmilLfRGa/DqbB6OmV05AEt/0Lgn3Jf6l27UIJMK0qFmNcps6p8DNLXa6Pw==", + "version": "0.4.7", + "license": "MIT", "dependencies": { "dequal": "^2.0.2" }, @@ -2930,8 +2732,7 @@ }, "node_modules/@restart/ui": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@restart/ui/-/ui-1.2.0.tgz", - "integrity": "sha512-oIh2t3tG8drZtZ9SlaV5CY6wGsUViHk8ZajjhcI+74IQHyWy+AnxDv8rJR5wVgsgcgrPBUvGNkC1AEdcGNPaLQ==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.16", "@popperjs/core": "^2.10.1", @@ -2948,17 +2749,6 @@ "react-dom": ">=16.14.0" } }, - "node_modules/@restart/ui/node_modules/@react-aria/ssr": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.1.2.tgz", - "integrity": "sha512-amXY11ImpokvkTMeKRHjsSsG7v1yzzs6yeqArCyBIk60J3Yhgxwx9Cah+Uu/804ATFwqzN22AXIo7SdtIaMP+g==", - "dependencies": { - "@babel/runtime": "^7.6.2" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1" - } - }, "node_modules/@rollup/plugin-babel": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", @@ -3034,9 +2824,13 @@ "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" }, "node_modules/@rushstack/eslint-patch": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.1.tgz", - "integrity": "sha512-BUyKJGdDWqvWC5GEhyOiUrGNi9iJUr4CU0O2WxJL6QJhHeeA/NVBalH+FeK0r/x/W0rPymXt5s78TDS7d6lCwg==" + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.3.tgz", + "integrity": "sha512-WiBSI6JBIhC6LRIsB2Kwh8DsGTlbBU+mLRxJmAe3LjHTdkDpwIbEOZgoXBbZilk/vlfjK8i6nKRAvIRn1XaIMw==" + }, + "node_modules/@sinclair/typebox": { + "version": "0.23.5", + "license": "MIT" }, "node_modules/@sinonjs/commons": { "version": "1.8.3", @@ -3272,100 +3066,143 @@ "url": "https://github.com/sponsors/gregberge" } }, - "node_modules/@testing-library/dom": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.12.0.tgz", - "integrity": "sha512-rBrJk5WjI02X1edtiUcZhgyhgBhiut96r5Jp8J5qktKdcvLcZpKDW8i2hkGMMItxrghjXuQ5AM6aE0imnFawaw==", + "node_modules/@tensorflow/tfjs": { + "version": "3.18.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs/-/tfjs-3.18.0.tgz", + "integrity": "sha512-mOzz4jJdgIpqFS7EHndVuxrQnLUDVIKGyTqOPTYps89fZwcOFfTVxi4BHemDNQpqlVE8IaGh9UUxVXpjgPY5+Q==", "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^4.2.0", - "aria-query": "^5.0.0", + "@tensorflow/tfjs-backend-cpu": "3.18.0", + "@tensorflow/tfjs-backend-webgl": "3.18.0", + "@tensorflow/tfjs-converter": "3.18.0", + "@tensorflow/tfjs-core": "3.18.0", + "@tensorflow/tfjs-data": "3.18.0", + "@tensorflow/tfjs-layers": "3.18.0", + "argparse": "^1.0.10", "chalk": "^4.1.0", - "dom-accessibility-api": "^0.5.9", - "lz-string": "^1.4.4", - "pretty-format": "^27.0.2" + "core-js": "3", + "regenerator-runtime": "^0.13.5", + "yargs": "^16.0.3" }, - "engines": { - "node": ">=12" + "bin": { + "tfjs-custom-module": "dist/tools/custom_module/cli.js" } }, - "node_modules/@testing-library/dom/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@tensorflow/tfjs-backend-cpu": { + "version": "3.18.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-3.18.0.tgz", + "integrity": "sha512-LcSqlylzGtpgngcMFIL3q9Q3eVaPRJ7ITZt7ivhzkCj4R5ZsnPa9qM3DCVihkQ77heAwSw4hPTo2jp5C4mJ4Cg==", "dependencies": { - "color-convert": "^2.0.1" + "@types/seedrandom": "2.4.27", + "seedrandom": "2.4.3" }, "engines": { - "node": ">=8" + "yarn": ">= 1.3.2" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "peerDependencies": { + "@tensorflow/tfjs-core": "3.18.0" } }, - "node_modules/@testing-library/dom/node_modules/aria-query": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", - "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==", - "engines": { - "node": ">=6.0" - } + "node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-2.4.3.tgz", + "integrity": "sha512-2CkZ9Wn2dS4mMUWQaXLsOAfGD+irMlLEeSP3cMxpGbgyOOzJGFa+MWCOMTOCMyZinHRPxyOj/S/C57li/1to6Q==" }, - "node_modules/@testing-library/dom/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@tensorflow/tfjs-backend-webgl": { + "version": "3.18.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-webgl/-/tfjs-backend-webgl-3.18.0.tgz", + "integrity": "sha512-3NknSzS1oX2BEBOrpjPMZl823S12RgshQthmIbG6QADHb4bCJA8aM4UjWpw+3bNQnRKbRDQdFbuvj10Un79s2A==", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@tensorflow/tfjs-backend-cpu": "3.18.0", + "@types/offscreencanvas": "~2019.3.0", + "@types/seedrandom": "2.4.27", + "@types/webgl-ext": "0.0.30", + "@types/webgl2": "0.0.6", + "seedrandom": "2.4.3" }, "engines": { - "node": ">=10" + "yarn": ">= 1.3.2" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "peerDependencies": { + "@tensorflow/tfjs-core": "3.18.0" } }, - "node_modules/@testing-library/dom/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/@tensorflow/tfjs-backend-webgl/node_modules/seedrandom": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-2.4.3.tgz", + "integrity": "sha512-2CkZ9Wn2dS4mMUWQaXLsOAfGD+irMlLEeSP3cMxpGbgyOOzJGFa+MWCOMTOCMyZinHRPxyOj/S/C57li/1to6Q==" + }, + "node_modules/@tensorflow/tfjs-converter": { + "version": "3.18.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-converter/-/tfjs-converter-3.18.0.tgz", + "integrity": "sha512-hpChA+zVNQOVwRnCfqDb1WI9jbEAKA6DuEm4m75Zb3dIlE6VVooDmAaHBhlc++z2q2G1sBzF9A4Bv48SUpN6vA==", + "peerDependencies": { + "@tensorflow/tfjs-core": "3.18.0" + } + }, + "node_modules/@tensorflow/tfjs-core": { + "version": "3.18.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-core/-/tfjs-core-3.18.0.tgz", + "integrity": "sha512-gMxisZozqsr5sCKlphF/eVBLg91MjlBiN60tjX8hJAu0WlSn6Gi5k65GNIL+Pq6hrxpvImcfdCmTH/2XJVZ0Mg==", "dependencies": { - "color-name": "~1.1.4" + "@types/long": "^4.0.1", + "@types/offscreencanvas": "~2019.3.0", + "@types/seedrandom": "2.4.27", + "@types/webgl-ext": "0.0.30", + "@webgpu/types": "^0.1.16", + "long": "4.0.0", + "node-fetch": "~2.6.1", + "seedrandom": "2.4.3" }, "engines": { - "node": ">=7.0.0" + "yarn": ">= 1.3.2" } }, - "node_modules/@testing-library/dom/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "node_modules/@tensorflow/tfjs-core/node_modules/seedrandom": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-2.4.3.tgz", + "integrity": "sha512-2CkZ9Wn2dS4mMUWQaXLsOAfGD+irMlLEeSP3cMxpGbgyOOzJGFa+MWCOMTOCMyZinHRPxyOj/S/C57li/1to6Q==" }, - "node_modules/@testing-library/dom/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" + "node_modules/@tensorflow/tfjs-data": { + "version": "3.18.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-data/-/tfjs-data-3.18.0.tgz", + "integrity": "sha512-s43vISJh8K/UN2E2zGRhtj/Kyn8dr4ll8EQkapwzm7fGO9afXCnMsTp6rkZq3fFXouCYA2k1B/j7JssIDr50+w==", + "dependencies": { + "@types/node-fetch": "^2.1.2", + "node-fetch": "~2.6.1" + }, + "peerDependencies": { + "@tensorflow/tfjs-core": "3.18.0", + "seedrandom": "~2.4.3" } }, - "node_modules/@testing-library/dom/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/@tensorflow/tfjs-layers": { + "version": "3.18.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-layers/-/tfjs-layers-3.18.0.tgz", + "integrity": "sha512-AV7yDnPlH+RCcq8VPqkX1iyEchObE+e66m0XmJvLj+ncfKHYLa+39ZNroUA+OgB2/cMG6jgq77R4EhZbT6hwJA==", + "peerDependencies": { + "@tensorflow/tfjs-core": "3.18.0" + } + }, + "node_modules/@testing-library/dom": { + "version": "8.14.0", + "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^4.2.0", + "aria-query": "^5.0.0", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.4.4", + "pretty-format": "^27.0.2" }, "engines": { - "node": ">=8" + "node": ">=12" } }, "node_modules/@testing-library/jest-dom": { - "version": "5.16.3", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.3.tgz", - "integrity": "sha512-u5DfKj4wfSt6akfndfu1eG06jsdyA/IUrlX2n3pyq5UXgXMhXY+NJb8eNK/7pqPWAhCKsCGWDdDO0zKMKAYkEA==", + "version": "5.16.4", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.9.2", "@types/testing-library__jest-dom": "^5.9.1", @@ -3383,32 +3220,9 @@ "yarn": ">=1" } }, - "node_modules/@testing-library/jest-dom/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@testing-library/jest-dom/node_modules/aria-query": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", - "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==", - "engines": { - "node": ">=6.0" - } - }, "node_modules/@testing-library/jest-dom/node_modules/chalk": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3417,62 +3231,26 @@ "node": ">=8" } }, - "node_modules/@testing-library/jest-dom/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@testing-library/jest-dom/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/@testing-library/jest-dom/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/jest-dom/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@testing-library/react": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-12.1.4.tgz", - "integrity": "sha512-jiPKOm7vyUw311Hn/HlNQ9P8/lHNtArAx0PisXyFixDDvfl8DbD6EUdbshK5eqauvBSvzZd19itqQ9j3nferJA==", + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-13.0.1.tgz", + "integrity": "sha512-zeHx3PohYYp+4bTJwrixQY8zSBZjWUGwYc7OhD1EpWTHS92RleApLoP72NdwaWxOrM1P1Uezt3XvGf6t2XSWPQ==", "dependencies": { "@babel/runtime": "^7.12.5", - "@testing-library/dom": "^8.0.0", - "@types/react-dom": "*" + "@testing-library/dom": "^8.5.0", + "@types/react-dom": "^18.0.0" }, "engines": { "node": ">=12" }, "peerDependencies": { - "react": "*", - "react-dom": "*" + "react": "^18.0.0", + "react-dom": "^18.0.0" } }, "node_modules/@testing-library/user-event": { "version": "13.5.0", - "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz", - "integrity": "sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.12.5" }, @@ -3502,8 +3280,7 @@ }, "node_modules/@types/aria-query": { "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==" + "license": "MIT" }, "node_modules/@types/babel__core": { "version": "7.1.19", @@ -3535,9 +3312,9 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", - "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", + "version": "7.17.1", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz", + "integrity": "sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==", "dependencies": { "@babel/types": "^7.3.0" } @@ -3611,9 +3388,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.28", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", - "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", + "version": "4.17.29", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.29.tgz", + "integrity": "sha512-uMd++6dMKS32EOuw1Uli3e3BPgdLIXmezcfHv7N4c1s3gkhikBplORPpMq3fuWkxncZN1reb16d5n8yhQ80x7Q==", "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -3634,18 +3411,13 @@ "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" }, "node_modules/@types/http-proxy": { - "version": "1.17.8", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz", - "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==", + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", + "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==", "dependencies": { "@types/node": "*" } }, - "node_modules/@types/invariant": { - "version": "2.2.35", - "resolved": "https://registry.npmjs.org/@types/invariant/-/invariant-2.2.35.tgz", - "integrity": "sha512-DxX1V9P8zdJPYQat1gHyY0xj3efl8gnMVjiM9iCY6y27lj+PoQWkgjt8jDqmovPqULkKVpKRg8J36iQiA+EtEg==" - }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", @@ -3668,14 +3440,40 @@ } }, "node_modules/@types/jest": { - "version": "27.4.1", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.4.1.tgz", - "integrity": "sha512-23iPJADSmicDVrWk+HT58LMJtzLAnB2AgIzplQuq/bSrGaxCrlvRFjGbXmamnnk/mAmCdLStiGqggu28ocUyiw==", + "version": "28.1.2", + "license": "MIT", + "dependencies": { + "jest-matcher-utils": "^28.0.0", + "pretty-format": "^28.0.0" + } + }, + "node_modules/@types/jest/node_modules/ansi-styles": { + "version": "5.2.0", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@types/jest/node_modules/pretty-format": { + "version": "28.1.1", + "license": "MIT", "dependencies": { - "jest-matcher-utils": "^27.0.0", - "pretty-format": "^27.0.0" + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, + "node_modules/@types/jest/node_modules/react-is": { + "version": "18.2.0", + "license": "MIT" + }, "node_modules/@types/json-schema": { "version": "7.0.11", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", @@ -3684,7 +3482,12 @@ "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=" + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" + }, + "node_modules/@types/long": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" }, "node_modules/@types/mime": { "version": "1.3.2", @@ -3692,9 +3495,22 @@ "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" }, "node_modules/@types/node": { - "version": "17.0.23", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", - "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==" + "version": "18.0.0", + "license": "MIT" + }, + "node_modules/@types/node-fetch": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz", + "integrity": "sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==", + "dependencies": { + "@types/node": "*", + "form-data": "^3.0.0" + } + }, + "node_modules/@types/offscreencanvas": { + "version": "2019.3.0", + "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.3.0.tgz", + "integrity": "sha512-esIJx9bQg+QYF0ra8GnvfianIY8qWB0GBx54PK5Eps6m+xTj86KLavHv6qDhzKcu5UUOgNfJ2pWaIIV7TRUd9Q==" }, "node_modules/@types/parse-json": { "version": "4.0.0", @@ -3702,14 +3518,13 @@ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" }, "node_modules/@types/prettier": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.4.tgz", - "integrity": "sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA==" + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.3.tgz", + "integrity": "sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg==" }, "node_modules/@types/prop-types": { - "version": "15.7.4", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz", - "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==" + "version": "15.7.5", + "license": "MIT" }, "node_modules/@types/q": { "version": "1.5.5", @@ -3727,9 +3542,8 @@ "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" }, "node_modules/@types/react": { - "version": "17.0.43", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.43.tgz", - "integrity": "sha512-8Q+LNpdxf057brvPu1lMtC5Vn7J119xrP1aq4qiaefNioQUYANF/CYeK4NsKorSZyUGJ66g0IM+4bbjwx45o2A==", + "version": "17.0.47", + "license": "MIT", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -3737,17 +3551,16 @@ } }, "node_modules/@types/react-dom": { - "version": "17.0.14", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.14.tgz", - "integrity": "sha512-H03xwEP1oXmSfl3iobtmQ/2dHF5aBHr8aUMwyGZya6OW45G+xtdzmq6HkncefiBt5JU8DVyaWl/nWZbjZCnzAQ==", + "version": "18.0.5", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.5.tgz", + "integrity": "sha512-OWPWTUrY/NIrjsAPkAk1wW9LZeIjSvkXRhclsFO8CZcZGCOg2G0YZy4ft+rOyYxy8B7ui5iZzi9OkDebZ7/QSA==", "dependencies": { "@types/react": "*" } }, "node_modules/@types/react-transition-group": { "version": "4.4.4", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.4.tgz", - "integrity": "sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug==", + "license": "MIT", "dependencies": { "@types/react": "*" } @@ -3761,14 +3574,18 @@ } }, "node_modules/@types/retry": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", - "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==" + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" }, "node_modules/@types/scheduler": { "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" + "license": "MIT" + }, + "node_modules/@types/seedrandom": { + "version": "2.4.27", + "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-2.4.27.tgz", + "integrity": "sha512-YvMLqFak/7rt//lPBtEHv3M4sRNA+HGxrhFZ+DQs9K2IkYJbNwVIb8avtJfhDiuaUBX/AW0jnjv48FV8h3u9bQ==" }, "node_modules/@types/serve-index": { "version": "1.9.1", @@ -3801,9 +3618,8 @@ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" }, "node_modules/@types/testing-library__jest-dom": { - "version": "5.14.3", - "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.3.tgz", - "integrity": "sha512-oKZe+Mf4ioWlMuzVBaXQ9WDnEm1+umLx0InILg+yvZVBBDmzV5KfZyLrCvadtWcx8+916jLmHafcmqqffl+iIw==", + "version": "5.14.4", + "license": "MIT", "dependencies": { "@types/jest": "*" } @@ -3815,8 +3631,17 @@ }, "node_modules/@types/warning": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz", - "integrity": "sha1-DSUBJorY+ZYrdA04fEZU9fjiPlI=" + "license": "MIT" + }, + "node_modules/@types/webgl-ext": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/@types/webgl-ext/-/webgl-ext-0.0.30.tgz", + "integrity": "sha512-LKVgNmBxN0BbljJrVUwkxwRYqzsAEPcZOe6S2T6ZaBDIrFp0qu4FNlpc5sM1tGbXUYFgdVQIoeLk1Y1UoblyEg==" + }, + "node_modules/@types/webgl2": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/webgl2/-/webgl2-0.0.6.tgz", + "integrity": "sha512-50GQhDVTq/herLMiqSQkdtRu+d5q/cWHn4VvKJtrj4DJAjo1MNkWYa2MA41BaBO1q1HgsUjuQvEOk0QHvlnAaQ==" }, "node_modules/@types/ws": { "version": "8.5.3", @@ -3840,18 +3665,18 @@ "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.17.0.tgz", - "integrity": "sha512-qVstvQilEd89HJk3qcbKt/zZrfBZ+9h2ynpAGlWjWiizA7m/MtLT9RoX6gjtpE500vfIg8jogAkDzdCxbsFASQ==", - "dependencies": { - "@typescript-eslint/scope-manager": "5.17.0", - "@typescript-eslint/type-utils": "5.17.0", - "@typescript-eslint/utils": "5.17.0", - "debug": "^4.3.2", + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.29.0.tgz", + "integrity": "sha512-kgTsISt9pM53yRFQmLZ4npj99yGl3x3Pl7z4eA66OuTzAGC4bQB5H5fuLwPnqTKU3yyrrg4MIhjF17UYnL4c0w==", + "dependencies": { + "@typescript-eslint/scope-manager": "5.29.0", + "@typescript-eslint/type-utils": "5.29.0", + "@typescript-eslint/utils": "5.29.0", + "debug": "^4.3.4", "functional-red-black-tree": "^1.0.1", - "ignore": "^5.1.8", + "ignore": "^5.2.0", "regexpp": "^3.2.0", - "semver": "^7.3.5", + "semver": "^7.3.7", "tsutils": "^3.21.0" }, "engines": { @@ -3871,12 +3696,26 @@ } } }, - "node_modules/@typescript-eslint/experimental-utils": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.17.0.tgz", - "integrity": "sha512-U4sM5z0/ymSYqQT6I7lz8l0ZZ9zrya5VIwrwAP5WOJVabVtVsIpTMxPQe+D3qLyePT+VlETUTO2nA1+PufPx9Q==", + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dependencies": { - "@typescript-eslint/utils": "5.17.0" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/experimental-utils": { + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.29.0.tgz", + "integrity": "sha512-H4fqOVYiH6R15NjtMO2LVBZgzXgzjdPEXYb7x/meg4QbXsptLxdq8YlHK2NZOFKipuInY4sAPY5a6SQ/53s3dw==", + "dependencies": { + "@typescript-eslint/utils": "5.29.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3890,14 +3729,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.17.0.tgz", - "integrity": "sha512-aRzW9Jg5Rlj2t2/crzhA2f23SIYFlF9mchGudyP0uiD6SenIxzKoLjwzHbafgHn39dNV/TV7xwQkLfFTZlJ4ig==", + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.29.0.tgz", + "integrity": "sha512-ruKWTv+x0OOxbzIw9nW5oWlUopvP/IQDjB5ZqmTglLIoDTctLlAJpAQFpNPJP/ZI7hTT9sARBosEfaKbcFuECw==", "dependencies": { - "@typescript-eslint/scope-manager": "5.17.0", - "@typescript-eslint/types": "5.17.0", - "@typescript-eslint/typescript-estree": "5.17.0", - "debug": "^4.3.2" + "@typescript-eslint/scope-manager": "5.29.0", + "@typescript-eslint/types": "5.29.0", + "@typescript-eslint/typescript-estree": "5.29.0", + "debug": "^4.3.4" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3916,12 +3755,12 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.17.0.tgz", - "integrity": "sha512-062iCYQF/doQ9T2WWfJohQKKN1zmmXVfAcS3xaiialiw8ZUGy05Em6QVNYJGO34/sU1a7a+90U3dUNfqUDHr3w==", + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.29.0.tgz", + "integrity": "sha512-etbXUT0FygFi2ihcxDZjz21LtC+Eps9V2xVx09zFoN44RRHPrkMflidGMI+2dUs821zR1tDS6Oc9IXxIjOUZwA==", "dependencies": { - "@typescript-eslint/types": "5.17.0", - "@typescript-eslint/visitor-keys": "5.17.0" + "@typescript-eslint/types": "5.29.0", + "@typescript-eslint/visitor-keys": "5.29.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3932,12 +3771,12 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.17.0.tgz", - "integrity": "sha512-3hU0RynUIlEuqMJA7dragb0/75gZmwNwFf/QJokWzPehTZousP/MNifVSgjxNcDCkM5HI2K22TjQWUmmHUINSg==", + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.29.0.tgz", + "integrity": "sha512-JK6bAaaiJozbox3K220VRfCzLa9n0ib/J+FHIwnaV3Enw/TO267qe0pM1b1QrrEuy6xun374XEAsRlA86JJnyg==", "dependencies": { - "@typescript-eslint/utils": "5.17.0", - "debug": "^4.3.2", + "@typescript-eslint/utils": "5.29.0", + "debug": "^4.3.4", "tsutils": "^3.21.0" }, "engines": { @@ -3957,9 +3796,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.17.0.tgz", - "integrity": "sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw==", + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.29.0.tgz", + "integrity": "sha512-X99VbqvAXOMdVyfFmksMy3u8p8yoRGITgU1joBJPzeYa0rhdf5ok9S56/itRoUSh99fiDoMtarSIJXo7H/SnOg==", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -3969,16 +3808,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.17.0.tgz", - "integrity": "sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg==", - "dependencies": { - "@typescript-eslint/types": "5.17.0", - "@typescript-eslint/visitor-keys": "5.17.0", - "debug": "^4.3.2", - "globby": "^11.0.4", + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.29.0.tgz", + "integrity": "sha512-mQvSUJ/JjGBdvo+1LwC+GY2XmSYjK1nAaVw2emp/E61wEVYEyibRHCqm1I1vEKbXCpUKuW4G7u9ZCaZhJbLoNQ==", + "dependencies": { + "@typescript-eslint/types": "5.29.0", + "@typescript-eslint/visitor-keys": "5.29.0", + "debug": "^4.3.4", + "globby": "^11.1.0", "is-glob": "^4.0.3", - "semver": "^7.3.5", + "semver": "^7.3.7", "tsutils": "^3.21.0" }, "engines": { @@ -3994,15 +3833,29 @@ } } }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@typescript-eslint/utils": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.17.0.tgz", - "integrity": "sha512-DVvndq1QoxQH+hFv+MUQHrrWZ7gQ5KcJzyjhzcqB1Y2Xes1UQQkTRPUfRpqhS8mhTWsSb2+iyvDW1Lef5DD7vA==", + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.29.0.tgz", + "integrity": "sha512-3Eos6uP1nyLOBayc/VUdKZikV90HahXE5Dx9L5YlSd/7ylQPXhLk1BYb29SDgnBnTp+jmSZUU0QxUiyHgW4p7A==", "dependencies": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.17.0", - "@typescript-eslint/types": "5.17.0", - "@typescript-eslint/typescript-estree": "5.17.0", + "@typescript-eslint/scope-manager": "5.29.0", + "@typescript-eslint/types": "5.29.0", + "@typescript-eslint/typescript-estree": "5.29.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, @@ -4038,12 +3891,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.17.0.tgz", - "integrity": "sha512-6K/zlc4OfCagUu7Am/BD5k8PSWQOgh34Nrv9Rxe2tBzlJ7uOeJ/h7ugCGDCeEZHT6k2CJBhbk9IsbkPI0uvUkA==", + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.29.0.tgz", + "integrity": "sha512-Hpb/mCWsjILvikMQoZIE3voc9wtQcS0A9FUw3h8bhr9UxBdtI/tw1ZDZUOXHXLOVMedKCH5NxyzATwnU78bWCQ==", "dependencies": { - "@typescript-eslint/types": "5.17.0", - "eslint-visitor-keys": "^3.0.0" + "@typescript-eslint/types": "5.29.0", + "eslint-visitor-keys": "^3.3.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -4184,6 +4037,11 @@ "@xtuc/long": "4.2.2" } }, + "node_modules/@webgpu/types": { + "version": "0.1.20", + "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.20.tgz", + "integrity": "sha512-MFb5oyxX+A7PWQNjcY3kSCSG2FAHaBo7IJBWtxWFgsS20FtY3D9UY7lYqLZ6avS8fSkdSylIS4qiHzFlQUdXag==" + }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", @@ -4195,9 +4053,9 @@ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" }, "node_modules/abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==" }, "node_modules/accepts": { "version": "1.3.8", @@ -4212,9 +4070,9 @@ } }, "node_modules/acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", "bin": { "acorn": "bin/acorn" }, @@ -4288,11 +4146,11 @@ } }, "node_modules/address": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", - "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.0.tgz", + "integrity": "sha512-tNEZYz5G/zYunxFm7sfhAxkXEuLj3K6BKwv6ZURlsF6yiUQ65z0Q2wZW9L5cPUl9ocofGvXOdFYbFHp0+6MOig==", "engines": { - "node": ">= 0.12.0" + "node": ">= 10.0.0" } }, "node_modules/adjust-sourcemap-loader": { @@ -4318,18 +4176,6 @@ "node": ">= 6.0.0" } }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -4403,17 +4249,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/ansi-html-community": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", @@ -4427,27 +4262,27 @@ }, "node_modules/ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "version": "4.3.0", + "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/anymatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -4457,23 +4292,20 @@ } }, "node_modules/arg": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz", - "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==" + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" }, "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + "version": "1.0.10", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } }, "node_modules/aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", - "dependencies": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" - }, + "version": "5.0.0", + "license": "Apache-2.0", "engines": { "node": ">=6.0" } @@ -4484,13 +4316,13 @@ "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" }, "node_modules/array-includes": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", - "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", + "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5", "get-intrinsic": "^1.1.1", "is-string": "^1.0.7" }, @@ -4510,13 +4342,14 @@ } }, "node_modules/array.prototype.flat": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", - "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", + "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -4526,13 +4359,32 @@ } }, "node_modules/array.prototype.flatmap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", - "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", + "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", "dependencies": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.reduce": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.4.tgz", + "integrity": "sha512-WnM+AjG/DvLRLo4DDl+r+SvCzYtD2Jd9oeBYMcEaI7t3fFrHY9M53/wdLcTvmZNQ70IU6Htj0emFkZ5TS+lrdw==", + "dependencies": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" + "es-abstract": "^1.19.2", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" }, "engines": { "node": ">= 0.4" @@ -4544,25 +4396,21 @@ "node_modules/asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" }, "node_modules/ast-types-flow": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=" + "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==" }, "node_modules/async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dependencies": { - "lodash": "^4.17.14" - } + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" }, "node_modules/asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "license": "MIT" }, "node_modules/at-least-node": { "version": "1.0.0", @@ -4574,8 +4422,7 @@ }, "node_modules/atob": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "license": "(MIT OR Apache-2.0)", "bin": { "atob": "bin/atob.js" }, @@ -4584,9 +4431,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.4", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.4.tgz", - "integrity": "sha512-Tm8JxsB286VweiZ5F0anmbyGiNI3v3wGv3mz9W+cxEDYB/6jbnj6GM9H9mK3wIL8ftgl+C07Lcwb8PG5PCCPzA==", + "version": "10.4.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.7.tgz", + "integrity": "sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==", "funding": [ { "type": "opencollective", @@ -4598,8 +4445,8 @@ } ], "dependencies": { - "browserslist": "^4.20.2", - "caniuse-lite": "^1.0.30001317", + "browserslist": "^4.20.3", + "caniuse-lite": "^1.0.30001335", "fraction.js": "^4.2.0", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", @@ -4616,11 +4463,11 @@ } }, "node_modules/axe-core": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.1.tgz", - "integrity": "sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw==", + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.2.tgz", + "integrity": "sha512-LVAaGp/wkkgYJcjmHsoKx4juT1aQvJyPcW09MLCjVTh3V2cc6PnyempiLMNH5iMdfIX/zdbjUx2KDjMLCTdPeA==", "engines": { - "node": ">=4" + "node": ">=12" } }, "node_modules/axobject-query": { @@ -4649,74 +4496,10 @@ "@babel/core": "^7.8.0" } }, - "node_modules/babel-jest/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/babel-jest/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/babel-jest/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/babel-jest/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/babel-jest/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-jest/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/babel-loader": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.4.tgz", - "integrity": "sha512-8dytA3gcvPPPv4Grjhnt8b5IIiTcq/zeXOPk4iTYI0SVXcsmuGg7JtBRDp8S9X+gJfhQ8ektjXZlDu1Bb33U8A==", + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz", + "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==", "dependencies": { "find-cache-dir": "^3.3.1", "loader-utils": "^2.0.0", @@ -4801,8 +4584,7 @@ }, "node_modules/babel-plugin-named-asset-import": { "version": "0.3.8", - "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", - "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==", + "license": "MIT", "peerDependencies": { "@babel/core": "^7.1.0" } @@ -4820,14 +4602,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/babel-plugin-polyfill-corejs3": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", @@ -4924,7 +4698,7 @@ "node_modules/batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" }, "node_modules/bfj": { "version": "7.0.2", @@ -4950,8 +4724,7 @@ }, "node_modules/binary-extensions": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "license": "MIT", "engines": { "node": ">=8" } @@ -4962,23 +4735,26 @@ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" }, "node_modules/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.7", - "raw-body": "2.4.3", - "type-is": "~1.6.18" + "on-finished": "2.4.1", + "qs": "6.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" }, "engines": { - "node": ">= 0.8" + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, "node_modules/body-parser/node_modules/bytes": { @@ -4997,33 +4773,41 @@ "ms": "2.0.0" } }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, - "node_modules/bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "node_modules/bonjour-service": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.13.tgz", + "integrity": "sha512-LWKRU/7EqDUC9CTAQtuZl5HzBALoCYwtLhffW3et7vZMwv3bWLpJf8bRYlMD5OCcDpTfnPgNCV4yo9ZIaJGMiA==", "dependencies": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", + "array-flatten": "^2.1.2", "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" } }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" }, "node_modules/bootstrap": { "version": "5.1.3", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.3.tgz", - "integrity": "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/bootstrap" @@ -5034,8 +4818,7 @@ }, "node_modules/bootswatch": { "version": "5.1.3", - "resolved": "https://registry.npmjs.org/bootswatch/-/bootswatch-5.1.3.tgz", - "integrity": "sha512-NmZFN6rOCoXWQ/PkzmD8FFWDe24kocX9OXWHNVaLxVVnpqpAzEbMFsf8bAfKwVtpNXibasZCzv09B5fLieAh2g==" + "license": "MIT" }, "node_modules/brace-expansion": { "version": "1.1.11", @@ -5048,8 +4831,7 @@ }, "node_modules/braces": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "license": "MIT", "dependencies": { "fill-range": "^7.0.1" }, @@ -5063,9 +4845,7 @@ "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" }, "node_modules/browserslist": { - "version": "4.20.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", - "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", + "version": "4.20.4", "funding": [ { "type": "opencollective", @@ -5076,11 +4856,12 @@ "url": "https://tidelift.com/funding/github/npm/browserslist" } ], + "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001317", - "electron-to-chromium": "^1.4.84", + "caniuse-lite": "^1.0.30001349", + "electron-to-chromium": "^1.4.147", "escalade": "^3.1.1", - "node-releases": "^2.0.2", + "node-releases": "^2.0.5", "picocolors": "^1.0.0" }, "bin": { @@ -5103,15 +4884,10 @@ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, - "node_modules/buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" - }, "node_modules/builtin-modules": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", - "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", "engines": { "node": ">=6" }, @@ -5122,7 +4898,7 @@ "node_modules/bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", "engines": { "node": ">= 0.8" } @@ -5156,11 +4932,6 @@ "tslib": "^2.0.3" } }, - "node_modules/camel-case/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, "node_modules/camelcase": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", @@ -5192,9 +4963,7 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001323", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001323.tgz", - "integrity": "sha512-e4BF2RlCVELKx8+RmklSEIVub1TWrmdhvA5kEUueummz1XyySW0DVk+3x9HyhU9MuWTa2BhqLgEuEmUwASAdCA==", + "version": "1.0.30001358", "funding": [ { "type": "opencollective", @@ -5204,7 +4973,8 @@ "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/case-sensitive-paths-webpack-plugin": { "version": "2.4.0", @@ -5215,16 +4985,17 @@ } }, "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "4.1.2", + "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/char-regex": { @@ -5250,14 +5021,13 @@ }, "node_modules/chokidar": { "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "funding": [ { "type": "individual", "url": "https://paulmillr.com/funding/" } ], + "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -5276,8 +5046,7 @@ }, "node_modules/chokidar/node_modules/glob-parent": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -5294,9 +5063,9 @@ } }, "node_modules/ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==" + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz", + "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==" }, "node_modules/cjs-module-lexer": { "version": "1.2.2", @@ -5305,8 +5074,7 @@ }, "node_modules/classnames": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", - "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" + "license": "MIT" }, "node_modules/clean-css": { "version": "5.3.0", @@ -5319,26 +5087,9 @@ "node": ">= 10.0" } }, - "node_modules/clean-css/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "engines": { - "node": ">=6" - } - }, "node_modules/cliui": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -5348,7 +5099,7 @@ "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "engines": { "iojs": ">= 1.0.0", "node": ">= 0.12.0" @@ -5367,12 +5118,31 @@ "node": ">= 4.0" } }, - "node_modules/collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==" + "node_modules/coa/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } }, - "node_modules/color-convert": { + "node_modules/coa/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "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" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", @@ -5380,38 +5150,75 @@ "color-name": "1.1.3" } }, - "node_modules/color-name": { + "node_modules/coa/node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/colord": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", - "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==" + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, - "node_modules/colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==" + "node_modules/coa/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "node_modules/coa/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dependencies": { - "delayed-stream": "~1.0.0" + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/colord": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", + "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==" + }, + "node_modules/colorette": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" }, "engines": { "node": ">= 0.8" } }, "node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", "engines": { - "node": ">= 10" + "node": ">= 12" } }, "node_modules/common-path-prefix": { @@ -5430,7 +5237,7 @@ "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" }, "node_modules/compressible": { "version": "2.0.18", @@ -5471,12 +5278,12 @@ "node_modules/compression/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "node_modules/confusing-browser-globals": { "version": "1.0.11", @@ -5531,16 +5338,15 @@ }, "node_modules/convert-source-map": { "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.1" } }, "node_modules/cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", "engines": { "node": ">= 0.6" } @@ -5548,24 +5354,23 @@ "node_modules/cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, "node_modules/core-js": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.21.1.tgz", - "integrity": "sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==", + "version": "3.23.2", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" } }, "node_modules/core-js-compat": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz", - "integrity": "sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==", + "version": "3.23.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.23.2.tgz", + "integrity": "sha512-lrgZvxFwbQp9v7E8mX0rJ+JX7Bvh4eGULZXA1IAyjlsnWvCdw6TF8Tg6xtaSUSJMrSrMaLdpmk+V54LM1dvfOA==", "dependencies": { - "browserslist": "^4.19.1", + "browserslist": "^4.20.4", "semver": "7.0.0" }, "funding": { @@ -5582,9 +5387,9 @@ } }, "node_modules/core-js-pure": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.1.tgz", - "integrity": "sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==", + "version": "3.23.2", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.23.2.tgz", + "integrity": "sha512-t6u7H4Ff/yZNk+zqTr74UjCcZ3k8ApBryeLLV4rYQd9aF3gqmjjGjjR44ENfeBMH8VVvSynIjAJ0mUuFhzQtrA==", "hasInstallScript": true, "funding": { "type": "opencollective", @@ -5634,8 +5439,7 @@ }, "node_modules/css": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", - "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", + "license": "MIT", "dependencies": { "inherits": "^2.0.4", "source-map": "^0.6.1", @@ -5660,9 +5464,9 @@ } }, "node_modules/css-declaration-sorter": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.2.2.tgz", - "integrity": "sha512-Ufadglr88ZLsrvS11gjeu/40Lw74D9Am/Jpr3LlYm5Q4ZP5KdlUhG+6u2EjyXeZcxmZ2h1ebCKngDjolpeLHpg==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.0.tgz", + "integrity": "sha512-OGT677UGHJTAVMRhPO+HJ4oKln3wkBTwtDFH0ojbqm+MJm6xuDMHp2nkhh/ThaBqq20IbraBQSWKfSLNHQO9Og==", "engines": { "node": "^10 || ^12 || >=14" }, @@ -5712,6 +5516,20 @@ "webpack": "^5.0.0" } }, + "node_modules/css-loader/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/css-minimizer-webpack-plugin": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", @@ -5798,14 +5616,6 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/css-minimizer-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/css-prefers-color-scheme": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", @@ -5821,14 +5631,18 @@ } }, "node_modules/css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", "dependencies": { "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" } }, "node_modules/css-select-base-adapter": { @@ -5848,18 +5662,10 @@ "node": ">=8.0.0" } }, - "node_modules/css-tree/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/css-what": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", - "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", "engines": { "node": ">= 6" }, @@ -5869,21 +5675,16 @@ }, "node_modules/css.escape": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", - "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=" - }, - "node_modules/css/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } + "license": "MIT" }, "node_modules/cssdb": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-6.5.0.tgz", - "integrity": "sha512-Rh7AAopF2ckPXe/VBcoUS9JrCZNSyc60+KpgE6X25vpVxA32TmiqvExjkfhwP4wGSb6Xe8Z/JIyGqwgx/zZYFA==" + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-6.6.3.tgz", + "integrity": "sha512-7GDvDSmE+20+WcSMhP17Q1EVWUrLlbxxpMDqG731n8P99JhnQZHR9YvtjPvEHfjFUjvQJvdpKCjlKOX+xe4UVA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } }, "node_modules/cssesc": { "version": "3.0.0", @@ -5897,11 +5698,11 @@ } }, "node_modules/cssnano": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.6.tgz", - "integrity": "sha512-A7oX6Vxgpc/VzyKDTLEFpv6M0n06foVSWPAb+Xg0k6ikgSaI04SnGUKOQeBdvrXZCqhp3xdlii0cp+bUCgbCRQ==", + "version": "5.1.12", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.12.tgz", + "integrity": "sha512-TgvArbEZu0lk/dvg2ja+B7kYoD7BBCmn3+k58xD0qjrGHsFzXY/wKTo9M5egcUCabPol05e/PVoIu79s2JN4WQ==", "dependencies": { - "cssnano-preset-default": "^5.2.6", + "cssnano-preset-default": "^5.2.12", "lilconfig": "^2.0.3", "yaml": "^1.10.2" }, @@ -5917,35 +5718,35 @@ } }, "node_modules/cssnano-preset-default": { - "version": "5.2.6", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.6.tgz", - "integrity": "sha512-QwnYv/ZuNH0eWOxs3ME7w5uXXdWZKKXVGn1c6P877nPLl7SR8pAQQNe1CKbcPc+qpIbb2cq554Cv3QYG0MxTSQ==", + "version": "5.2.12", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.12.tgz", + "integrity": "sha512-OyCBTZi+PXgylz9HAA5kHyoYhfGcYdwFmyaJzWnzxuGRtnMw/kR6ilW9XzlzlRAtB6PLT/r+prYgkef7hngFew==", "dependencies": { - "css-declaration-sorter": "^6.2.2", + "css-declaration-sorter": "^6.3.0", "cssnano-utils": "^3.1.0", "postcss-calc": "^8.2.3", "postcss-colormin": "^5.3.0", - "postcss-convert-values": "^5.1.0", - "postcss-discard-comments": "^5.1.1", + "postcss-convert-values": "^5.1.2", + "postcss-discard-comments": "^5.1.2", "postcss-discard-duplicates": "^5.1.0", "postcss-discard-empty": "^5.1.1", "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.3", - "postcss-merge-rules": "^5.1.1", + "postcss-merge-longhand": "^5.1.6", + "postcss-merge-rules": "^5.1.2", "postcss-minify-font-values": "^5.1.0", "postcss-minify-gradients": "^5.1.1", - "postcss-minify-params": "^5.1.2", - "postcss-minify-selectors": "^5.2.0", + "postcss-minify-params": "^5.1.3", + "postcss-minify-selectors": "^5.2.1", "postcss-normalize-charset": "^5.1.0", "postcss-normalize-display-values": "^5.1.0", - "postcss-normalize-positions": "^5.1.0", - "postcss-normalize-repeat-style": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", "postcss-normalize-string": "^5.1.0", "postcss-normalize-timing-functions": "^5.1.0", "postcss-normalize-unicode": "^5.1.0", "postcss-normalize-url": "^5.1.0", "postcss-normalize-whitespace": "^5.1.1", - "postcss-ordered-values": "^5.1.1", + "postcss-ordered-values": "^5.1.3", "postcss-reduce-initial": "^5.1.0", "postcss-reduce-transforms": "^5.1.0", "postcss-svgo": "^5.1.0", @@ -5997,14 +5798,6 @@ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" }, - "node_modules/csso/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/cssom": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", @@ -6027,9 +5820,8 @@ "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" }, "node_modules/csstype": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.11.tgz", - "integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==" + "version": "3.1.0", + "license": "MIT" }, "node_modules/damerau-levenshtein": { "version": "1.0.8", @@ -6049,10 +5841,33 @@ "node": ">=10" } }, + "node_modules/data-urls/node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/data-urls/node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/debug": { "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -6072,8 +5887,7 @@ }, "node_modules/decode-uri-component": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "license": "MIT", "engines": { "node": ">=0.10" } @@ -6081,23 +5895,7 @@ "node_modules/dedent": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=" - }, - "node_modules/deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "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" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" }, "node_modules/deep-is": { "version": "0.1.4", @@ -6132,70 +5930,55 @@ } }, "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", "dependencies": { - "object-keys": "^1.0.12" + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/defined": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" - }, - "node_modules/del": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", - "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", - "dependencies": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "integrity": "sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==" }, "node_modules/delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/dequal": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.2.tgz", - "integrity": "sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } }, "node_modules/detect-newline": { "version": "3.1.0", @@ -6237,16 +6020,16 @@ "node_modules/detect-port-alt/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/detective": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", - "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", + "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", "dependencies": { - "acorn-node": "^1.6.1", + "acorn-node": "^1.8.2", "defined": "^1.0.0", - "minimist": "^1.1.1" + "minimist": "^1.2.6" }, "bin": { "detective": "bin/detective.js" @@ -6261,11 +6044,10 @@ "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" }, "node_modules/diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "version": "28.1.1", + "license": "MIT", "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, "node_modules/dir-glob": { @@ -6287,23 +6069,17 @@ "node_modules/dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==" }, "node_modules/dns-packet": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", - "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", - "dependencies": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", + "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", "dependencies": { - "buffer-indexof": "^1.0.0" + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" } }, "node_modules/doctrine": { @@ -6318,9 +6094,8 @@ } }, "node_modules/dom-accessibility-api": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.13.tgz", - "integrity": "sha512-R305kwb5CcMDIpSHUnLyIAp7SrSPBx6F0VfQFB3M75xVMHhXJJIdePYgbPPh1o57vCHNu5QztokWUPsLjWzFqw==" + "version": "0.5.14", + "license": "MIT" }, "node_modules/dom-converter": { "version": "0.2.0", @@ -6332,26 +6107,29 @@ }, "node_modules/dom-helpers": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.8.7", "csstype": "^3.0.2" } }, "node_modules/dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", "dependencies": { "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "node_modules/dom-serializer/node_modules/domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", "funding": [ { "type": "github", @@ -6359,11 +6137,6 @@ } ] }, - "node_modules/domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" - }, "node_modules/domexception": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", @@ -6397,24 +6170,17 @@ "url": "https://github.com/fb55/domhandler?sponsor=1" } }, - "node_modules/domhandler/node_modules/domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, "node_modules/domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", "dependencies": { - "dom-serializer": "0", - "domelementtype": "1" + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" } }, "node_modules/dot-case": { @@ -6426,11 +6192,6 @@ "tslib": "^2.0.3" } }, - "node_modules/dot-case/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, "node_modules/dotenv": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", @@ -6452,12 +6213,12 @@ "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/ejs": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.7.tgz", - "integrity": "sha512-BIar7R6abbUxDA3bfXrO4DSgwo8I+fB5/1zgujl3HLLjwd6+9iOnrT+t3grn2qbk9vOgBubXOFwX2m9axoFaGw==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", + "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", "dependencies": { "jake": "^10.8.5" }, @@ -6469,9 +6230,8 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.103", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.103.tgz", - "integrity": "sha512-c/uKWR1Z/W30Wy/sx3dkZoj4BijbXX85QKWu9jJfjho3LBAXNEGAEW3oWiGb+dotA6C6BzCTxL2/aLes7jlUeg==" + "version": "1.4.164", + "license": "ISC" }, "node_modules/emittery": { "version": "0.8.1", @@ -6500,15 +6260,15 @@ "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "engines": { "node": ">= 0.8" } }, "node_modules/enhanced-resolve": { - "version": "5.9.2", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz", - "integrity": "sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA==", + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz", + "integrity": "sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -6534,38 +6294,41 @@ } }, "node_modules/error-stack-parser": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.7.tgz", - "integrity": "sha512-chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", "dependencies": { - "stackframe": "^1.1.1" + "stackframe": "^1.3.4" } }, "node_modules/es-abstract": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.2.tgz", - "integrity": "sha512-gfSBJoZdlL2xRiOCy0g8gLMryhoe1TlimjzU99L/31Z8QEGIhVQI+EWwt5lT+AuU9SnorVupXFqqOGqGfsyO6w==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", "dependencies": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", "get-intrinsic": "^1.1.1", "get-symbol-description": "^1.0.0", "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", "is-callable": "^1.2.4", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", + "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", "is-weakref": "^1.0.2", "object-inspect": "^1.12.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.1" + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -6574,11 +6337,24 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==" + }, "node_modules/es-module-lexer": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dependencies": { + "has": "^1.0.3" + } + }, "node_modules/es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", @@ -6597,8 +6373,7 @@ }, "node_modules/escalade": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "license": "MIT", "engines": { "node": ">=6" } @@ -6606,12 +6381,11 @@ "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" }, "node_modules/escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "license": "MIT", "engines": { "node": ">=0.8.0" } @@ -6640,7 +6414,7 @@ "node_modules/escodegen/node_modules/levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", "dependencies": { "prelude-ls": "~1.1.2", "type-check": "~0.3.2" @@ -6668,24 +6442,15 @@ "node_modules/escodegen/node_modules/prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", "engines": { "node": ">= 0.8.0" } }, - "node_modules/escodegen/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/escodegen/node_modules/type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", "dependencies": { "prelude-ls": "~1.1.2" }, @@ -6694,11 +6459,11 @@ } }, "node_modules/eslint": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.12.0.tgz", - "integrity": "sha512-it1oBL9alZg1S8UycLm5YDMAkIhtH6FtAzuZs6YvoGVldWjbS08BkAdb/ymP9LlAyq8koANu32U7Ib/w+UNh8Q==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.18.0.tgz", + "integrity": "sha512-As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA==", "dependencies": { - "@eslint/eslintrc": "^1.2.1", + "@eslint/eslintrc": "^1.3.0", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -6709,14 +6474,14 @@ "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", + "espree": "^9.3.2", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", "glob-parent": "^6.0.1", - "globals": "^13.6.0", + "globals": "^13.15.0", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", @@ -6725,7 +6490,7 @@ "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", "regexpp": "^3.2.0", @@ -6745,9 +6510,9 @@ } }, "node_modules/eslint-config-react-app": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.0.tgz", - "integrity": "sha512-xyymoxtIt1EOsSaGag+/jmcywRuieQoA2JbPCjnw9HukFj9/97aGPoZVFioaotzk1K5Qt9sHO5EutZbkrAXS0g==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", + "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==", "dependencies": { "@babel/core": "^7.16.0", "@babel/eslint-parser": "^7.16.3", @@ -6811,7 +6576,7 @@ "node_modules/eslint-module-utils/node_modules/find-up": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", "dependencies": { "locate-path": "^2.0.0" }, @@ -6822,7 +6587,7 @@ "node_modules/eslint-module-utils/node_modules/locate-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", "dependencies": { "p-locate": "^2.0.0", "path-exists": "^3.0.0" @@ -6845,7 +6610,7 @@ "node_modules/eslint-module-utils/node_modules/p-locate": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", "dependencies": { "p-limit": "^1.1.0" }, @@ -6856,7 +6621,7 @@ "node_modules/eslint-module-utils/node_modules/p-try": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", "engines": { "node": ">=4" } @@ -6864,7 +6629,7 @@ "node_modules/eslint-module-utils/node_modules/path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "engines": { "node": ">=4" } @@ -6887,23 +6652,23 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.25.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz", - "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==", + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", "dependencies": { "array-includes": "^3.1.4", "array.prototype.flat": "^1.2.5", "debug": "^2.6.9", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.2", + "eslint-module-utils": "^2.7.3", "has": "^1.0.3", - "is-core-module": "^2.8.0", + "is-core-module": "^2.8.1", "is-glob": "^4.0.3", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "object.values": "^1.1.5", - "resolve": "^1.20.0", - "tsconfig-paths": "^3.12.0" + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" }, "engines": { "node": ">=4" @@ -6934,7 +6699,7 @@ "node_modules/eslint-plugin-import/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/eslint-plugin-jest": { "version": "25.7.0", @@ -6984,25 +6749,37 @@ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" } }, + "node_modules/eslint-plugin-jsx-a11y/node_modules/aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "dependencies": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + }, + "engines": { + "node": ">=6.0" + } + }, "node_modules/eslint-plugin-react": { - "version": "7.29.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.29.4.tgz", - "integrity": "sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ==", + "version": "7.30.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.0.tgz", + "integrity": "sha512-RgwH7hjW48BleKsYyHK5vUAvxtE9SMPDKmcPRQgtRCYaZA0XQPt5FSkrU3nhz5ifzMZcA8opwmRJ2cmOO8tr5A==", "dependencies": { - "array-includes": "^3.1.4", - "array.prototype.flatmap": "^1.2.5", + "array-includes": "^3.1.5", + "array.prototype.flatmap": "^1.3.0", "doctrine": "^2.1.0", "estraverse": "^5.3.0", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", "object.entries": "^1.1.5", "object.fromentries": "^2.0.5", - "object.hasown": "^1.1.0", + "object.hasown": "^1.1.1", "object.values": "^1.1.5", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.3", "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.6" + "string.prototype.matchall": "^4.0.7" }, "engines": { "node": ">=4" @@ -7012,9 +6789,9 @@ } }, "node_modules/eslint-plugin-react-hooks": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.4.0.tgz", - "integrity": "sha512-U3RVIfdzJaeKDQKEJbz5p3NW8/L80PCATJAfuojwbaEL+gBjfGdhUcGde+WGUW46Q5sr/NgxevsIiDtNXrvZaQ==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", "engines": { "node": ">=10" }, @@ -7034,29 +6811,25 @@ } }, "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.3", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", - "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", + "version": "2.0.0-next.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", + "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-plugin-react/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/eslint-plugin-testing-library": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.2.0.tgz", - "integrity": "sha512-fYFH8lA1hbc1Epr9laNm/+YIR2d+R7WI8sFz9jIRAUfqCf21Nb5BzZwhNeZlu9wKXwDtuf+hUM5QJxG1PuDsTQ==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.5.1.tgz", + "integrity": "sha512-plLEkkbAKBjPxsLj7x4jNapcHAg2ernkQlKKrN2I8NrQwPISZHyCUNvg5Hv3EDqOQReToQb5bnqXYbkijJPE/g==", "dependencies": { "@typescript-eslint/utils": "^5.13.0" }, @@ -7136,51 +6909,6 @@ "webpack": "^5.0.0" } }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, "node_modules/eslint/node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -7193,9 +6921,9 @@ } }, "node_modules/eslint/node_modules/globals": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", - "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", "dependencies": { "type-fest": "^0.20.2" }, @@ -7206,32 +6934,24 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" + "node": ">=10" }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/espree": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", - "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", + "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", "dependencies": { - "acorn": "^8.7.0", - "acorn-jsx": "^5.3.1", + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -7296,15 +7016,14 @@ "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", "engines": { "node": ">= 0.6" } }, "node_modules/eventemitter3": { "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + "license": "MIT" }, "node_modules/events": { "version": "3.3.0", @@ -7339,7 +7058,7 @@ "node_modules/exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "engines": { "node": ">= 0.8.0" } @@ -7358,38 +7077,83 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/expect/node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/expect/node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/expect/node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/expect/node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, "node_modules/express": { - "version": "4.17.3", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", - "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.19.2", + "body-parser": "1.20.0", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.4.2", + "cookie": "0.5.0", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "~1.1.2", + "depd": "2.0.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "~1.1.2", + "finalhandler": "1.2.0", "fresh": "0.5.2", + "http-errors": "2.0.0", "merge-descriptors": "1.0.1", "methods": "~1.1.2", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.7", - "qs": "6.9.7", + "qs": "6.10.3", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", + "send": "0.18.0", + "serve-static": "1.15.0", "setprototypeof": "1.2.0", - "statuses": "~1.5.0", + "statuses": "2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" @@ -7401,7 +7165,7 @@ "node_modules/express/node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, "node_modules/express/node_modules/debug": { "version": "2.6.9", @@ -7414,7 +7178,7 @@ "node_modules/express/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/express/node_modules/safe-buffer": { "version": "5.2.1", @@ -7474,7 +7238,7 @@ "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" }, "node_modules/fastq": { "version": "1.13.0", @@ -7534,9 +7298,9 @@ } }, "node_modules/filelist": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.3.tgz", - "integrity": "sha512-LwjCsruLWQULGYKy7TX0OPtrL9kLpojOFKc5VCTxdFTV7w5zbsgqVKfnkKG7Qgjtq50gKfO56hJv88OfcGb70Q==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", "dependencies": { "minimatch": "^5.0.1" } @@ -7550,9 +7314,9 @@ } }, "node_modules/filelist/node_modules/minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -7570,8 +7334,7 @@ }, "node_modules/fill-range": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -7580,16 +7343,16 @@ } }, "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", - "statuses": "~1.5.0", + "statuses": "2.0.1", "unpipe": "~1.0.0" }, "engines": { @@ -7607,7 +7370,7 @@ "node_modules/finalhandler/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/find-cache-dir": { "version": "3.3.2", @@ -7658,9 +7421,9 @@ "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==" }, "node_modules/follow-redirects": { - "version": "1.14.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", - "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", + "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", "funding": [ { "type": "individual", @@ -7677,9 +7440,9 @@ } }, "node_modules/fork-ts-checker-webpack-plugin": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.0.tgz", - "integrity": "sha512-cS178Y+xxtIjEUorcHddKS7yCMlrDPV31mt47blKKRfMd70Kxu5xruAFE2o9sDY6wVC5deuob/u/alD04YYHnw==", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.2.tgz", + "integrity": "sha512-m5cUmF30xkZ7h4tWUgTAcEaKmUW7tfyUyTqNNOz7OxWJ0v1VWKTcOvH8FWHUwSjlW/356Ijc9vi3XfcPstpQKA==", "dependencies": { "@babel/code-frame": "^7.8.3", "@types/json-schema": "^7.0.5", @@ -7714,51 +7477,6 @@ } } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", @@ -7788,14 +7506,6 @@ "node": ">=10" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", @@ -7813,15 +7523,18 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/fork-ts-checker-webpack-plugin/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dependencies": { - "has-flag": "^4.0.0" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=8" + "node": ">=10" } }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { @@ -7834,8 +7547,7 @@ }, "node_modules/form-data": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -7868,15 +7580,15 @@ "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "engines": { "node": ">= 0.6" } }, "node_modules/fs-extra": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", - "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -7894,42 +7606,78 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==" + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/gensync": { "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/get-caller-file": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", + "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7975,14 +7723,14 @@ } }, "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, @@ -8046,8 +7794,7 @@ }, "node_modules/globals": { "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "license": "MIT", "engines": { "node": ">=4" } @@ -8072,9 +7819,9 @@ } }, "node_modules/graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, "node_modules/gzip-size": { "version": "6.0.0", @@ -8097,8 +7844,7 @@ }, "node_modules/harmony-reflect": { "version": "1.6.2", - "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", - "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==" + "license": "(Apache-2.0 OR MPL-1.1)" }, "node_modules/has": { "version": "1.0.3", @@ -8112,19 +7858,29 @@ } }, "node_modules/has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "version": "4.0.0", + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-symbols": { @@ -8171,7 +7927,7 @@ "node_modules/hpack.js": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", "dependencies": { "inherits": "^2.0.1", "obuf": "^1.0.0", @@ -8193,6 +7949,14 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/html-encoding-sniffer": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", @@ -8234,14 +7998,6 @@ "node": ">=12" } }, - "node_modules/html-minifier-terser/node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "engines": { - "node": ">= 12" - } - }, "node_modules/html-webpack-plugin": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", @@ -8282,61 +8038,24 @@ "entities": "^2.0.0" } }, - "node_modules/htmlparser2/node_modules/dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/htmlparser2/node_modules/domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/htmlparser2/node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, "node_modules/http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" }, "node_modules/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dependencies": { - "depd": "~1.1.2", + "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", + "statuses": "2.0.1", "toidentifier": "1.0.1" }, "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/http-parser-js": { @@ -8371,9 +8090,9 @@ } }, "node_modules/http-proxy-middleware": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.4.tgz", - "integrity": "sha512-m/4FxX17SUvz4lJ5WPXOHDUuCwIqXLfLHs1s0uZ3oYjhoXlx9csYxaOa0ElDEJ+h8Q4iJ1s+lTMbiCa4EXIJqg==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", "dependencies": { "@types/http-proxy": "^1.17.8", "http-proxy": "^1.18.1", @@ -8394,9 +8113,9 @@ } }, "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dependencies": { "agent-base": "6", "debug": "4" @@ -8414,11 +8133,11 @@ } }, "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" @@ -8442,8 +8161,7 @@ }, "node_modules/identity-obj-proxy": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", - "integrity": "sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=", + "license": "MIT", "dependencies": { "harmony-reflect": "^1.4.6" }, @@ -8460,18 +8178,17 @@ } }, "node_modules/immer": { - "version": "9.0.12", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.12.tgz", - "integrity": "sha512-lk7UNmSbAukB5B6dh9fnh5D0bJTOFKxVg2cyJWTYrWRfhLrLMBquONcUs3aFq507hNoIZEDDh8lb8UtOizSMhA==", + "version": "9.0.15", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.15.tgz", + "integrity": "sha512-2eB/sswms9AEUSkOm4SbV5Y7Vmt/bKRwByd52jfLkW4OLYeaTP3EEiJ9agqU0O/tq6Dk62Zfj+TJSqfm1rLVGQ==", "funding": { "type": "opencollective", "url": "https://opencollective.com/immer" } }, "node_modules/immutable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", - "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==" + "version": "4.1.0", + "license": "MIT" }, "node_modules/import-fresh": { "version": "3.3.0", @@ -8488,6 +8205,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" + } + }, "node_modules/import-local": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", @@ -8509,15 +8234,14 @@ "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "engines": { "node": ">=0.8.19" } }, "node_modules/indent-string": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "license": "MIT", "engines": { "node": ">=8" } @@ -8525,7 +8249,7 @@ "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -8533,8 +8257,7 @@ }, "node_modules/inherits": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "license": "ISC" }, "node_modules/ini": { "version": "1.3.8", @@ -8556,17 +8279,11 @@ }, "node_modules/invariant": { "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "license": "MIT", "dependencies": { "loose-envify": "^1.0.0" } }, - "node_modules/ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, "node_modules/ipaddr.js": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", @@ -8575,25 +8292,10 @@ "node": ">= 10" } }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" }, "node_modules/is-bigint": { "version": "1.0.4", @@ -8608,8 +8310,7 @@ }, "node_modules/is-binary-path": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -8644,9 +8345,9 @@ } }, "node_modules/is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", "dependencies": { "has": "^1.0.3" }, @@ -8684,16 +8385,14 @@ }, "node_modules/is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", "engines": { "node": ">=8" } @@ -8708,8 +8407,7 @@ }, "node_modules/is-glob": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -8720,7 +8418,7 @@ "node_modules/is-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=" + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==" }, "node_modules/is-negative-zero": { "version": "2.0.2", @@ -8735,16 +8433,15 @@ }, "node_modules/is-number": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -8758,27 +8455,11 @@ "node_modules/is-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", "engines": { "node": ">=0.10.0" } }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "engines": { - "node": ">=8" - } - }, "node_modules/is-plain-obj": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", @@ -8813,7 +8494,7 @@ "node_modules/is-regexp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", "engines": { "node": ">=0.10.0" } @@ -8827,9 +8508,12 @@ } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dependencies": { + "call-bind": "^1.0.2" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -8876,7 +8560,7 @@ "node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" }, "node_modules/is-weakref": { "version": "1.0.2", @@ -8903,12 +8587,12 @@ "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/istanbul-lib-coverage": { "version": "3.2.0", @@ -8919,9 +8603,9 @@ } }, "node_modules/istanbul-lib-instrument": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", - "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", + "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", "dependencies": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", @@ -8933,14 +8617,6 @@ "node": ">=8" } }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/istanbul-lib-report": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", @@ -8954,25 +8630,6 @@ "node": ">=8" } }, - "node_modules/istanbul-lib-report/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/istanbul-lib-source-maps": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", @@ -8986,14 +8643,6 @@ "node": ">=10" } }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/istanbul-reports": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", @@ -9023,75 +8672,6 @@ "node": ">=10" } }, - "node_modules/jake/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jake/node_modules/async": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", - "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" - }, - "node_modules/jake/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jake/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jake/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/jake/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jake/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", @@ -9158,68 +8738,81 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/jest-circus/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, + "node_modules/jest-circus/node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/jest-circus/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/jest-circus/node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/jest-circus/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, + "node_modules/jest-circus/node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", "engines": { - "node": ">=7.0.0" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/jest-circus/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/jest-circus/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/jest-circus/node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, "engines": { - "node": ">=8" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/jest-circus/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/jest-cli": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", "dependencies": { - "has-flag": "^4.0.0" + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + }, + "bin": { + "jest": "bin/jest.js" }, "engines": { - "node": ">=8" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, "node_modules/jest-config": { @@ -9264,238 +8857,88 @@ } } }, - "node_modules/jest-config/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, + "node_modules/jest-config/node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/jest-config/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/jest-diff": { + "version": "28.1.1", + "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "chalk": "^4.0.0", + "diff-sequences": "^28.1.1", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.1" }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "5.2.0", + "license": "MIT", "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-config/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/jest-diff/node_modules/pretty-format": { + "version": "28.1.1", + "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" }, "engines": { - "node": ">=7.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/jest-config/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/jest-config/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } + "node_modules/jest-diff/node_modules/react-is": { + "version": "18.2.0", + "license": "MIT" }, - "node_modules/jest-config/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/jest-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", "dependencies": { - "has-flag": "^4.0.0" + "detect-newline": "^3.0.0" }, "engines": { - "node": ">=8" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/jest-diff": { + "node_modules/jest-each": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", "dependencies": { + "@jest/types": "^27.5.1", "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", "pretty-format": "^27.5.1" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/jest-diff/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-diff/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/jest-diff/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-diff/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-docblock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", - "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-each": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", - "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", - "dependencies": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1" - }, + "node_modules/jest-each/node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/jest-each/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-each/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/jest-each/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-each/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-environment-jsdom": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", @@ -9530,11 +8973,10 @@ } }, "node_modules/jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "version": "28.0.2", + "license": "MIT", "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, "node_modules/jest-haste-map": { @@ -9589,68 +9031,48 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/jest-jasmine2/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-jasmine2/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "node_modules/jest-jasmine2/node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/jest-jasmine2/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/jest-jasmine2/node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", "dependencies": { - "color-name": "~1.1.4" + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" }, "engines": { - "node": ">=7.0.0" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/jest-jasmine2/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/jest-jasmine2/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/jest-jasmine2/node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", "engines": { - "node": ">=8" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/jest-jasmine2/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/jest-jasmine2/node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", "dependencies": { - "has-flag": "^4.0.0" + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" }, "engines": { - "node": ">=8" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-leak-detector": { @@ -9665,83 +9087,53 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/jest-matcher-utils": { + "node_modules/jest-leak-detector/node_modules/jest-get-type": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/jest-matcher-utils/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/jest-matcher-utils": { + "version": "28.1.1", + "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "chalk": "^4.0.0", + "jest-diff": "^28.1.1", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.1" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/jest-matcher-utils/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "5.2.0", + "license": "MIT", "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-matcher-utils/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/jest-matcher-utils/node_modules/pretty-format": { + "version": "28.1.1", + "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" }, "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/jest-matcher-utils/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/jest-matcher-utils/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "node_modules/jest-matcher-utils/node_modules/react-is": { + "version": "18.2.0", + "license": "MIT" }, "node_modules/jest-message-util": { "version": "27.5.1", @@ -9762,104 +9154,40 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/jest-message-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", "dependencies": { - "color-convert": "^2.0.1" + "@jest/types": "^27.5.1", + "@types/node": "*" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/jest-message-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", "engines": { - "node": ">=10" + "node": ">=6" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } } }, - "node_modules/jest-message-util/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, + "node_modules/jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-message-util/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/jest-message-util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-message-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-mock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", - "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", - "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-resolve": { @@ -9895,70 +9223,6 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/jest-resolve/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-resolve/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-resolve/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-resolve/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/jest-resolve/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-runner": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", @@ -9990,70 +9254,6 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/jest-runner/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-runner/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-runner/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-runner/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/jest-runner/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runner/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-runtime": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", @@ -10086,78 +9286,6 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/jest-runtime/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-runtime/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-runtime/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-runtime/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/jest-runtime/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-serializer": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", @@ -10202,68 +9330,62 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/jest-snapshot/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, + "node_modules/jest-snapshot/node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/jest-snapshot/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/jest-snapshot/node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/jest-snapshot/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, + "node_modules/jest-snapshot/node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", "engines": { - "node": ">=7.0.0" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/jest-snapshot/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/jest-snapshot/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/jest-snapshot/node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, "engines": { - "node": ">=8" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/jest-snapshot/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dependencies": { - "has-flag": "^4.0.0" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=8" + "node": ">=10" } }, "node_modules/jest-util": { @@ -10282,70 +9404,6 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/jest-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-util/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-util/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/jest-util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-validate": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", @@ -10362,79 +9420,23 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/jest-validate/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-validate/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-validate/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-validate/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/jest-validate/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-validate/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, + "node_modules/jest-validate/node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", "engines": { - "node": ">=8" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-watch-typeahead": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.0.0.tgz", - "integrity": "sha512-jxoszalAb394WElmiJTFBMzie/RDCF+W7Q29n5LzOPtcoQoHWfdUtHFkbhgf5NwWe8uMOxvKb/g7ea7CshfkTw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz", + "integrity": "sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw==", "dependencies": { "ansi-escapes": "^4.3.1", "chalk": "^4.0.0", - "jest-regex-util": "^27.0.0", - "jest-watcher": "^27.0.0", + "jest-regex-util": "^28.0.0", + "jest-watcher": "^28.0.0", "slash": "^4.0.0", "string-length": "^5.0.1", "strip-ansi": "^7.0.1" @@ -10443,354 +9445,314 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "peerDependencies": { - "jest": "^27.0.0" + "jest": "^27.0.0 || ^28.0.0" } }, - "node_modules/jest-watch-typeahead/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" + "node_modules/jest-watch-typeahead/node_modules/@jest/console": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.1.tgz", + "integrity": "sha512-0RiUocPVFEm3WRMOStIHbRWllG6iW6E3/gUPnf4lkrVFyXIIDeCe+vlKeYyFOMhB2EPE6FLFCNADSOOQMaqvyA==", + "dependencies": { + "@jest/types": "^28.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.1", + "jest-util": "^28.1.1", + "slash": "^3.0.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/jest-watch-typeahead/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, + "node_modules/jest-watch-typeahead/node_modules/@jest/console/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-watch-typeahead/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/jest-watch-typeahead/node_modules/@jest/test-result": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.1.tgz", + "integrity": "sha512-hPmkugBktqL6rRzwWAtp1JtYT4VHwv8OQ+9lE5Gymj6dHzubI/oJHMUpPOt8NrdVWSrz9S7bHjJUmv2ggFoUNQ==", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" + "@jest/console": "^28.1.1", + "@jest/types": "^28.1.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-watch-typeahead/node_modules/char-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz", - "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==", "engines": { - "node": ">=12.20" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/jest-watch-typeahead/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/jest-watch-typeahead/node_modules/@jest/types": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.1.tgz", + "integrity": "sha512-vRXVqSg1VhDnB8bWcmvLzmg0Bt9CRKVgHPXqYwvWMX3TvAjeO+nRuK6+VdTKCtWOvYlmkF/HqNAL/z+N3B53Kw==", "dependencies": { - "color-name": "~1.1.4" + "@jest/schemas": "^28.0.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" }, "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/jest-watch-typeahead/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/jest-watch-typeahead/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node_modules/jest-watch-typeahead/node_modules/@types/yargs": { + "version": "17.0.10", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.10.tgz", + "integrity": "sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==", + "dependencies": { + "@types/yargs-parser": "*" } }, - "node_modules/jest-watch-typeahead/node_modules/string-length": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", - "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", - "dependencies": { - "char-regex": "^2.0.0", - "strip-ansi": "^7.0.1" - }, + "node_modules/jest-watch-typeahead/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "engines": { - "node": ">=12.20" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-watch-typeahead/node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, + "node_modules/jest-watch-typeahead/node_modules/emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", "engines": { "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/jest-watch-typeahead/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, - "node_modules/jest-watcher": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", - "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "node_modules/jest-watch-typeahead/node_modules/jest-message-util": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.1.tgz", + "integrity": "sha512-xoDOOT66fLfmTRiqkoLIU7v42mal/SqwDKvfmfiWAdJMSJiU+ozgluO7KbvoAgiwIrrGZsV7viETjc8GNrA/IQ==", "dependencies": { - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.1", + "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", - "jest-util": "^27.5.1", - "string-length": "^4.0.1" + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/jest-watcher/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, + "node_modules/jest-watch-typeahead/node_modules/jest-message-util/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-watcher/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "node_modules/jest-watch-typeahead/node_modules/jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/jest-watcher/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/jest-watch-typeahead/node_modules/jest-util": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.1.tgz", + "integrity": "sha512-FktOu7ca1DZSyhPAxgxB6hfh2+9zMoJ7aEQA759Z6p45NuO8mWcqujH+UdHlCm/V6JTWwDztM2ITCzU1ijJAfw==", "dependencies": { - "color-name": "~1.1.4" + "@jest/types": "^28.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" }, "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-watcher/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/jest-watcher/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/jest-watcher/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/jest-watch-typeahead/node_modules/jest-watcher": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.1.tgz", + "integrity": "sha512-RQIpeZ8EIJMxbQrXpJQYIIlubBnB9imEHsxxE41f54ZwcqWLysL/A0ZcdMirf+XsMn3xfphVQVV4EW0/p7i7Ug==", "dependencies": { - "has-flag": "^4.0.0" + "@jest/test-result": "^28.1.1", + "@jest/types": "^28.1.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.1", + "string-length": "^4.0.1" }, "engines": { - "node": ">=8" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">= 10.13.0" + "node": ">=10" } }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, "engines": { "node": ">=8" } }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "node_modules/jest-watch-typeahead/node_modules/pretty-format": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.1.tgz", + "integrity": "sha512-wwJbVTGFHeucr5Jw2bQ9P+VYHyLdAqedFLEkdQUVaBF/eiidDwH5OpilINq4mEfhbCjLnirt6HTTDhv1HaTIQw==", "dependencies": { - "has-flag": "^4.0.0" + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/jest/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, + "node_modules/jest-watch-typeahead/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/jest-watch-typeahead/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", "engines": { - "node": ">=8" + "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/jest-watch-typeahead/node_modules/string-length": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", + "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "char-regex": "^2.0.0", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=10" + "node": ">=12.20" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest/node_modules/color-convert": { + "node_modules/jest-watch-typeahead/node_modules/string-length/node_modules/char-regex": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz", + "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==", + "engines": { + "node": ">=12.20" + } + }, + "node_modules/jest-watch-typeahead/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", "dependencies": { - "color-name": "~1.1.4" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">=7.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/jest/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/jest/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/jest-watch-typeahead/node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/jest/node_modules/jest-cli": { + "node_modules/jest-watcher": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", - "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", + "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", "dependencies": { - "@jest/core": "^27.5.1", "@jest/test-result": "^27.5.1", "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^27.5.1", "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "prompts": "^2.0.1", - "yargs": "^16.2.0" - }, - "bin": { - "jest": "bin/jest.js" + "string-length": "^4.0.1" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "engines": { + "node": ">= 10.13.0" } }, - "node_modules/jest/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dependencies": { "has-flag": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, "node_modules/js-tokens": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "license": "MIT" }, "node_modules/js-yaml": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -10798,6 +9760,10 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/js-yaml/node_modules/argparse": { + "version": "2.0.1", + "license": "Python-2.0" + }, "node_modules/jsdom": { "version": "16.7.0", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", @@ -10843,10 +9809,33 @@ } } }, + "node_modules/jsdom/node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jsdom/node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/jsesc": { "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, @@ -10854,11 +9843,6 @@ "node": ">=4" } }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -10877,12 +9861,11 @@ "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" }, "node_modules/json5": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -10910,9 +9893,9 @@ } }, "node_modules/jsx-ast-utils": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.2.tgz", - "integrity": "sha512-HDAyJ4MNQBboGpUnHAVUNJs6X0lh058s6FuixsFGP7MgJYpD6Vasd6nzSG5iIfXu1zAYlHJ/zsOKNlrenTUBnw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.0.tgz", + "integrity": "sha512-XzO9luP6L0xkxwhIJMTJQpZo/eeN60K08jHdexfD569AGxeNug6UketeHXEhROoM8aR7EcUoOQmIhcJQjcuq8Q==", "dependencies": { "array-includes": "^3.1.4", "object.assign": "^4.1.2" @@ -10953,7 +9936,7 @@ "node_modules/language-tags": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", - "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", + "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", "dependencies": { "language-subtag-registry": "~0.3.2" } @@ -10992,9 +9975,9 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, "node_modules/loader-runner": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", - "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "engines": { "node": ">=6.11.5" } @@ -11028,18 +10011,17 @@ }, "node_modules/lodash": { "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "license": "MIT" }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" }, "node_modules/lodash.merge": { "version": "4.6.2", @@ -11049,17 +10031,21 @@ "node_modules/lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==" }, "node_modules/lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" + }, + "node_modules/long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" }, "node_modules/loose-envify": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, @@ -11075,11 +10061,6 @@ "tslib": "^2.0.3" } }, - "node_modules/lower-case/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -11093,8 +10074,7 @@ }, "node_modules/lz-string": { "version": "1.4.4", - "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", - "integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=", + "license": "WTFPL", "bin": { "lz-string": "bin/bin.js" } @@ -11121,14 +10101,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/makeerror": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", @@ -11145,17 +10117,17 @@ "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "engines": { "node": ">= 0.6" } }, "node_modules/memfs": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.1.tgz", - "integrity": "sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw==", + "version": "3.4.6", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.6.tgz", + "integrity": "sha512-rH9mjopto6Wkr7RFuH9l9dk3qb2XGOcYKr7xMhaYqfzuJqOqhRrcFvfD7JMuPj6SLmPreh5+6eAuv36NFAU+Mw==", "dependencies": { - "fs-monkey": "1.0.3" + "fs-monkey": "^1.0.3" }, "engines": { "node": ">= 4.0.0" @@ -11164,7 +10136,7 @@ "node_modules/merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" }, "node_modules/merge-stream": { "version": "2.0.0", @@ -11182,7 +10154,7 @@ "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", "engines": { "node": ">= 0.6" } @@ -11212,16 +10184,14 @@ }, "node_modules/mime-db": { "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -11239,16 +10209,15 @@ }, "node_modules/min-indent": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/mini-css-extract-plugin": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.0.tgz", - "integrity": "sha512-ndG8nxCEnAemsg4FSgS+yNyHKgkTB4nPKqCOgh65j3/30qqC5RaSQQXMm++Y6sb6E1zRSxPkztj9fqxhS1Eo6w==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.1.tgz", + "integrity": "sha512-wd+SD57/K6DiV7jIR34P+s3uckTRuQvx0tKPcvjFlrEylk6P4mQ2KSWk1hblj1Kxaqok7LogKOieygXqBczNlg==", "dependencies": { "schema-utils": "^4.0.0" }, @@ -11344,32 +10313,31 @@ "mkdirp": "bin/cmd.js" } }, + "node_modules/monaco-editor": { + "version": "0.33.0", + "license": "MIT", + "peer": true + }, "node_modules/ms": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "license": "MIT" }, "node_modules/multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", "dependencies": { - "dns-packet": "^1.3.1", + "dns-packet": "^5.2.2", "thunky": "^1.0.2" }, "bin": { "multicast-dns": "cli.js" } }, - "node_modules/multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=" - }, "node_modules/nanoid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.2.tgz", - "integrity": "sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -11380,7 +10348,7 @@ "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" }, "node_modules/negotiator": { "version": "0.6.3", @@ -11404,10 +10372,24 @@ "tslib": "^2.0.3" } }, - "node_modules/no-case/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } }, "node_modules/node-forge": { "version": "1.3.1", @@ -11420,17 +10402,15 @@ "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" }, "node_modules/node-releases": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", - "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==" + "version": "2.0.5", + "license": "MIT" }, "node_modules/normalize-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -11438,7 +10418,7 @@ "node_modules/normalize-range": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", "engines": { "node": ">=0.10.0" } @@ -11466,11 +10446,14 @@ } }, "node_modules/nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dependencies": { - "boolbase": "~1.0.0" + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" } }, "node_modules/nwsapi": { @@ -11480,39 +10463,23 @@ }, "node_modules/object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/object-hash": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", - "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", "engines": { "node": ">= 6" } }, "node_modules/object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -11572,13 +10539,14 @@ } }, "node_modules/object.getownpropertydescriptors": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz", - "integrity": "sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.4.tgz", + "integrity": "sha512-sccv3L/pMModT6dJAYF3fzGMVcb38ysQ0tEE6ixv2yXJDtEIPph268OlAdJj5/qZMZDq2g/jqvwppt36uS/uQQ==", "dependencies": { + "array.prototype.reduce": "^1.0.4", "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.1" }, "engines": { "node": ">= 0.8" @@ -11588,12 +10556,12 @@ } }, "node_modules/object.hasown": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", - "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz", + "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==", "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -11621,9 +10589,9 @@ "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" }, "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dependencies": { "ee-first": "1.1.1" }, @@ -11642,7 +10610,7 @@ "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dependencies": { "wrappy": "1" } @@ -11721,26 +10689,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/p-retry": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz", - "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", "dependencies": { - "@types/retry": "^0.12.0", + "@types/retry": "0.12.0", "retry": "^0.13.1" }, "engines": { @@ -11764,11 +10718,6 @@ "tslib": "^2.0.3" } }, - "node_modules/param-case/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -11819,15 +10768,9 @@ "tslib": "^2.0.3" } }, - "node_modules/pascal-case/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, "node_modules/path": { "version": "0.12.7", - "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", - "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=", + "license": "MIT", "dependencies": { "process": "^0.11.1", "util": "^0.10.3" @@ -11844,7 +10787,7 @@ "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "engines": { "node": ">=0.10.0" } @@ -11865,7 +10808,7 @@ "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" }, "node_modules/path-type": { "version": "4.0.0", @@ -11878,12 +10821,11 @@ "node_modules/performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" }, "node_modules/phaser": { "version": "3.55.2", - "resolved": "https://registry.npmjs.org/phaser/-/phaser-3.55.2.tgz", - "integrity": "sha512-amKXsbb2Ht29dGPKvt1edq3yGGYKtq8373GpJYGKPNPnneYY6MtVTOgjHDuZwtmUyK4v86FugkT3hzW/N4tjxQ==", + "license": "MIT", "dependencies": { "eventemitter3": "^4.0.7", "path": "^0.12.7" @@ -11891,13 +10833,11 @@ }, "node_modules/picocolors": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -11905,6 +10845,14 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/pirates": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", @@ -12034,36 +10982,15 @@ "node_modules/pkg-up/node_modules/path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "engines": { "node": ">=4" } }, - "node_modules/portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", - "dependencies": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "engines": { - "node": ">= 0.12.0" - } - }, - "node_modules/portfinder/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } - }, "node_modules/postcss": { - "version": "8.4.12", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz", - "integrity": "sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==", + "version": "8.4.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", + "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", "funding": [ { "type": "opencollective", @@ -12075,7 +11002,7 @@ } ], "dependencies": { - "nanoid": "^3.3.1", + "nanoid": "^3.3.4", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -12084,14 +11011,21 @@ } }, "node_modules/postcss-attribute-case-insensitive": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.0.tgz", - "integrity": "sha512-b4g9eagFGq9T5SWX4+USfVyjIb3liPnjhHHRMP7FMB2kFVpYyfEscV0wP3eaXhKlcHKUut8lt5BGoeylWA/dBQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.1.tgz", + "integrity": "sha512-wrt2VndqSLJpyBRNz9OmJcgnhI9MaongeWgapdBuUMu2a/KNJ8SENesG4SdiTnQwGO9b1VKbTWYAfCPeokLqZQ==", "dependencies": { - "postcss-selector-parser": "^6.0.2" + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" }, "peerDependencies": { - "postcss": "^8.0.2" + "postcss": "^8.3" } }, "node_modules/postcss-browser-comments": { @@ -12133,43 +11067,55 @@ } }, "node_modules/postcss-color-functional-notation": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.2.tgz", - "integrity": "sha512-DXVtwUhIk4f49KK5EGuEdgx4Gnyj6+t2jBSEmxvpIK9QI40tWrpS2Pua8Q7iIZWBrki2QOaeUdEaLPPa91K0RQ==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.3.tgz", + "integrity": "sha512-5fbr6FzFzjwHXKsVnkmEYrJYG8VNNzvD1tAXaPPWR97S6rhKI5uh2yOfV5TAzhDkZoq4h+chxEplFDc8GeyFtw==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { "postcss": "^8.4" } }, "node_modules/postcss-color-hex-alpha": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.3.tgz", - "integrity": "sha512-fESawWJCrBV035DcbKRPAVmy21LpoyiXdPTuHUfWJ14ZRjY7Y7PA6P4g8z6LQGYhU1WAxkTxjIjurXzoe68Glw==", + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz", + "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { "postcss": "^8.4" } }, "node_modules/postcss-color-rebeccapurple": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.0.2.tgz", - "integrity": "sha512-SFc3MaocHaQ6k3oZaFwH8io6MdypkUtEy/eXzXEB1vEQlO3S3oDc/FSZA8AsS04Z25RirQhlDlHLh3dn7XewWw==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.0.tgz", + "integrity": "sha512-1jtE5AKnZcKq4pjOrltFHcbEM2/IvtbD1OdhZ/wqds18//bh0UmQkffcCkzDJU+/vGodfIsVQeKn+45CJvX9Bw==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { "postcss": "^8.3" } @@ -12192,10 +11138,11 @@ } }, "node_modules/postcss-convert-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.0.tgz", - "integrity": "sha512-GkyPbZEYJiWtQB0KZ0X6qusqFHUepguBCNFi9t5JJc7I2OTXG7C0twbTLvCfaKOLl3rSXmpAwV7W5txd91V84g==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz", + "integrity": "sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==", "dependencies": { + "browserslist": "^4.20.3", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -12206,42 +11153,57 @@ } }, "node_modules/postcss-custom-media": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz", - "integrity": "sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz", + "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, "engines": { - "node": ">=10.0.0" + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" }, "peerDependencies": { - "postcss": "^8.1.0" + "postcss": "^8.3" } }, "node_modules/postcss-custom-properties": { - "version": "12.1.5", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.5.tgz", - "integrity": "sha512-FHbbB/hRo/7cxLGkc2NS7cDRIDN1oFqQnUKBiyh4b/gwk8DD8udvmRDpUhEK836kB8ggUCieHVOvZDnF9XhI3g==", + "version": "12.1.8", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.8.tgz", + "integrity": "sha512-8rbj8kVu00RQh2fQF81oBqtduiANu4MIxhyf0HbbStgPtnFlWn0yiaYTpLHrPnJbffVY1s9apWsIoVZcc68FxA==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { "postcss": "^8.4" } }, "node_modules/postcss-custom-selectors": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.0.tgz", - "integrity": "sha512-/1iyBhz/W8jUepjGyu7V1OPcGbc636snN1yXEQCinb6Bwt7KxsiU7/bLQlp8GwAXzCh7cobBU5odNn/2zQWR8Q==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz", + "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==", "dependencies": { "postcss-selector-parser": "^6.0.4" }, "engines": { - "node": ">=10.0.0" + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" }, "peerDependencies": { - "postcss": "^8.1.2" + "postcss": "^8.3" } }, "node_modules/postcss-dir-pseudo-class": { @@ -12259,9 +11221,9 @@ } }, "node_modules/postcss-discard-comments": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.1.tgz", - "integrity": "sha512-5JscyFmvkUxz/5/+TB3QTTT9Gi9jHkcn8dcmmuN68JQcv3aQg4y88yEHHhwFB52l/NkaJ43O0dbksGMAo49nfQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", "engines": { "node": "^10 || ^12 || >=14.0" }, @@ -12400,6 +11362,22 @@ "postcss": "^8.4" } }, + "node_modules/postcss-import": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", + "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, "node_modules/postcss-initial": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", @@ -12427,9 +11405,9 @@ } }, "node_modules/postcss-lab-function": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.1.2.tgz", - "integrity": "sha512-isudf5ldhg4fk16M8viAwAbg6Gv14lVO35N3Z/49NhbwPQ2xbiEoHgrRgpgQojosF4vF7jY653ktB6dDrUOR8Q==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.0.tgz", + "integrity": "sha512-Zb1EO9DGYfa3CP8LhINHCcTTCTLI+R3t7AX2mKsDzdgVQ/GkCpHOTgOr6HBHslP7XDdVbqgHW5vvRPMdVANQ8w==", "dependencies": { "@csstools/postcss-progressive-custom-properties": "^1.1.0", "postcss-value-parser": "^4.2.0" @@ -12437,6 +11415,10 @@ "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { "postcss": "^8.4" } @@ -12490,6 +11472,20 @@ "webpack": "^5.0.0" } }, + "node_modules/postcss-loader/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/postcss-logical": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", @@ -12513,9 +11509,9 @@ } }, "node_modules/postcss-merge-longhand": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.3.tgz", - "integrity": "sha512-lX8GPGvZ0iGP/IboM7HXH5JwkXvXod1Rr8H8ixwiA372hArk0zP4ZcCy4z4Prg/bfNlbbTf0KCOjCF9kKnpP/w==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.6.tgz", + "integrity": "sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw==", "dependencies": { "postcss-value-parser": "^4.2.0", "stylehacks": "^5.1.0" @@ -12528,9 +11524,9 @@ } }, "node_modules/postcss-merge-rules": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.1.tgz", - "integrity": "sha512-8wv8q2cXjEuCcgpIB1Xx1pIy8/rhMPIQqYKNzEdyx37m6gpq83mQQdCxgIkFgliyEnKvdwJf/C61vN4tQDq4Ww==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz", + "integrity": "sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==", "dependencies": { "browserslist": "^4.16.6", "caniuse-api": "^3.0.0", @@ -12575,9 +11571,9 @@ } }, "node_modules/postcss-minify-params": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.2.tgz", - "integrity": "sha512-aEP+p71S/urY48HWaRHasyx4WHQJyOYaKpQ6eXl8k0kxg66Wt/30VR6/woh8THgcpRbonJD5IeD+CzNhPi1L8g==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz", + "integrity": "sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==", "dependencies": { "browserslist": "^4.16.6", "cssnano-utils": "^3.1.0", @@ -12591,9 +11587,9 @@ } }, "node_modules/postcss-minify-selectors": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.0.tgz", - "integrity": "sha512-vYxvHkW+iULstA+ctVNx0VoRAR4THQQRkG77o0oa4/mBS0OzGvvzLIvHDv/nNEM0crzN2WIyFU5X7wZhaUK3RA==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", "dependencies": { "postcss-selector-parser": "^6.0.5" }, @@ -12678,15 +11674,20 @@ } }, "node_modules/postcss-nesting": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.1.3.tgz", - "integrity": "sha512-wUC+/YCik4wH3StsbC5fBG1s2Z3ZV74vjGqBFYtmYKlVxoio5TYGM06AiaKkQPPlkXWn72HKfS7Cw5PYxnoXSw==", + "version": "10.1.8", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.1.8.tgz", + "integrity": "sha512-txdb3/idHYsBbNDFo1PFY0ExCgH5nfWi8G5lO49e6iuU42TydbODTzJgF5UuL5bhgeSlnAtDgfFTDG0Cl1zaSQ==", "dependencies": { - "postcss-selector-parser": "^6.0.9" + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" }, "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { "postcss": "^8.4" } @@ -12734,9 +11735,9 @@ } }, "node_modules/postcss-normalize-positions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.0.tgz", - "integrity": "sha512-8gmItgA4H5xiUxgN/3TVvXRoJxkAWLW6f/KKhdsH03atg0cB8ilXnrB5PpSshwVu/dD2ZsRFQcR1OEmSBDAgcQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -12748,9 +11749,9 @@ } }, "node_modules/postcss-normalize-repeat-style": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.0.tgz", - "integrity": "sha512-IR3uBjc+7mcWGL6CtniKNQ4Rr5fTxwkaDHwMBDGGs1x9IVRkYIT/M4NelZWkAOBdV6v3Z9S46zqaKGlyzHSchw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -12852,9 +11853,9 @@ } }, "node_modules/postcss-ordered-values": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.1.tgz", - "integrity": "sha512-7lxgXF0NaoMIgyihL/2boNAEZKiW0+HkMhdKMTD93CjW8TdCy2hSdj8lsAo+uwm7EDG16Da2Jdmtqpedl0cMfw==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", "dependencies": { "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" @@ -12900,32 +11901,36 @@ } }, "node_modules/postcss-preset-env": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.4.3.tgz", - "integrity": "sha512-dlPA65g9KuGv7YsmGyCKtFkZKCPLkoVMUE3omOl6yM+qrynVHxFvf0tMuippIrXB/sB/MyhL1FgTIbrO+qMERg==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.7.1.tgz", + "integrity": "sha512-1sx6+Nl1wMVJzaYLVaz4OAR6JodIN/Z1upmVqLwSPCLT6XyxrEoePgNMHPH08kseLe3z06i9Vfkt/32BYEKDeA==", "dependencies": { - "@csstools/postcss-color-function": "^1.0.3", + "@csstools/postcss-cascade-layers": "^1.0.2", + "@csstools/postcss-color-function": "^1.1.0", "@csstools/postcss-font-format-keywords": "^1.0.0", - "@csstools/postcss-hwb-function": "^1.0.0", + "@csstools/postcss-hwb-function": "^1.0.1", "@csstools/postcss-ic-unit": "^1.0.0", - "@csstools/postcss-is-pseudo-class": "^2.0.1", + "@csstools/postcss-is-pseudo-class": "^2.0.4", "@csstools/postcss-normalize-display-values": "^1.0.0", - "@csstools/postcss-oklab-function": "^1.0.2", + "@csstools/postcss-oklab-function": "^1.1.0", "@csstools/postcss-progressive-custom-properties": "^1.3.0", - "autoprefixer": "^10.4.4", - "browserslist": "^4.20.2", + "@csstools/postcss-stepped-value-functions": "^1.0.0", + "@csstools/postcss-trigonometric-functions": "^1.0.1", + "@csstools/postcss-unset-value": "^1.0.1", + "autoprefixer": "^10.4.7", + "browserslist": "^4.20.3", "css-blank-pseudo": "^3.0.3", "css-has-pseudo": "^3.0.4", "css-prefers-color-scheme": "^6.0.3", - "cssdb": "^6.5.0", - "postcss-attribute-case-insensitive": "^5.0.0", + "cssdb": "^6.6.3", + "postcss-attribute-case-insensitive": "^5.0.1", "postcss-clamp": "^4.1.0", - "postcss-color-functional-notation": "^4.2.2", + "postcss-color-functional-notation": "^4.2.3", "postcss-color-hex-alpha": "^8.0.3", "postcss-color-rebeccapurple": "^7.0.2", - "postcss-custom-media": "^8.0.0", - "postcss-custom-properties": "^12.1.5", - "postcss-custom-selectors": "^6.0.0", + "postcss-custom-media": "^8.0.1", + "postcss-custom-properties": "^12.1.7", + "postcss-custom-selectors": "^6.0.2", "postcss-dir-pseudo-class": "^6.0.4", "postcss-double-position-gradients": "^3.1.1", "postcss-env-function": "^4.0.6", @@ -12935,36 +11940,44 @@ "postcss-gap-properties": "^3.0.3", "postcss-image-set-function": "^4.0.6", "postcss-initial": "^4.0.1", - "postcss-lab-function": "^4.1.2", + "postcss-lab-function": "^4.2.0", "postcss-logical": "^5.0.4", "postcss-media-minmax": "^5.0.0", - "postcss-nesting": "^10.1.3", + "postcss-nesting": "^10.1.7", "postcss-opacity-percentage": "^1.1.2", "postcss-overflow-shorthand": "^3.0.3", "postcss-page-break": "^3.0.4", "postcss-place": "^7.0.4", - "postcss-pseudo-class-any-link": "^7.1.1", + "postcss-pseudo-class-any-link": "^7.1.4", "postcss-replace-overflow-wrap": "^4.0.0", - "postcss-selector-not": "^5.0.0", + "postcss-selector-not": "^6.0.0", "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { "postcss": "^8.4" } }, "node_modules/postcss-pseudo-class-any-link": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.1.tgz", - "integrity": "sha512-JRoLFvPEX/1YTPxRxp1JO4WxBVXJYrSY7NHeak5LImwJ+VobFMwYDQHvfTXEpcn+7fYIeGkC29zYFhFWIZD8fg==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.4.tgz", + "integrity": "sha512-JxRcLXm96u14N3RzFavPIE9cRPuOqLDuzKeBsqi4oRk4vt8n0A7I0plFs/VXTg7U2n7g/XkQi0OwqTO3VWBfEg==", "dependencies": { - "postcss-selector-parser": "^6.0.9" + "postcss-selector-parser": "^6.0.10" }, "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { "postcss": "^8.4" } @@ -13007,14 +12020,21 @@ } }, "node_modules/postcss-selector-not": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-5.0.0.tgz", - "integrity": "sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-6.0.0.tgz", + "integrity": "sha512-i/HI/VNd3V9e1WOLCwJsf9nePBRXqcGtVibcJ9FsVo0agfDEfsLSlFt94aYjY35wUNcdG0KrvdyjEr7It50wLQ==", "dependencies": { - "balanced-match": "^1.0.0" + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" }, "peerDependencies": { - "postcss": "^8.1.0" + "postcss": "^8.3" } }, "node_modules/postcss-selector-parser": { @@ -13044,19 +12064,12 @@ "postcss": "^8.2.15" } }, - "node_modules/postcss-svgo/node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" + "node_modules/postcss-svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" } }, "node_modules/postcss-svgo/node_modules/css-tree": { @@ -13071,78 +12084,11 @@ "node": ">=8.0.0" } }, - "node_modules/postcss-svgo/node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/postcss-svgo/node_modules/dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/postcss-svgo/node_modules/domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/postcss-svgo/node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, "node_modules/postcss-svgo/node_modules/mdn-data": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" }, - "node_modules/postcss-svgo/node_modules/nth-check": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/postcss-svgo/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/postcss-svgo/node_modules/svgo": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", @@ -13212,8 +12158,7 @@ }, "node_modules/pretty-format": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", @@ -13225,8 +12170,7 @@ }, "node_modules/pretty-format/node_modules/ansi-styles": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -13234,15 +12178,9 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/pretty-format/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - }, "node_modules/process": { "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "license": "MIT", "engines": { "node": ">= 0.6.0" } @@ -13274,8 +12212,7 @@ }, "node_modules/prop-types": { "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -13284,8 +12221,7 @@ }, "node_modules/prop-types-extra": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz", - "integrity": "sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==", + "license": "MIT", "dependencies": { "react-is": "^16.3.2", "warning": "^4.0.0" @@ -13294,6 +12230,14 @@ "react": ">=0.14.0" } }, + "node_modules/prop-types-extra/node_modules/react-is": { + "version": "16.13.1", + "license": "MIT" + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "license": "MIT" + }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -13330,16 +12274,19 @@ "node_modules/q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", "engines": { "node": ">=0.6.0", "teleport": ">=0.2.0" } }, "node_modules/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==", + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dependencies": { + "side-channel": "^1.0.4" + }, "engines": { "node": ">=0.6" }, @@ -13402,12 +12349,12 @@ } }, "node_modules/raw-body": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", - "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", "dependencies": { "bytes": "3.1.2", - "http-errors": "1.8.1", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" }, @@ -13423,10 +12370,20 @@ "node": ">= 0.8" } }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/react": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.0.0.tgz", - "integrity": "sha512-x+VL6wbT4JRVPm7EGxXhZ8w8LTROaxPXOqhlGyVSrv0sB1jkyFGgXxJ8LVoPRLvPR6/CIZGFmfzqUa2NYeMr2A==", + "version": "18.2.0", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" }, @@ -13451,18 +12408,13 @@ } }, "node_modules/react-bootstrap": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-2.2.3.tgz", - "integrity": "sha512-gXsAEBdDUHnOpJ2C+DDQ4mFt7tN6u6qWnTH3tqiE9jUvV6gGY8uHFp0iGBsM+yjrBwmR6bqCBFh8Z82aQj1LSw==", + "version": "2.4.0", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.17.2", "@restart/hooks": "^0.4.6", "@restart/ui": "^1.2.0", - "@types/invariant": "^2.2.35", - "@types/prop-types": "^15.7.4", - "@types/react": ">=16.14.8", "@types/react-transition-group": "^4.4.4", - "@types/warning": "^3.0.0", "classnames": "^2.3.1", "dom-helpers": "^5.2.1", "invariant": "^2.2.4", @@ -13473,89 +12425,50 @@ "warning": "^4.0.3" }, "peerDependencies": { + "@types/react": ">=16.14.8", "react": ">=16.14.0", "react-dom": ">=16.14.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, "node_modules/react-dev-utils": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.0.tgz", - "integrity": "sha512-xBQkitdxozPxt1YZ9O1097EJiVpwHr9FoAuEVURCKV0Av8NBERovJauzP7bo1ThvuhZ4shsQ1AJiu4vQpoT1AQ==", + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", + "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", "dependencies": { "@babel/code-frame": "^7.16.0", - "address": "^1.1.2", - "browserslist": "^4.18.1", - "chalk": "^4.1.2", - "cross-spawn": "^7.0.3", - "detect-port-alt": "^1.1.6", - "escape-string-regexp": "^4.0.0", - "filesize": "^8.0.6", - "find-up": "^5.0.0", - "fork-ts-checker-webpack-plugin": "^6.5.0", - "global-modules": "^2.0.0", - "globby": "^11.0.4", - "gzip-size": "^6.0.0", - "immer": "^9.0.7", - "is-root": "^2.1.0", - "loader-utils": "^3.2.0", - "open": "^8.4.0", - "pkg-up": "^3.1.0", - "prompts": "^2.4.2", - "react-error-overlay": "^6.0.10", - "recursive-readdir": "^2.2.2", - "shell-quote": "^1.7.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/react-dev-utils/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/react-dev-utils/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/react-dev-utils/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" + "address": "^1.1.2", + "browserslist": "^4.18.1", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "detect-port-alt": "^1.1.6", + "escape-string-regexp": "^4.0.0", + "filesize": "^8.0.6", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^6.5.0", + "global-modules": "^2.0.0", + "globby": "^11.0.4", + "gzip-size": "^6.0.0", + "immer": "^9.0.7", + "is-root": "^2.1.0", + "loader-utils": "^3.2.0", + "open": "^8.4.0", + "pkg-up": "^3.1.0", + "prompts": "^2.4.2", + "react-error-overlay": "^6.0.11", + "recursive-readdir": "^2.2.2", + "shell-quote": "^1.7.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=14" } }, - "node_modules/react-dev-utils/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, "node_modules/react-dev-utils/node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -13567,14 +12480,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/react-dev-utils/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, "node_modules/react-dev-utils/node_modules/loader-utils": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", @@ -13583,43 +12488,29 @@ "node": ">= 12.13.0" } }, - "node_modules/react-dev-utils/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/react-dom": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.0.0.tgz", - "integrity": "sha512-XqX7uzmFo0pUceWFCt7Gff6IyIMzFUn7QMZrbrQfGxtaxXZIcGQzoNpRLE3fQLnS4XzLLPMZX2T9TRcSrasicw==", + "version": "18.2.0", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0", - "scheduler": "^0.21.0" + "scheduler": "^0.23.0" }, "peerDependencies": { - "react": "^18.0.0" + "react": "^18.2.0" } }, "node_modules/react-error-overlay": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.10.tgz", - "integrity": "sha512-mKR90fX7Pm5seCOfz8q9F+66VCc1PGsWSBxKbITjfKVQHMNF2zudxHnMdJiB1fRCb+XsbQV9sO9DCkgsMQgBIA==" + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", + "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" }, "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "version": "17.0.2", + "license": "MIT" }, "node_modules/react-lifecycles-compat": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + "license": "MIT" }, "node_modules/react-refresh": { "version": "0.11.0", @@ -13701,10 +12592,23 @@ } } }, + "node_modules/react-scripts/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/react-transition-group": { "version": "4.4.2", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz", - "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==", + "license": "BSD-3-Clause", "dependencies": { "@babel/runtime": "^7.5.5", "dom-helpers": "^5.0.1", @@ -13716,6 +12620,14 @@ "react-dom": ">=16.6.0" } }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dependencies": { + "pify": "^2.3.0" + } + }, "node_modules/readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", @@ -13731,8 +12643,7 @@ }, "node_modules/readdirp": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", "dependencies": { "picomatch": "^2.2.1" }, @@ -13764,8 +12675,7 @@ }, "node_modules/redent": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "license": "MIT", "dependencies": { "indent-string": "^4.0.0", "strip-indent": "^3.0.0" @@ -13792,13 +12702,12 @@ }, "node_modules/regenerator-runtime": { "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + "license": "MIT" }, "node_modules/regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", + "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", "dependencies": { "@babel/runtime": "^7.8.4" } @@ -13809,12 +12718,13 @@ "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==" }, "node_modules/regexp.prototype.flags": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz", - "integrity": "sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" }, "engines": { "node": ">= 0.4" @@ -13869,7 +12779,7 @@ "node_modules/regjsparser/node_modules/jsesc": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", "bin": { "jsesc": "bin/jsesc" } @@ -13877,7 +12787,7 @@ "node_modules/relateurl": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", "engines": { "node": ">= 0.10" } @@ -13894,84 +12804,9 @@ "strip-ansi": "^6.0.1" } }, - "node_modules/renderkid/node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/renderkid/node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/renderkid/node_modules/dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/renderkid/node_modules/domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/renderkid/node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/renderkid/node_modules/nth-check": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, "node_modules/require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -13987,14 +12822,14 @@ "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" }, "node_modules/resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "dependencies": { - "is-core-module": "^2.8.1", + "is-core-module": "^2.9.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -14016,7 +12851,7 @@ "node": ">=8" } }, - "node_modules/resolve-cwd/node_modules/resolve-from": { + "node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", @@ -14024,14 +12859,6 @@ "node": ">=8" } }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "engines": { - "node": ">=4" - } - }, "node_modules/resolve-url-loader": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", @@ -14080,14 +12907,6 @@ "url": "https://opencollective.com/postcss/" } }, - "node_modules/resolve-url-loader/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/resolve.exports": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", @@ -14128,9 +12947,9 @@ } }, "node_modules/rollup": { - "version": "2.70.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz", - "integrity": "sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==", + "version": "2.75.7", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.7.tgz", + "integrity": "sha512-VSE1iy0eaAYNCxEXaleThdFXqZJ42qDBatAwrfnPlENEZ8erQ+0LYX4JXOLPceWfZpV1VtZwZ3dFCuOZiSyFtQ==", "bin": { "rollup": "dist/bin/rollup" }, @@ -14155,14 +12974,6 @@ "rollup": "^2.0.0" } }, - "node_modules/rollup-plugin-terser/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, "node_modules/rollup-plugin-terser/node_modules/jest-worker": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", @@ -14184,17 +12995,6 @@ "randombytes": "^2.1.0" } }, - "node_modules/rollup-plugin-terser/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -14219,13 +13019,11 @@ }, "node_modules/safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "license": "MIT" }, "node_modules/safer-buffer": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "license": "MIT" }, "node_modules/sanitize.css": { "version": "13.0.0", @@ -14233,9 +13031,8 @@ "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==" }, "node_modules/sass": { - "version": "1.49.10", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.49.10.tgz", - "integrity": "sha512-w37zfWJwKu4I78U4z63u1mmgoncq+v3iOB4yzQMPyAPVHHawaQSnu9C9ysGQnZEhW609jkcLioJcMCqm75JMdg==", + "version": "1.52.3", + "license": "MIT", "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -14302,9 +13099,8 @@ } }, "node_modules/scheduler": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.21.0.tgz", - "integrity": "sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==", + "version": "0.23.0", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" } @@ -14326,10 +13122,16 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/seedrandom": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-2.4.4.tgz", + "integrity": "sha512-9A+PDmgm+2du77B5i0Ip2cxOqqHjgNxnBgglxLcX78A2D6c2rTo61z4jnVABpF4cKeDMDG+cmXXvdnqse2VqMA==", + "peer": true + }, "node_modules/select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" }, "node_modules/selfsigned": { "version": "2.0.1", @@ -14343,37 +13145,30 @@ } }, "node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "6.3.0", + "license": "ISC", "bin": { "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" } }, "node_modules/send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "dependencies": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", + "depd": "2.0.0", + "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.8.1", + "http-errors": "2.0.0", "mime": "1.6.0", "ms": "2.1.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "range-parser": "~1.2.1", - "statuses": "~1.5.0" + "statuses": "2.0.1" }, "engines": { "node": ">= 0.8.0" @@ -14390,7 +13185,7 @@ "node_modules/send/node_modules/debug/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/send/node_modules/ms": { "version": "2.1.3", @@ -14408,7 +13203,7 @@ "node_modules/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", "dependencies": { "accepts": "~1.3.4", "batch": "0.6.1", @@ -14430,10 +13225,18 @@ "ms": "2.0.0" } }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/serve-index/node_modules/http-errors": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", "dependencies": { "depd": "~1.1.2", "inherits": "2.0.3", @@ -14447,27 +13250,35 @@ "node_modules/serve-index/node_modules/inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" }, "node_modules/serve-index/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/serve-index/node_modules/setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", "dependencies": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.17.2" + "send": "0.18.0" }, "engines": { "node": ">= 0.8.0" @@ -14549,17 +13360,15 @@ "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" }, "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "version": "0.6.1", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-js": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -14584,22 +13393,9 @@ "webpack": "^5.0.0" } }, - "node_modules/source-map-loader/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/source-map-resolve": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "license": "MIT", "dependencies": { "atob": "^2.1.2", "decode-uri-component": "^0.2.0" @@ -14614,14 +13410,6 @@ "source-map": "^0.6.0" } }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/sourcemap-codec": { "version": "1.4.8", "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", @@ -14657,13 +13445,13 @@ }, "node_modules/sprintf-js": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + "license": "BSD-3-Clause" }, "node_modules/stable": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" }, "node_modules/stack-utils": { "version": "2.0.5", @@ -14685,31 +13473,49 @@ } }, "node_modules/stackframe": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.1.tgz", - "integrity": "sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg==" + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" }, "node_modules/state-local": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/state-local/-/state-local-1.0.7.tgz", - "integrity": "sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==" + "license": "MIT" }, "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dependencies": { - "safe-buffer": "~5.1.0" + "safe-buffer": "~5.2.0" } }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", @@ -14729,8 +13535,7 @@ }, "node_modules/string-width": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -14742,8 +13547,7 @@ }, "node_modules/string-width/node_modules/emoji-regex": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "license": "MIT" }, "node_modules/string.prototype.matchall": { "version": "4.0.7", @@ -14764,24 +13568,26 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -14802,8 +13608,7 @@ }, "node_modules/strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -14812,11 +13617,11 @@ } }, "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/strip-comments": { @@ -14837,8 +13642,7 @@ }, "node_modules/strip-indent": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "license": "MIT", "dependencies": { "min-indent": "^1.0.0" }, @@ -14888,42 +13692,22 @@ } }, "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "7.2.0", + "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/supports-hyperlinks": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", "dependencies": { - "has-flag": "^4.0.0" + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" }, "engines": { "node": ">=8" @@ -14972,12 +13756,94 @@ "node": ">=4.0.0" } }, - "node_modules/svgo/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "node_modules/svgo/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dependencies": { - "sprintf-js": "~1.0.2" + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "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" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/svgo/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/svgo/node_modules/css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "node_modules/svgo/node_modules/css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/svgo/node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/svgo/node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/svgo/node_modules/domutils/node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "node_modules/svgo/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" } }, "node_modules/svgo/node_modules/js-yaml": { @@ -14992,34 +13858,54 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/svgo/node_modules/nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/svgo/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" }, "node_modules/tailwindcss": { - "version": "3.0.23", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.23.tgz", - "integrity": "sha512-+OZOV9ubyQ6oI2BXEhzw4HrqvgcARY38xv3zKcjnWtMIZstEsXdI9xftd1iB7+RbOnj2HOEzkA0OyB5BaSxPQA==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.1.3.tgz", + "integrity": "sha512-PRJNYdSIthrb8hjmAyymEyEN8Yo61TMXpzyFUpxULeeyRn3Y3gpvuw6FlRTKrJvK7thSGKRnhT36VovVx4WeMA==", "dependencies": { - "arg": "^5.0.1", - "chalk": "^4.1.2", + "arg": "^5.0.2", "chokidar": "^3.5.3", "color-name": "^1.1.4", - "cosmiconfig": "^7.0.1", - "detective": "^5.2.0", + "detective": "^5.2.1", "didyoumean": "^1.2.2", "dlv": "^1.1.3", "fast-glob": "^3.2.11", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", + "lilconfig": "^2.0.5", "normalize-path": "^3.0.0", - "object-hash": "^2.2.0", - "postcss": "^8.4.6", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.14", + "postcss-import": "^14.1.0", "postcss-js": "^4.0.0", - "postcss-load-config": "^3.1.0", + "postcss-load-config": "^3.1.4", "postcss-nested": "5.0.6", - "postcss-selector-parser": "^6.0.9", + "postcss-selector-parser": "^6.0.10", "postcss-value-parser": "^4.2.0", "quick-lru": "^5.1.1", "resolve": "^1.22.0" @@ -15032,74 +13918,9 @@ "node": ">=12.13.0" }, "peerDependencies": { - "autoprefixer": "^10.0.2", "postcss": "^8.0.9" } }, - "node_modules/tailwindcss/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/tailwindcss/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/tailwindcss/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/tailwindcss/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/tailwindcss/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/tailwindcss/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -15160,13 +13981,13 @@ } }, "node_modules/terser": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.12.1.tgz", - "integrity": "sha512-NXbs+7nisos5E+yXwAD+y7zrcTkMqb0dEJxIGtSKPdCBzopf7ni4odPul2aechpV7EXNvOudYOX2bb5tln1jbQ==", + "version": "5.14.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.1.tgz", + "integrity": "sha512-+ahUAE+iheqBTDxXhTisdA8hgvbEG1hHOQ9xmNjeUJSoi6DU/gMrKNcfZjHkyY6Alnuyc+ikYJaxxfHkT3+WuQ==", "dependencies": { + "@jridgewell/source-map": "^0.3.2", "acorn": "^8.5.0", "commander": "^2.20.0", - "source-map": "~0.7.2", "source-map-support": "~0.5.20" }, "bin": { @@ -15177,14 +13998,14 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", - "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.3.tgz", + "integrity": "sha512-Fx60G5HNYknNTNQnzQ1VePRuu89ZVYWfjRAeT5rITuCY/1b08s49e5kSQwHDirKZWuoKOBRFS98EUUoZ9kLEwQ==", "dependencies": { + "@jridgewell/trace-mapping": "^0.3.7", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1", "terser": "^5.7.2" }, "engines": { @@ -15209,27 +14030,11 @@ } } }, - "node_modules/terser-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/terser/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, - "node_modules/terser/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "engines": { - "node": ">= 8" - } - }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -15246,7 +14051,7 @@ "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" }, "node_modules/throat": { "version": "6.0.1", @@ -15265,16 +14070,14 @@ }, "node_modules/to-fast-properties": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/to-regex-range": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -15312,15 +14115,9 @@ } }, "node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, "node_modules/tryer": { "version": "1.0.1", @@ -15349,10 +14146,18 @@ "json5": "lib/cli.js" } }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "engines": { + "node": ">=4" + } + }, "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, "node_modules/tsutils": { "version": "3.21.0", @@ -15368,6 +14173,11 @@ "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" } }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -15388,9 +14198,9 @@ } }, "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "engines": { "node": ">=10" }, @@ -15418,14 +14228,27 @@ "is-typedarray": "^1.0.0" } }, + "node_modules/typescript": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, "node_modules/unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", "which-boxed-primitive": "^1.0.2" }, "funding": { @@ -15434,8 +14257,7 @@ }, "node_modules/uncontrollable": { "version": "7.2.1", - "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.2.1.tgz", - "integrity": "sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.6.3", "@types/react": ">=16.9.11", @@ -15504,7 +14326,7 @@ "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "engines": { "node": ">= 0.8" } @@ -15512,7 +14334,7 @@ "node_modules/unquote": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" + "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==" }, "node_modules/upath": { "version": "1.2.0", @@ -15533,8 +14355,7 @@ }, "node_modules/util": { "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "license": "MIT", "dependencies": { "inherits": "2.0.3" } @@ -15542,7 +14363,7 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "node_modules/util.promisify": { "version": "1.0.1", @@ -15560,18 +14381,17 @@ }, "node_modules/util/node_modules/inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "license": "ISC" }, "node_modules/utila": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" }, "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "engines": { "node": ">= 0.4.0" } @@ -15603,9 +14423,9 @@ } }, "node_modules/v8-to-istanbul/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "engines": { "node": ">= 8" } @@ -15613,7 +14433,7 @@ "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "engines": { "node": ">= 0.8" } @@ -15647,16 +14467,15 @@ }, "node_modules/warning": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", - "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "license": "MIT", "dependencies": { "loose-envify": "^1.0.0" } }, "node_modules/watchpack": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", - "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -15675,8 +14494,7 @@ }, "node_modules/web-vitals": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-2.1.4.tgz", - "integrity": "sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg==" + "license": "Apache-2.0" }, "node_modules/webidl-conversions": { "version": "6.1.0", @@ -15687,9 +14505,9 @@ } }, "node_modules/webpack": { - "version": "5.70.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.70.0.tgz", - "integrity": "sha512-ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw==", + "version": "5.73.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.73.0.tgz", + "integrity": "sha512-svjudQRPPa0YiOYa2lM/Gacw0r6PvxptHj4FuEKQ2kX05ZLkjbVc5MnPs6its5j7IZljnIqSVo/OsY2X0IpHGA==", "dependencies": { "@types/eslint-scope": "^3.7.3", "@types/estree": "^0.0.51", @@ -15700,13 +14518,13 @@ "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.9.2", + "enhanced-resolve": "^5.9.3", "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.9", - "json-parse-better-errors": "^1.0.2", + "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", @@ -15733,12 +14551,12 @@ } }, "node_modules/webpack-dev-middleware": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.1.tgz", - "integrity": "sha512-81EujCKkyles2wphtdrnPg/QqegC/AtqNH//mQkBYSMqwFVCQrxM6ktB2O/SPlZy7LqeEfTbV3cZARGQz6umhg==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", "dependencies": { "colorette": "^2.0.10", - "memfs": "^3.4.1", + "memfs": "^3.4.3", "mime-types": "^2.1.31", "range-parser": "^1.2.1", "schema-utils": "^4.0.0" @@ -15804,38 +14622,37 @@ } }, "node_modules/webpack-dev-server": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.7.4.tgz", - "integrity": "sha512-nfdsb02Zi2qzkNmgtZjkrMOcXnYZ6FLKcQwpxT7MvmHKc+oTtDsBju8j+NMyAygZ9GW1jMEUpy3itHtqgEhe1A==", + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.9.2.tgz", + "integrity": "sha512-H95Ns95dP24ZsEzO6G9iT+PNw4Q7ltll1GfJHV4fKphuHWgKFzGHWi4alTlTnpk1SPPk41X+l2RB7rLfIhnB9Q==", "dependencies": { "@types/bonjour": "^3.5.9", "@types/connect-history-api-fallback": "^1.3.5", "@types/express": "^4.17.13", "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", "@types/sockjs": "^0.3.33", - "@types/ws": "^8.2.2", + "@types/ws": "^8.5.1", "ansi-html-community": "^0.0.8", - "bonjour": "^3.5.0", + "bonjour-service": "^1.0.11", "chokidar": "^3.5.3", "colorette": "^2.0.10", "compression": "^1.7.4", "connect-history-api-fallback": "^1.6.0", "default-gateway": "^6.0.3", - "del": "^6.0.0", - "express": "^4.17.1", + "express": "^4.17.3", "graceful-fs": "^4.2.6", "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.0", + "http-proxy-middleware": "^2.0.3", "ipaddr.js": "^2.0.1", "open": "^8.0.9", "p-retry": "^4.5.0", - "portfinder": "^1.0.28", + "rimraf": "^3.0.2", "schema-utils": "^4.0.0", - "selfsigned": "^2.0.0", + "selfsigned": "^2.0.1", "serve-index": "^1.9.1", - "sockjs": "^0.3.21", + "sockjs": "^0.3.24", "spdy": "^4.0.2", - "strip-ansi": "^7.0.0", "webpack-dev-middleware": "^5.3.1", "ws": "^8.4.2" }, @@ -15880,17 +14697,6 @@ "ajv": "^8.8.2" } }, - "node_modules/webpack-dev-server/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -15914,24 +14720,10 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/webpack-dev-server/node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz", + "integrity": "sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==", "engines": { "node": ">=10.0.0" }, @@ -15963,14 +14755,6 @@ "webpack": "^4.44.2 || ^5.47.0" } }, - "node_modules/webpack-manifest-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/webpack-manifest-plugin/node_modules/webpack-sources": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", @@ -16040,6 +14824,17 @@ "iconv-lite": "0.4.24" } }, + "node_modules/whatwg-encoding/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/whatwg-fetch": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", @@ -16051,18 +14846,19 @@ "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" }, "node_modules/whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, + "node_modules/whatwg-url/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -16101,26 +14897,26 @@ } }, "node_modules/workbox-background-sync": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.5.2.tgz", - "integrity": "sha512-EjG37LSMDJ1TFlFg56wx6YXbH4/NkG09B9OHvyxx+cGl2gP5OuOzsCY3rOPJSpbcz6jpuA40VIC3HzSD4OvE1g==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.5.3.tgz", + "integrity": "sha512-0DD/V05FAcek6tWv9XYj2w5T/plxhDSpclIcAGjA/b7t/6PdaRkQ7ZgtAX6Q/L7kV7wZ8uYRJUoH11VjNipMZw==", "dependencies": { "idb": "^6.1.4", - "workbox-core": "6.5.2" + "workbox-core": "6.5.3" } }, "node_modules/workbox-broadcast-update": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.5.2.tgz", - "integrity": "sha512-DjJYraYnprTZE/AQNoeogaxI1dPuYmbw+ZJeeP8uXBSbg9SNv5wLYofQgywXeRepv4yr/vglMo9yaHUmBMc+4Q==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.5.3.tgz", + "integrity": "sha512-4AwCIA5DiDrYhlN+Miv/fp5T3/whNmSL+KqhTwRBTZIL6pvTgE4lVuRzAt1JltmqyMcQ3SEfCdfxczuI4kwFQg==", "dependencies": { - "workbox-core": "6.5.2" + "workbox-core": "6.5.3" } }, "node_modules/workbox-build": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.5.2.tgz", - "integrity": "sha512-TVi4Otf6fgwikBeMpXF9n0awHfZTMNu/nwlMIT9W+c13yvxkmDFMPb7vHYK6RUmbcxwPnz4I/R+uL76+JxG4JQ==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.5.3.tgz", + "integrity": "sha512-8JNHHS7u13nhwIYCDea9MNXBNPHXCs5KDZPKI/ZNTr3f4sMGoD7hgFGecbyjX1gw4z6e9bMpMsOEJNyH5htA/w==", "dependencies": { "@apideck/better-ajv-errors": "^0.3.1", "@babel/core": "^7.11.1", @@ -16144,26 +14940,42 @@ "strip-comments": "^2.0.1", "tempy": "^0.6.0", "upath": "^1.2.0", - "workbox-background-sync": "6.5.2", - "workbox-broadcast-update": "6.5.2", - "workbox-cacheable-response": "6.5.2", - "workbox-core": "6.5.2", - "workbox-expiration": "6.5.2", - "workbox-google-analytics": "6.5.2", - "workbox-navigation-preload": "6.5.2", - "workbox-precaching": "6.5.2", - "workbox-range-requests": "6.5.2", - "workbox-recipes": "6.5.2", - "workbox-routing": "6.5.2", - "workbox-strategies": "6.5.2", - "workbox-streams": "6.5.2", - "workbox-sw": "6.5.2", - "workbox-window": "6.5.2" + "workbox-background-sync": "6.5.3", + "workbox-broadcast-update": "6.5.3", + "workbox-cacheable-response": "6.5.3", + "workbox-core": "6.5.3", + "workbox-expiration": "6.5.3", + "workbox-google-analytics": "6.5.3", + "workbox-navigation-preload": "6.5.3", + "workbox-precaching": "6.5.3", + "workbox-range-requests": "6.5.3", + "workbox-recipes": "6.5.3", + "workbox-routing": "6.5.3", + "workbox-strategies": "6.5.3", + "workbox-streams": "6.5.3", + "workbox-sw": "6.5.3", + "workbox-window": "6.5.3" }, "engines": { "node": ">=10.0.0" } }, + "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.4.tgz", + "integrity": "sha512-Ic2d8ZT6HJiSikGVQvSklaFyw1OUv4g8sDOxa0PXSlbmN/3gL5IO1WYY9DOwTDqOFmjWoqG1yaaKnPDqYCE9KA==", + "dependencies": { + "json-schema": "^0.4.0", + "jsonpointer": "^5.0.0", + "leven": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "ajv": ">=8" + } + }, "node_modules/workbox-build/node_modules/ajv": { "version": "8.11.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", @@ -16212,7 +15024,7 @@ "node_modules/workbox-build/node_modules/tr46": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", "dependencies": { "punycode": "^2.1.0" } @@ -16233,117 +15045,117 @@ } }, "node_modules/workbox-cacheable-response": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.5.2.tgz", - "integrity": "sha512-UnHGih6xqloV808T7ve1iNKZMbpML0jGLqkkmyXkJbZc5j16+HRSV61Qrh+tiq3E3yLvFMGJ3AUBODOPNLWpTg==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.5.3.tgz", + "integrity": "sha512-6JE/Zm05hNasHzzAGKDkqqgYtZZL2H06ic2GxuRLStA4S/rHUfm2mnLFFXuHAaGR1XuuYyVCEey1M6H3PdZ7SQ==", "dependencies": { - "workbox-core": "6.5.2" + "workbox-core": "6.5.3" } }, "node_modules/workbox-core": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.5.2.tgz", - "integrity": "sha512-IlxLGQf+wJHCR+NM0UWqDh4xe/Gu6sg2i4tfZk6WIij34IVk9BdOQgi6WvqSHd879jbQIUgL2fBdJUJyAP5ypQ==" + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.5.3.tgz", + "integrity": "sha512-Bb9ey5n/M9x+l3fBTlLpHt9ASTzgSGj6vxni7pY72ilB/Pb3XtN+cZ9yueboVhD5+9cNQrC9n/E1fSrqWsUz7Q==" }, "node_modules/workbox-expiration": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.5.2.tgz", - "integrity": "sha512-5Hfp0uxTZJrgTiy9W7AjIIec+9uTOtnxY/tRBm4DbqcWKaWbVTa+izrKzzOT4MXRJJIJUmvRhWw4oo8tpmMouw==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.5.3.tgz", + "integrity": "sha512-jzYopYR1zD04ZMdlbn/R2Ik6ixiXbi15c9iX5H8CTi6RPDz7uhvMLZPKEndZTpfgmUk8mdmT9Vx/AhbuCl5Sqw==", "dependencies": { "idb": "^6.1.4", - "workbox-core": "6.5.2" + "workbox-core": "6.5.3" } }, "node_modules/workbox-google-analytics": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.5.2.tgz", - "integrity": "sha512-8SMar+N0xIreP5/2we3dwtN1FUmTMScoopL86aKdXBpio8vXc8Oqb5fCJG32ialjN8BAOzDqx/FnGeCtkIlyvw==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.5.3.tgz", + "integrity": "sha512-3GLCHotz5umoRSb4aNQeTbILETcrTVEozSfLhHSBaegHs1PnqCmN0zbIy2TjTpph2AGXiNwDrWGF0AN+UgDNTw==", "dependencies": { - "workbox-background-sync": "6.5.2", - "workbox-core": "6.5.2", - "workbox-routing": "6.5.2", - "workbox-strategies": "6.5.2" + "workbox-background-sync": "6.5.3", + "workbox-core": "6.5.3", + "workbox-routing": "6.5.3", + "workbox-strategies": "6.5.3" } }, "node_modules/workbox-navigation-preload": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.5.2.tgz", - "integrity": "sha512-iqDNWWMswjCsZuvGFDpcX1Z8InBVAlVBELJ28xShsWWntALzbtr0PXMnm2WHkXCc56JimmGldZi1N5yDPiTPOg==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.5.3.tgz", + "integrity": "sha512-bK1gDFTc5iu6lH3UQ07QVo+0ovErhRNGvJJO/1ngknT0UQ702nmOUhoN9qE5mhuQSrnK+cqu7O7xeaJ+Rd9Tmg==", "dependencies": { - "workbox-core": "6.5.2" + "workbox-core": "6.5.3" } }, "node_modules/workbox-precaching": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.5.2.tgz", - "integrity": "sha512-OZAlQ8AAT20KugGKKuJMHdQ8X1IyNQaLv+mPTHj+8Dmv8peBq5uWNzs4g/1OSFmXsbXZ6a1CBC6YtQWVPhJQ9w==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.5.3.tgz", + "integrity": "sha512-sjNfgNLSsRX5zcc63H/ar/hCf+T19fRtTqvWh795gdpghWb5xsfEkecXEvZ8biEi1QD7X/ljtHphdaPvXDygMQ==", "dependencies": { - "workbox-core": "6.5.2", - "workbox-routing": "6.5.2", - "workbox-strategies": "6.5.2" + "workbox-core": "6.5.3", + "workbox-routing": "6.5.3", + "workbox-strategies": "6.5.3" } }, "node_modules/workbox-range-requests": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.5.2.tgz", - "integrity": "sha512-zi5VqF1mWqfCyJLTMXn1EuH/E6nisqWDK1VmOJ+TnjxGttaQrseOhMn+BMvULFHeF8AvrQ0ogfQ6bSv0rcfAlg==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.5.3.tgz", + "integrity": "sha512-pGCP80Bpn/0Q0MQsfETSfmtXsQcu3M2QCJwSFuJ6cDp8s2XmbUXkzbuQhCUzKR86ZH2Vex/VUjb2UaZBGamijA==", "dependencies": { - "workbox-core": "6.5.2" + "workbox-core": "6.5.3" } }, "node_modules/workbox-recipes": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.5.2.tgz", - "integrity": "sha512-2lcUKMYDiJKvuvRotOxLjH2z9K7jhj8GNUaHxHNkJYbTCUN3LsX1cWrsgeJFDZ/LgI565t3fntpbG9J415ZBXA==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.5.3.tgz", + "integrity": "sha512-IcgiKYmbGiDvvf3PMSEtmwqxwfQ5zwI7OZPio3GWu4PfehA8jI8JHI3KZj+PCfRiUPZhjQHJ3v1HbNs+SiSkig==", "dependencies": { - "workbox-cacheable-response": "6.5.2", - "workbox-core": "6.5.2", - "workbox-expiration": "6.5.2", - "workbox-precaching": "6.5.2", - "workbox-routing": "6.5.2", - "workbox-strategies": "6.5.2" + "workbox-cacheable-response": "6.5.3", + "workbox-core": "6.5.3", + "workbox-expiration": "6.5.3", + "workbox-precaching": "6.5.3", + "workbox-routing": "6.5.3", + "workbox-strategies": "6.5.3" } }, "node_modules/workbox-routing": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.5.2.tgz", - "integrity": "sha512-nR1w5PjF6IVwo0SX3oE88LhmGFmTnqqU7zpGJQQPZiKJfEKgDENQIM9mh3L1ksdFd9Y3CZVkusopHfxQvit/BA==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.5.3.tgz", + "integrity": "sha512-DFjxcuRAJjjt4T34RbMm3MCn+xnd36UT/2RfPRfa8VWJGItGJIn7tG+GwVTdHmvE54i/QmVTJepyAGWtoLPTmg==", "dependencies": { - "workbox-core": "6.5.2" + "workbox-core": "6.5.3" } }, "node_modules/workbox-strategies": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.5.2.tgz", - "integrity": "sha512-fgbwaUMxbG39BHjJIs2y2X21C0bmf1Oq3vMQxJ1hr6y5JMJIm8rvKCcf1EIdAr+PjKdSk4ddmgyBQ4oO8be4Uw==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.5.3.tgz", + "integrity": "sha512-MgmGRrDVXs7rtSCcetZgkSZyMpRGw8HqL2aguszOc3nUmzGZsT238z/NN9ZouCxSzDu3PQ3ZSKmovAacaIhu1w==", "dependencies": { - "workbox-core": "6.5.2" + "workbox-core": "6.5.3" } }, "node_modules/workbox-streams": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.5.2.tgz", - "integrity": "sha512-ovD0P4UrgPtZ2Lfc/8E8teb1RqNOSZr+1ZPqLR6sGRZnKZviqKbQC3zVvvkhmOIwhWbpL7bQlWveLVONHjxd5w==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.5.3.tgz", + "integrity": "sha512-vN4Qi8o+b7zj1FDVNZ+PlmAcy1sBoV7SC956uhqYvZ9Sg1fViSbOpydULOssVJ4tOyKRifH/eoi6h99d+sJ33w==", "dependencies": { - "workbox-core": "6.5.2", - "workbox-routing": "6.5.2" + "workbox-core": "6.5.3", + "workbox-routing": "6.5.3" } }, "node_modules/workbox-sw": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.5.2.tgz", - "integrity": "sha512-2KhlYqtkoqlnPdllj2ujXUKRuEFsRDIp6rdE4l1PsxiFHRAFaRTisRQpGvRem5yxgXEr+fcEKiuZUW2r70KZaw==" + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.5.3.tgz", + "integrity": "sha512-BQBzm092w+NqdIEF2yhl32dERt9j9MDGUTa2Eaa+o3YKL4Qqw55W9yQC6f44FdAHdAJrJvp0t+HVrfh8AiGj8A==" }, "node_modules/workbox-webpack-plugin": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.5.2.tgz", - "integrity": "sha512-StrJ7wKp5tZuGVcoKLVjFWlhDy+KT7ZWsKnNcD6F08wA9Cpt6JN+PLIrplcsTHbQpoAV8+xg6RvcG0oc9z+RpQ==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.5.3.tgz", + "integrity": "sha512-Es8Xr02Gi6Kc3zaUwR691ZLy61hz3vhhs5GztcklQ7kl5k2qAusPh0s6LF3wEtlpfs9ZDErnmy5SErwoll7jBA==", "dependencies": { "fast-json-stable-stringify": "^2.1.0", "pretty-bytes": "^5.4.1", "upath": "^1.2.0", "webpack-sources": "^1.4.3", - "workbox-build": "6.5.2" + "workbox-build": "6.5.3" }, "engines": { "node": ">=10.0.0" @@ -16352,14 +15164,6 @@ "webpack": "^4.4.0 || ^5.9.0" } }, - "node_modules/workbox-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/workbox-webpack-plugin/node_modules/webpack-sources": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", @@ -16370,18 +15174,17 @@ } }, "node_modules/workbox-window": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.5.2.tgz", - "integrity": "sha512-2kZH37r9Wx8swjEOL4B8uGM53lakMxsKkQ7mOKzGA/QAn/DQTEZGrdHWtypk2tbhKY5S0jvPS+sYDnb2Z3378A==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.5.3.tgz", + "integrity": "sha512-GnJbx1kcKXDtoJBVZs/P7ddP0Yt52NNy4nocjBpYPiRhMqTpJCNrSL+fGHZ/i/oP6p/vhE8II0sA6AZGKGnssw==", "dependencies": { "@types/trusted-types": "^2.0.2", - "workbox-core": "6.5.2" + "workbox-core": "6.5.3" } }, "node_modules/wrap-ansi": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -16394,40 +15197,10 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/write-file-atomic": { "version": "3.0.3", @@ -16441,9 +15214,9 @@ } }, "node_modules/ws": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", - "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.8.tgz", + "integrity": "sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw==", "engines": { "node": ">=8.3.0" }, @@ -16480,8 +15253,7 @@ }, "node_modules/y18n": { "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", "engines": { "node": ">=10" } @@ -16501,8 +15273,7 @@ }, "node_modules/yargs": { "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "license": "MIT", "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -16518,8 +15289,7 @@ }, "node_modules/yargs-parser": { "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "license": "ISC", "engines": { "node": ">=10" } @@ -16538,69 +15308,45 @@ }, "dependencies": { "@ampproject/remapping": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", - "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", - "requires": { - "@jridgewell/trace-mapping": "^0.3.0" - } - }, - "@apideck/better-ajv-errors": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.3.tgz", - "integrity": "sha512-9o+HO2MbJhJHjDYZaDxJmSDckvDpiuItEsrIShV0DXeCshXWRHhqYyU/PKHMkuClOmFnZhRd6wzv4vpDu/dRKg==", + "version": "2.2.0", "requires": { - "json-schema": "^0.4.0", - "jsonpointer": "^5.0.0", - "leven": "^3.1.0" + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" } }, "@babel/code-frame": { "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", "requires": { "@babel/highlight": "^7.16.7" } }, "@babel/compat-data": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", - "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==" + "version": "7.18.5" }, "@babel/core": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz", - "integrity": "sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==", + "version": "7.18.5", "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.7", - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helpers": "^7.17.8", - "@babel/parser": "^7.17.8", + "@babel/generator": "^7.18.2", + "@babel/helper-compilation-targets": "^7.18.2", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helpers": "^7.18.2", + "@babel/parser": "^7.18.5", "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0", + "@babel/traverse": "^7.18.5", + "@babel/types": "^7.18.4", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", + "json5": "^2.2.1", "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } } }, "@babel/eslint-parser": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz", - "integrity": "sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.18.2.tgz", + "integrity": "sha512-oFQYkE8SuH14+uR51JVAmdqwKYXGRjEXx7s+WiagVjqQ+HPE+nnwyF2qlVG8evUsUHmPcA+6YXMEDbIhEyQc5A==", "requires": { "eslint-scope": "^5.1.1", "eslint-visitor-keys": "^2.1.0", @@ -16625,22 +15371,25 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, "@babel/generator": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", - "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", + "version": "7.18.2", "requires": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" + "@babel/types": "^7.18.2", + "@jridgewell/gen-mapping": "^0.3.0", + "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.1", + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } } }, "@babel/helper-annotate-as-pure": { @@ -16661,41 +15410,32 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", - "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", + "version": "7.18.2", "requires": { - "@babel/compat-data": "^7.17.7", + "@babel/compat-data": "^7.17.10", "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", + "browserslist": "^4.20.2", "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } } }, "@babel/helper-create-class-features-plugin": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz", - "integrity": "sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz", + "integrity": "sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==", "requires": { "@babel/helper-annotate-as-pure": "^7.16.7", "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-member-expression-to-functions": "^7.17.7", "@babel/helper-optimise-call-expression": "^7.16.7", "@babel/helper-replace-supers": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7" } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", - "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.12.tgz", + "integrity": "sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw==", "requires": { "@babel/helper-annotate-as-pure": "^7.16.7", "regexpu-core": "^5.0.1" @@ -16714,22 +15454,10 @@ "lodash.debounce": "^4.0.8", "resolve": "^1.14.2", "semver": "^6.1.2" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } } }, "@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "requires": { - "@babel/types": "^7.16.7" - } + "version": "7.18.2" }, "@babel/helper-explode-assignable-expression": { "version": "7.16.7", @@ -16740,27 +15468,14 @@ } }, "@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "version": "7.17.9", "requires": { - "@babel/helper-get-function-arity": "^7.16.7", "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.17.0" } }, "@babel/helper-hoist-variables": { "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", "requires": { "@babel/types": "^7.16.7" } @@ -16775,16 +15490,12 @@ }, "@babel/helper-module-imports": { "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", "requires": { "@babel/types": "^7.16.7" } }, "@babel/helper-module-transforms": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", - "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", + "version": "7.18.0", "requires": { "@babel/helper-environment-visitor": "^7.16.7", "@babel/helper-module-imports": "^7.16.7", @@ -16792,8 +15503,8 @@ "@babel/helper-split-export-declaration": "^7.16.7", "@babel/helper-validator-identifier": "^7.16.7", "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" + "@babel/traverse": "^7.18.0", + "@babel/types": "^7.18.0" } }, "@babel/helper-optimise-call-expression": { @@ -16805,9 +15516,9 @@ } }, "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==" }, "@babel/helper-remap-async-to-generator": { "version": "7.16.8", @@ -16820,23 +15531,21 @@ } }, "@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.2.tgz", + "integrity": "sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q==", "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-member-expression-to-functions": "^7.17.7", "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2" } }, "@babel/helper-simple-access": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", - "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", + "version": "7.18.2", "requires": { - "@babel/types": "^7.17.0" + "@babel/types": "^7.18.2" } }, "@babel/helper-skip-transparent-expression-wrappers": { @@ -16849,21 +15558,15 @@ }, "@babel/helper-split-export-declaration": { "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", "requires": { "@babel/types": "^7.16.7" } }, "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" + "version": "7.16.7" }, "@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==" + "version": "7.16.7" }, "@babel/helper-wrap-function": { "version": "7.16.8", @@ -16877,86 +15580,115 @@ } }, "@babel/helpers": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.8.tgz", - "integrity": "sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==", + "version": "7.18.2", "requires": { "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2" } }, "@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "version": "7.17.12", "requires": { "@babel/helper-validator-identifier": "^7.16.7", "chalk": "^2.0.0", "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3" + }, + "has-flag": { + "version": "3.0.0" + }, + "supports-color": { + "version": "5.5.0", + "requires": { + "has-flag": "^3.0.0" + } + } } }, "@babel/parser": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz", - "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==" + "version": "7.18.5" }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", - "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz", + "integrity": "sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", - "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12.tgz", + "integrity": "sha512-/vt0hpIw0x4b6BLKUkwlvEoiGZYYLNZ96CzyHYPbtG2jZGz6LBe7/V+drYrc/d+ovrF9NBi0pmtvmNb/FsWtRQ==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.7" + "@babel/plugin-proposal-optional-chaining": "^7.17.12" } }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.17.12.tgz", + "integrity": "sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-remap-async-to-generator": "^7.16.8", "@babel/plugin-syntax-async-generators": "^7.8.4" } }, "@babel/plugin-proposal-class-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.17.12.tgz", + "integrity": "sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==", "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-proposal-class-static-block": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz", - "integrity": "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.0.tgz", + "integrity": "sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA==", "requires": { - "@babel/helper-create-class-features-plugin": "^7.17.6", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-class-static-block": "^7.14.5" } }, "@babel/plugin-proposal-decorators": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.8.tgz", - "integrity": "sha512-U69odN4Umyyx1xO1rTII0IDkAEC+RNlcKXtqOblfpzqy1C+aOplb76BQNq0+XdpVkOaPlpEDwd++joY8FNFJKA==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.18.2.tgz", + "integrity": "sha512-kbDISufFOxeczi0v4NQP3p5kIeW6izn/6klfWBrIIdGZZe4UpHR+QU03FAoWjGGd9SUXAwbw2pup1kaL4OQsJQ==", "requires": { - "@babel/helper-create-class-features-plugin": "^7.17.6", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/plugin-syntax-decorators": "^7.17.0", + "@babel/helper-create-class-features-plugin": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-replace-supers": "^7.18.2", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/plugin-syntax-decorators": "^7.17.12", "charcodes": "^0.2.0" } }, @@ -16970,38 +15702,38 @@ } }, "@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", - "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.17.12.tgz", + "integrity": "sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, "@babel/plugin-proposal-json-strings": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", - "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.17.12.tgz", + "integrity": "sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-json-strings": "^7.8.3" } }, "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", - "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.17.12.tgz", + "integrity": "sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" } }, "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", - "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.17.12.tgz", + "integrity": "sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" } }, @@ -17015,15 +15747,15 @@ } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", - "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.0.tgz", + "integrity": "sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw==", "requires": { - "@babel/compat-data": "^7.17.0", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/compat-data": "^7.17.10", + "@babel/helper-compilation-targets": "^7.17.10", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" + "@babel/plugin-transform-parameters": "^7.17.12" } }, "@babel/plugin-proposal-optional-catch-binding": { @@ -17036,42 +15768,42 @@ } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", - "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz", + "integrity": "sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, "@babel/plugin-proposal-private-methods": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", - "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.17.12.tgz", + "integrity": "sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A==", "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.10", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", - "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz", + "integrity": "sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg==", "requires": { "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", - "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.17.12.tgz", + "integrity": "sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-syntax-async-generators": { @@ -17107,11 +15839,11 @@ } }, "@babel/plugin-syntax-decorators": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz", - "integrity": "sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.12.tgz", + "integrity": "sha512-D1Hz0qtGTza8K2xGyEdVNCYLdVHukAcbQr4K3/s6r/esadyEriZovpJimQOpu8ju4/jV8dW/1xdaE0UpDroidw==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-syntax-dynamic-import": { @@ -17131,11 +15863,19 @@ } }, "@babel/plugin-syntax-flow": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.7.tgz", - "integrity": "sha512-UDo3YGQO0jH6ytzVwgSLv9i/CzMcUjbKenL67dTrAZPPv6GFAtDhe6jqnvmoKzC/7htNTohhos+onPtDMqJwaQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.17.12.tgz", + "integrity": "sha512-B8QIgBvkIG6G2jgsOHQUist7Sm0EBLDCx8sen072IwqNuzMegZNXrYnSv77cYzA8mLDZAfQYqsLIhimiP1s2HQ==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.17.12.tgz", + "integrity": "sha512-n/loy2zkq9ZEM8tEOwON9wTQSTNDTDEz6NujPtJGLU7qObzT1N4c4YZZf8E6ATB2AjNQg/Ib2AIpO03EZaCehw==", + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-syntax-import-meta": { @@ -17155,11 +15895,11 @@ } }, "@babel/plugin-syntax-jsx": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", - "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.17.12.tgz", + "integrity": "sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-syntax-logical-assignment-operators": { @@ -17227,28 +15967,28 @@ } }, "@babel/plugin-syntax-typescript": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz", - "integrity": "sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.12.tgz", + "integrity": "sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", - "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.17.12.tgz", + "integrity": "sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.17.12.tgz", + "integrity": "sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ==", "requires": { "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-remap-async-to-generator": "^7.16.8" } }, @@ -17261,42 +16001,42 @@ } }, "@babel/plugin-transform-block-scoping": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", - "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.4.tgz", + "integrity": "sha512-+Hq10ye+jlvLEogSOtq4mKvtk7qwcUQ1f0Mrueai866C82f844Yom2cttfJdMdqRLTxWpsbfbkIkOIfovyUQXw==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-classes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", - "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.4.tgz", + "integrity": "sha512-e42NSG2mlKWgxKUAD9EJJSkZxR67+wZqzNxLSpc51T8tRU5SLFHsPmgYR5yr7sdgX4u+iHA1C5VafJ6AyImV3A==", "requires": { "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-function-name": "^7.17.9", "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-replace-supers": "^7.18.2", "@babel/helper-split-export-declaration": "^7.16.7", "globals": "^11.1.0" } }, "@babel/plugin-transform-computed-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", - "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.17.12.tgz", + "integrity": "sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-destructuring": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz", - "integrity": "sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.0.tgz", + "integrity": "sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-dotall-regex": { @@ -17309,11 +16049,11 @@ } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", - "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.17.12.tgz", + "integrity": "sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-exponentiation-operator": { @@ -17326,20 +16066,20 @@ } }, "@babel/plugin-transform-flow-strip-types": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz", - "integrity": "sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.17.12.tgz", + "integrity": "sha512-g8cSNt+cHCpG/uunPQELdq/TeV3eg1OLJYwxypwHtAWo9+nErH3lQx9CSO2uI9lF74A0mR0t4KoMjs1snSgnTw==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-flow": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-flow": "^7.17.12" } }, "@babel/plugin-transform-for-of": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", - "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", + "version": "7.18.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz", + "integrity": "sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-function-name": { @@ -17353,11 +16093,11 @@ } }, "@babel/plugin-transform-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", - "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.17.12.tgz", + "integrity": "sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-member-expression-literals": { @@ -17369,61 +16109,62 @@ } }, "@babel/plugin-transform-modules-amd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", - "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.0.tgz", + "integrity": "sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA==", "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.7.tgz", - "integrity": "sha512-ITPmR2V7MqioMJyrxUo2onHNC3e+MvfFiFIR0RP21d3PtlVb6sfzoxNKiphSZUOM9hEIdzCcZe83ieX3yoqjUA==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.2.tgz", + "integrity": "sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==", "requires": { - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-simple-access": "^7.18.2", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz", - "integrity": "sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw==", + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.5.tgz", + "integrity": "sha512-SEewrhPpcqMF1V7DhnEbhVJLrC+nnYfe1E0piZMZXBpxi9WvZqWGwpsk7JYP7wPWeqaBh4gyKlBhHJu3uz5g4Q==", "requires": { "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-validator-identifier": "^7.16.7", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", - "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.0.tgz", + "integrity": "sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==", "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", - "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.12.tgz", + "integrity": "sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-new-target": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", - "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.5.tgz", + "integrity": "sha512-TuRL5uGW4KXU6OsRj+mLp9BM7pO8e7SGNTEokQRRxHFkXYMFiy2jlKSZPFtI/mKORDzciH+hneskcSOp0gU8hg==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-object-super": { @@ -17436,11 +16177,11 @@ } }, "@babel/plugin-transform-parameters": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", - "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.17.12.tgz", + "integrity": "sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-property-literals": { @@ -17452,11 +16193,11 @@ } }, "@babel/plugin-transform-react-constant-elements": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.17.6.tgz", - "integrity": "sha512-OBv9VkyyKtsHZiHLoSfCn+h6yU7YKX8nrs32xUmOa1SRSk+t03FosB6fBZ0Yz4BpD1WV7l73Nsad+2Tz7APpqw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.17.12.tgz", + "integrity": "sha512-maEkX2xs2STuv2Px8QuqxqjhV2LsFobT1elCgyU5704fcyTu9DyD/bJXxD/mrRiVyhpHweOQ00OJ5FKhHq9oEw==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-react-display-name": { @@ -17468,15 +16209,15 @@ } }, "@babel/plugin-transform-react-jsx": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.3.tgz", - "integrity": "sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.12.tgz", + "integrity": "sha512-Lcaw8bxd1DKht3thfD4A12dqo1X16he1Lm8rIv8sTwjAYNInRS1qHa9aJoqvzpscItXvftKDCfaEQzwoVyXpEQ==", "requires": { "@babel/helper-annotate-as-pure": "^7.16.7", "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-jsx": "^7.16.7", - "@babel/types": "^7.17.0" + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-jsx": "^7.17.12", + "@babel/types": "^7.17.12" } }, "@babel/plugin-transform-react-jsx-development": { @@ -17488,48 +16229,42 @@ } }, "@babel/plugin-transform-react-pure-annotations": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz", - "integrity": "sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.0.tgz", + "integrity": "sha512-6+0IK6ouvqDn9bmEG7mEyF/pwlJXVj5lwydybpyyH3D0A7Hftk+NCTdYjnLNZksn261xaOV5ksmp20pQEmc2RQ==", "requires": { "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-regenerator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", - "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.0.tgz", + "integrity": "sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw==", "requires": { - "regenerator-transform": "^0.14.2" + "@babel/helper-plugin-utils": "^7.17.12", + "regenerator-transform": "^0.15.0" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", - "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.17.12.tgz", + "integrity": "sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-runtime": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz", - "integrity": "sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A==", + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.5.tgz", + "integrity": "sha512-Q17hHxXr2fplrE+5BSC1j1Fo5cOA8YeP8XW3/1paI8MzF/faZGh0MaH1KC4jLAvqLPamQWHB5/B7KqSLY1kuHA==", "requires": { "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "babel-plugin-polyfill-corejs2": "^0.3.0", "babel-plugin-polyfill-corejs3": "^0.5.0", "babel-plugin-polyfill-regenerator": "^0.3.0", "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } } }, "@babel/plugin-transform-shorthand-properties": { @@ -17541,11 +16276,11 @@ } }, "@babel/plugin-transform-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", - "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.17.12.tgz", + "integrity": "sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" } }, @@ -17558,29 +16293,29 @@ } }, "@babel/plugin-transform-template-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", - "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.2.tgz", + "integrity": "sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", - "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.17.12.tgz", + "integrity": "sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-typescript": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz", - "integrity": "sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==", + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.4.tgz", + "integrity": "sha512-l4vHuSLUajptpHNEOUDEGsnpl9pfRLsN1XUoDQDD/YBuXTM+v37SHGS+c6n4jdcZy96QtuUuSvZYMLSSsjH8Mw==", "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-typescript": "^7.16.7" + "@babel/helper-create-class-features-plugin": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-typescript": "^7.17.12" } }, "@babel/plugin-transform-unicode-escapes": { @@ -17601,36 +16336,37 @@ } }, "@babel/preset-env": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", - "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.2.tgz", + "integrity": "sha512-PfpdxotV6afmXMU47S08F9ZKIm2bJIQ0YbAAtDfIENX7G1NUAXigLREh69CWDjtgUy7dYn7bsMzkgdtAlmS68Q==", "requires": { - "@babel/compat-data": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/compat-data": "^7.17.10", + "@babel/helper-compilation-targets": "^7.18.2", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.16.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.17.12", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.17.12", + "@babel/plugin-proposal-async-generator-functions": "^7.17.12", + "@babel/plugin-proposal-class-properties": "^7.17.12", + "@babel/plugin-proposal-class-static-block": "^7.18.0", "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.17.12", + "@babel/plugin-proposal-json-strings": "^7.17.12", + "@babel/plugin-proposal-logical-assignment-operators": "^7.17.12", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.17.12", "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.16.7", + "@babel/plugin-proposal-object-rest-spread": "^7.18.0", "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.17.12", + "@babel/plugin-proposal-private-methods": "^7.17.12", + "@babel/plugin-proposal-private-property-in-object": "^7.17.12", + "@babel/plugin-proposal-unicode-property-regex": "^7.17.12", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.17.12", "@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", @@ -17640,52 +16376,45 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", + "@babel/plugin-transform-arrow-functions": "^7.17.12", + "@babel/plugin-transform-async-to-generator": "^7.17.12", "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.16.7", + "@babel/plugin-transform-block-scoping": "^7.17.12", + "@babel/plugin-transform-classes": "^7.17.12", + "@babel/plugin-transform-computed-properties": "^7.17.12", + "@babel/plugin-transform-destructuring": "^7.18.0", "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.17.12", "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.18.1", "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", + "@babel/plugin-transform-literals": "^7.17.12", "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.16.8", - "@babel/plugin-transform-modules-systemjs": "^7.16.7", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", - "@babel/plugin-transform-new-target": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.18.0", + "@babel/plugin-transform-modules-commonjs": "^7.18.2", + "@babel/plugin-transform-modules-systemjs": "^7.18.0", + "@babel/plugin-transform-modules-umd": "^7.18.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.17.12", + "@babel/plugin-transform-new-target": "^7.17.12", "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.17.12", "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-reserved-words": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.18.0", + "@babel/plugin-transform-reserved-words": "^7.17.12", "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", + "@babel/plugin-transform-spread": "^7.17.12", "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.18.2", + "@babel/plugin-transform-typeof-symbol": "^7.17.12", "@babel/plugin-transform-unicode-escapes": "^7.16.7", "@babel/plugin-transform-unicode-regex": "^7.16.7", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.8", + "@babel/types": "^7.18.2", "babel-plugin-polyfill-corejs2": "^0.3.0", "babel-plugin-polyfill-corejs3": "^0.5.0", "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.20.2", + "core-js-compat": "^3.22.1", "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } } }, "@babel/preset-modules": { @@ -17701,40 +16430,38 @@ } }, "@babel/preset-react": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz", - "integrity": "sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.17.12.tgz", + "integrity": "sha512-h5U+rwreXtZaRBEQhW1hOJLMq8XNJBQ/9oymXiCXTuT/0uOwpbT0gUt+sXeOqoXBgNuUKI7TaObVwoEyWkpFgA==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-validator-option": "^7.16.7", "@babel/plugin-transform-react-display-name": "^7.16.7", - "@babel/plugin-transform-react-jsx": "^7.16.7", + "@babel/plugin-transform-react-jsx": "^7.17.12", "@babel/plugin-transform-react-jsx-development": "^7.16.7", "@babel/plugin-transform-react-pure-annotations": "^7.16.7" } }, "@babel/preset-typescript": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz", - "integrity": "sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.17.12.tgz", + "integrity": "sha512-S1ViF8W2QwAKUGJXxP9NAfNaqGDdEBJKpYkxHf5Yy2C4NPPzXGeR3Lhk7G8xJaaLcFTRfNjVbtbVtm8Gb0mqvg==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-typescript": "^7.16.7" + "@babel/plugin-transform-typescript": "^7.17.12" } }, "@babel/runtime": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.8.tgz", - "integrity": "sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==", + "version": "7.18.3", "requires": { "regenerator-runtime": "^0.13.4" } }, "@babel/runtime-corejs3": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.8.tgz", - "integrity": "sha512-ZbYSUvoSF6dXZmMl/CYTMOvzIFnbGfv4W3SEHYgMvNsFTeLaF2gkGAF4K2ddmtSK4Emej+0aYcnSC6N5dPCXUQ==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.18.3.tgz", + "integrity": "sha512-l4ddFwrc9rnR+EJsHsh+TJ4A35YqQz/UqcjtlX2ov53hlJYG5CxtQmNZxyajwDVmCxwy++rtvGU5HazCK4W41Q==", "requires": { "core-js-pure": "^3.20.2", "regenerator-runtime": "^0.13.4" @@ -17742,8 +16469,6 @@ }, "@babel/template": { "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", "requires": { "@babel/code-frame": "^7.16.7", "@babel/parser": "^7.16.7", @@ -17751,26 +16476,22 @@ } }, "@babel/traverse": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", - "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", + "version": "7.18.5", "requires": { "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", + "@babel/generator": "^7.18.2", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-function-name": "^7.17.9", "@babel/helper-hoist-variables": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.3", - "@babel/types": "^7.17.0", + "@babel/parser": "^7.18.5", + "@babel/types": "^7.18.4", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "version": "7.18.4", "requires": { "@babel/helper-validator-identifier": "^7.16.7", "to-fast-properties": "^2.0.0" @@ -17786,10 +16507,19 @@ "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz", "integrity": "sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg==" }, - "@csstools/postcss-color-function": { + "@csstools/postcss-cascade-layers": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.0.3.tgz", - "integrity": "sha512-J26I69pT2B3MYiLY/uzCGKVJyMYVg9TCpXkWsRlt+Yfq+nELUEm72QXIMYXs4xA9cJA4Oqs2EylrfokKl3mJEQ==", + "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.0.3.tgz", + "integrity": "sha512-fvXP0+dcllGtRKAjA5n5tBr57xWQalKky09hSiXAZ9qqjHn0sDuQV2Jz0Y5zHRQ6iGrAjJZOf2+xQj3yuXfLwA==", + "requires": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + } + }, + "@csstools/postcss-color-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.0.tgz", + "integrity": "sha512-5D5ND/mZWcQoSfYnSPsXtuiFxhzmhxt6pcjrFLJyldj+p0ZN2vvRpYNX+lahFTtMhAYOa2WmkdGINr0yP0CvGA==", "requires": { "@csstools/postcss-progressive-custom-properties": "^1.1.0", "postcss-value-parser": "^4.2.0" @@ -17804,9 +16534,9 @@ } }, "@csstools/postcss-hwb-function": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.0.tgz", - "integrity": "sha512-VSTd7hGjmde4rTj1rR30sokY3ONJph1reCBTUXqeW1fKwETPy1x4t/XIeaaqbMbC5Xg4SM/lyXZ2S8NELT2TaA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.1.tgz", + "integrity": "sha512-AMZwWyHbbNLBsDADWmoXT9A5yl5dsGEBeJSJRUJt8Y9n8Ziu7Wstt4MC8jtPW7xjcLecyfJwtnUTNSmOzcnWeg==", "requires": { "postcss-value-parser": "^4.2.0" } @@ -17821,11 +16551,12 @@ } }, "@csstools/postcss-is-pseudo-class": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.1.tgz", - "integrity": "sha512-Og5RrTzwFhrKoA79c3MLkfrIBYmwuf/X83s+JQtz/Dkk/MpsaKtqHV1OOzYkogQ+tj3oYp5Mq39XotBXNqVc3Q==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.5.tgz", + "integrity": "sha512-Ek+UFI4UP2hB9u0N1cJd6KgSF1rL0J3PT4is0oSStuus8+WzbGGPyJNMOKQ0w/tyPjxiCnOI4RdSMZt3nks64g==", "requires": { - "postcss-selector-parser": "^6.0.9" + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" } }, "@csstools/postcss-normalize-display-values": { @@ -17837,9 +16568,9 @@ } }, "@csstools/postcss-oklab-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.0.2.tgz", - "integrity": "sha512-QwhWesEkMlp4narAwUi6pgc6kcooh8cC7zfxa9LSQNYXqzcdNUtNBzbGc5nuyAVreb7uf5Ox4qH1vYT3GA1wOg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.0.tgz", + "integrity": "sha512-e/Q5HopQzmnQgqimG9v3w2IG4VRABsBq3itOcn4bnm+j4enTgQZ0nWsaH/m9GV2otWGQ0nwccYL5vmLKyvP1ww==", "requires": { "@csstools/postcss-progressive-custom-properties": "^1.1.0", "postcss-value-parser": "^4.2.0" @@ -17853,57 +16584,90 @@ "postcss-value-parser": "^4.2.0" } }, + "@csstools/postcss-stepped-value-functions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.0.tgz", + "integrity": "sha512-q8c4bs1GumAiRenmFjASBcWSLKrbzHzWl6C2HcaAxAXIiL2rUlUWbqQZUjwVG5tied0rld19j/Mm90K3qI26vw==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-trigonometric-functions": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.1.tgz", + "integrity": "sha512-G78CY/+GePc6dDCTUbwI6TTFQ5fs3N9POHhI6v0QzteGpf6ylARiJUNz9HrRKi4eVYBNXjae1W2766iUEFxHlw==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-unset-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.1.tgz", + "integrity": "sha512-f1G1WGDXEU/RN1TWAxBPQgQudtLnLQPyiWdtypkPC+mVYNKFKH/HYXSxH4MVNqwF8M0eDsoiU7HumJHCg/L/jg==", + "requires": {} + }, + "@csstools/selector-specificity": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.1.tgz", + "integrity": "sha512-aG20vknL4/YjQF9BSV7ts4EWm/yrjagAN7OWBNmlbEOUiu0llj4OGrFoOKK3g2vey4/p2omKCoHrWtPxSwV3HA==", + "requires": {} + }, "@eslint/eslintrc": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", - "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.3.1", - "globals": "^13.9.0", + "espree": "^9.3.2", + "globals": "^13.15.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, "dependencies": { "globals": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", - "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", "requires": { "type-fest": "^0.20.2" } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" } } }, "@fortawesome/fontawesome-common-types": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.1.1.tgz", - "integrity": "sha512-wVn5WJPirFTnzN6tR95abCx+ocH+3IFLXAgyavnf9hUmN0CfWoDjPT/BAWsUVwSlYYVBeCLJxaqi7ZGe4uSjBA==" + "version": "6.1.1" }, "@fortawesome/fontawesome-svg-core": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.1.1.tgz", - "integrity": "sha512-NCg0w2YIp81f4V6cMGD9iomfsIj7GWrqmsa0ZsPh59G7PKiGN1KymZNxmF00ssuAlo/VZmpK6xazsGOwzKYUMg==", + "requires": { + "@fortawesome/fontawesome-common-types": "6.1.1" + } + }, + "@fortawesome/free-brands-svg-icons": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.1.1.tgz", + "integrity": "sha512-mFbI/czjBZ+paUtw5NPr2IXjun5KAC8eFqh1hnxowjA4mMZxWz4GCIksq6j9ZSa6Uxj9JhjjDVEd77p2LN2Blg==", "requires": { "@fortawesome/fontawesome-common-types": "6.1.1" } }, "@fortawesome/free-solid-svg-icons": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.1.1.tgz", - "integrity": "sha512-0/5exxavOhI/D4Ovm2r3vxNojGZioPwmFrKg0ZUH69Q68uFhFPs6+dhAToh6VEQBntxPRYPuT5Cg1tpNa9JUPg==", "requires": { "@fortawesome/fontawesome-common-types": "6.1.1" } }, "@fortawesome/react-fontawesome": { "version": "0.1.18", - "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.1.18.tgz", - "integrity": "sha512-RwLIB4TZw0M9gvy5u+TusAA0afbwM4JQIimNH/j3ygd6aIvYPQLqXMhC9ErY26J23rDPyDZldIfPq/HpTTJ/tQ==", "requires": { "prop-types": "^15.8.1" } @@ -17935,14 +16699,6 @@ "resolve-from": "^5.0.0" }, "dependencies": { - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", @@ -17989,11 +16745,6 @@ "requires": { "p-limit": "^2.2.0" } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" } } }, @@ -18013,51 +16764,6 @@ "jest-message-util": "^27.5.1", "jest-util": "^27.5.1", "slash": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } } }, "@jest/core": { @@ -18093,51 +16799,6 @@ "rimraf": "^3.0.0", "slash": "^3.0.0", "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } } }, "@jest/environment": { @@ -18204,56 +16865,12 @@ "string-length": "^4.0.1", "terminal-link": "^2.0.0", "v8-to-istanbul": "^8.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } + } + }, + "@jest/schemas": { + "version": "28.0.2", + "requires": { + "@sinclair/typebox": "^0.23.3" } }, "@jest/source-map": { @@ -18264,13 +16881,6 @@ "callsites": "^3.0.0", "graceful-fs": "^4.2.9", "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } } }, "@jest/test-result": { @@ -18315,56 +16925,6 @@ "slash": "^3.0.0", "source-map": "^0.6.1", "write-file-atomic": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } } }, "@jest/types": { @@ -18377,86 +16937,67 @@ "@types/node": "*", "@types/yargs": "^16.0.0", "chalk": "^4.0.0" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.0.7" + }, + "@jridgewell/set-array": { + "version": "1.1.1" + }, + "@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" }, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "@jridgewell/gen-mapping": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", + "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", "requires": { - "has-flag": "^4.0.0" + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" } } } }, - "@jridgewell/resolve-uri": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", - "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==" - }, "@jridgewell/sourcemap-codec": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", - "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==" + "version": "1.4.13" }, "@jridgewell/trace-mapping": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", - "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", + "version": "0.3.13", "requires": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" + }, "@monaco-editor/loader": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@monaco-editor/loader/-/loader-1.3.0.tgz", - "integrity": "sha512-N3mGq1ktC3zh7WUx3NGO+PSDdNq9Vspk/41rEmRdrCqV9vNbBTRzAOplmUpNQsi+hmTs++ERMBobMERb8Kb+3g==", + "version": "1.3.2", "requires": { "state-local": "^1.0.6" } }, "@monaco-editor/react": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/@monaco-editor/react/-/react-4.4.2.tgz", - "integrity": "sha512-QwQKkP5zXK8oA6uMpZcyQqYKQbMFUIE1Z9gPhYajk4qXdt/kGCu3RvO9SGKGlS9MSciCyd3WjEksVMDoyxQk4w==", + "version": "4.4.5", "requires": { - "@monaco-editor/loader": "^1.3.0", + "@monaco-editor/loader": "^1.3.2", "prop-types": "^15.7.2" } }, @@ -18484,9 +17025,9 @@ } }, "@pmmmwh/react-refresh-webpack-plugin": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.4.tgz", - "integrity": "sha512-zZbZeHQDnoTlt2AF+diQT0wsSXpvWiaIOZwBRdltNFhG1+I3ozyaw7U/nBiUwyJ0D+zwdXp0E3bWOl38Ag2BMw==", + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.7.tgz", + "integrity": "sha512-bcKCAzF0DV2IIROp9ZHkRJa6O4jy7NlnHdWL3GmcUxYWNjLXkK5kfELELwEfSP5hXPfVL/qOGMAROuMQb9GG8Q==", "requires": { "ansi-html-community": "^0.0.8", "common-path-prefix": "^3.0.0", @@ -18500,29 +17041,29 @@ }, "dependencies": { "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==" } } }, "@popperjs/core": { - "version": "2.11.5", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz", - "integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==" + "version": "2.11.5" + }, + "@react-aria/ssr": { + "version": "3.2.0", + "requires": { + "@babel/runtime": "^7.6.2" + } }, "@restart/hooks": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.6.tgz", - "integrity": "sha512-FzpEzy6QeLB3OpUrC9OQD/lWCluQmilLfRGa/DqbB6OmV05AEt/0Lgn3Jf6l27UIJMK0qFmNcps6p8DNLXa6Pw==", + "version": "0.4.7", "requires": { "dequal": "^2.0.2" } }, "@restart/ui": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@restart/ui/-/ui-1.2.0.tgz", - "integrity": "sha512-oIh2t3tG8drZtZ9SlaV5CY6wGsUViHk8ZajjhcI+74IQHyWy+AnxDv8rJR5wVgsgcgrPBUvGNkC1AEdcGNPaLQ==", "requires": { "@babel/runtime": "^7.13.16", "@popperjs/core": "^2.10.1", @@ -18533,16 +17074,6 @@ "dom-helpers": "^5.2.0", "uncontrollable": "^7.2.1", "warning": "^4.0.3" - }, - "dependencies": { - "@react-aria/ssr": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.1.2.tgz", - "integrity": "sha512-amXY11ImpokvkTMeKRHjsSsG7v1yzzs6yeqArCyBIk60J3Yhgxwx9Cah+Uu/804ATFwqzN22AXIo7SdtIaMP+g==", - "requires": { - "@babel/runtime": "^7.6.2" - } - } } }, "@rollup/plugin-babel": { @@ -18594,9 +17125,12 @@ } }, "@rushstack/eslint-patch": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.1.tgz", - "integrity": "sha512-BUyKJGdDWqvWC5GEhyOiUrGNi9iJUr4CU0O2WxJL6QJhHeeA/NVBalH+FeK0r/x/W0rPymXt5s78TDS7d6lCwg==" + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.3.tgz", + "integrity": "sha512-WiBSI6JBIhC6LRIsB2Kwh8DsGTlbBU+mLRxJmAe3LjHTdkDpwIbEOZgoXBbZilk/vlfjK8i6nKRAvIRn1XaIMw==" + }, + "@sinclair/typebox": { + "version": "0.23.5" }, "@sinonjs/commons": { "version": "1.8.3", @@ -18724,20 +17258,115 @@ "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", "requires": { - "@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" + "@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" + } + }, + "@tensorflow/tfjs": { + "version": "3.18.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs/-/tfjs-3.18.0.tgz", + "integrity": "sha512-mOzz4jJdgIpqFS7EHndVuxrQnLUDVIKGyTqOPTYps89fZwcOFfTVxi4BHemDNQpqlVE8IaGh9UUxVXpjgPY5+Q==", + "requires": { + "@tensorflow/tfjs-backend-cpu": "3.18.0", + "@tensorflow/tfjs-backend-webgl": "3.18.0", + "@tensorflow/tfjs-converter": "3.18.0", + "@tensorflow/tfjs-core": "3.18.0", + "@tensorflow/tfjs-data": "3.18.0", + "@tensorflow/tfjs-layers": "3.18.0", + "argparse": "^1.0.10", + "chalk": "^4.1.0", + "core-js": "3", + "regenerator-runtime": "^0.13.5", + "yargs": "^16.0.3" + } + }, + "@tensorflow/tfjs-backend-cpu": { + "version": "3.18.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-3.18.0.tgz", + "integrity": "sha512-LcSqlylzGtpgngcMFIL3q9Q3eVaPRJ7ITZt7ivhzkCj4R5ZsnPa9qM3DCVihkQ77heAwSw4hPTo2jp5C4mJ4Cg==", + "requires": { + "@types/seedrandom": "2.4.27", + "seedrandom": "2.4.3" + }, + "dependencies": { + "seedrandom": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-2.4.3.tgz", + "integrity": "sha512-2CkZ9Wn2dS4mMUWQaXLsOAfGD+irMlLEeSP3cMxpGbgyOOzJGFa+MWCOMTOCMyZinHRPxyOj/S/C57li/1to6Q==" + } + } + }, + "@tensorflow/tfjs-backend-webgl": { + "version": "3.18.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-webgl/-/tfjs-backend-webgl-3.18.0.tgz", + "integrity": "sha512-3NknSzS1oX2BEBOrpjPMZl823S12RgshQthmIbG6QADHb4bCJA8aM4UjWpw+3bNQnRKbRDQdFbuvj10Un79s2A==", + "requires": { + "@tensorflow/tfjs-backend-cpu": "3.18.0", + "@types/offscreencanvas": "~2019.3.0", + "@types/seedrandom": "2.4.27", + "@types/webgl-ext": "0.0.30", + "@types/webgl2": "0.0.6", + "seedrandom": "2.4.3" + }, + "dependencies": { + "seedrandom": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-2.4.3.tgz", + "integrity": "sha512-2CkZ9Wn2dS4mMUWQaXLsOAfGD+irMlLEeSP3cMxpGbgyOOzJGFa+MWCOMTOCMyZinHRPxyOj/S/C57li/1to6Q==" + } + } + }, + "@tensorflow/tfjs-converter": { + "version": "3.18.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-converter/-/tfjs-converter-3.18.0.tgz", + "integrity": "sha512-hpChA+zVNQOVwRnCfqDb1WI9jbEAKA6DuEm4m75Zb3dIlE6VVooDmAaHBhlc++z2q2G1sBzF9A4Bv48SUpN6vA==", + "requires": {} + }, + "@tensorflow/tfjs-core": { + "version": "3.18.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-core/-/tfjs-core-3.18.0.tgz", + "integrity": "sha512-gMxisZozqsr5sCKlphF/eVBLg91MjlBiN60tjX8hJAu0WlSn6Gi5k65GNIL+Pq6hrxpvImcfdCmTH/2XJVZ0Mg==", + "requires": { + "@types/long": "^4.0.1", + "@types/offscreencanvas": "~2019.3.0", + "@types/seedrandom": "2.4.27", + "@types/webgl-ext": "0.0.30", + "@webgpu/types": "^0.1.16", + "long": "4.0.0", + "node-fetch": "~2.6.1", + "seedrandom": "2.4.3" + }, + "dependencies": { + "seedrandom": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-2.4.3.tgz", + "integrity": "sha512-2CkZ9Wn2dS4mMUWQaXLsOAfGD+irMlLEeSP3cMxpGbgyOOzJGFa+MWCOMTOCMyZinHRPxyOj/S/C57li/1to6Q==" + } + } + }, + "@tensorflow/tfjs-data": { + "version": "3.18.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-data/-/tfjs-data-3.18.0.tgz", + "integrity": "sha512-s43vISJh8K/UN2E2zGRhtj/Kyn8dr4ll8EQkapwzm7fGO9afXCnMsTp6rkZq3fFXouCYA2k1B/j7JssIDr50+w==", + "requires": { + "@types/node-fetch": "^2.1.2", + "node-fetch": "~2.6.1" } }, + "@tensorflow/tfjs-layers": { + "version": "3.18.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-layers/-/tfjs-layers-3.18.0.tgz", + "integrity": "sha512-AV7yDnPlH+RCcq8VPqkX1iyEchObE+e66m0XmJvLj+ncfKHYLa+39ZNroUA+OgB2/cMG6jgq77R4EhZbT6hwJA==", + "requires": {} + }, "@testing-library/dom": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.12.0.tgz", - "integrity": "sha512-rBrJk5WjI02X1edtiUcZhgyhgBhiut96r5Jp8J5qktKdcvLcZpKDW8i2hkGMMItxrghjXuQ5AM6aE0imnFawaw==", + "version": "8.14.0", "requires": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", @@ -18747,62 +17376,10 @@ "dom-accessibility-api": "^0.5.9", "lz-string": "^1.4.4", "pretty-format": "^27.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "aria-query": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", - "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==" - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } } }, "@testing-library/jest-dom": { - "version": "5.16.3", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.3.tgz", - "integrity": "sha512-u5DfKj4wfSt6akfndfu1eG06jsdyA/IUrlX2n3pyq5UXgXMhXY+NJb8eNK/7pqPWAhCKsCGWDdDO0zKMKAYkEA==", + "version": "5.16.4", "requires": { "@babel/runtime": "^7.9.2", "@types/testing-library__jest-dom": "^5.9.1", @@ -18815,70 +17392,27 @@ "redent": "^3.0.0" }, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "aria-query": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", - "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==" - }, "chalk": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } } } }, "@testing-library/react": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-12.1.4.tgz", - "integrity": "sha512-jiPKOm7vyUw311Hn/HlNQ9P8/lHNtArAx0PisXyFixDDvfl8DbD6EUdbshK5eqauvBSvzZd19itqQ9j3nferJA==", + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-13.0.1.tgz", + "integrity": "sha512-zeHx3PohYYp+4bTJwrixQY8zSBZjWUGwYc7OhD1EpWTHS92RleApLoP72NdwaWxOrM1P1Uezt3XvGf6t2XSWPQ==", "requires": { "@babel/runtime": "^7.12.5", - "@testing-library/dom": "^8.0.0", - "@types/react-dom": "*" + "@testing-library/dom": "^8.5.0", + "@types/react-dom": "^18.0.0" } }, "@testing-library/user-event": { "version": "13.5.0", - "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz", - "integrity": "sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==", "requires": { "@babel/runtime": "^7.12.5" } @@ -18894,9 +17428,7 @@ "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==" }, "@types/aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==" + "version": "4.2.2" }, "@types/babel__core": { "version": "7.1.19", @@ -18928,9 +17460,9 @@ } }, "@types/babel__traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", - "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", + "version": "7.17.1", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz", + "integrity": "sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==", "requires": { "@babel/types": "^7.3.0" } @@ -19004,9 +17536,9 @@ } }, "@types/express-serve-static-core": { - "version": "4.17.28", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", - "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", + "version": "4.17.29", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.29.tgz", + "integrity": "sha512-uMd++6dMKS32EOuw1Uli3e3BPgdLIXmezcfHv7N4c1s3gkhikBplORPpMq3fuWkxncZN1reb16d5n8yhQ80x7Q==", "requires": { "@types/node": "*", "@types/qs": "*", @@ -19027,18 +17559,13 @@ "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" }, "@types/http-proxy": { - "version": "1.17.8", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz", - "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==", + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", + "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==", "requires": { "@types/node": "*" } }, - "@types/invariant": { - "version": "2.2.35", - "resolved": "https://registry.npmjs.org/@types/invariant/-/invariant-2.2.35.tgz", - "integrity": "sha512-DxX1V9P8zdJPYQat1gHyY0xj3efl8gnMVjiM9iCY6y27lj+PoQWkgjt8jDqmovPqULkKVpKRg8J36iQiA+EtEg==" - }, "@types/istanbul-lib-coverage": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", @@ -19061,12 +17588,27 @@ } }, "@types/jest": { - "version": "27.4.1", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.4.1.tgz", - "integrity": "sha512-23iPJADSmicDVrWk+HT58LMJtzLAnB2AgIzplQuq/bSrGaxCrlvRFjGbXmamnnk/mAmCdLStiGqggu28ocUyiw==", + "version": "28.1.2", "requires": { - "jest-matcher-utils": "^27.0.0", - "pretty-format": "^27.0.0" + "jest-matcher-utils": "^28.0.0", + "pretty-format": "^28.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0" + }, + "pretty-format": { + "version": "28.1.1", + "requires": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.2.0" + } } }, "@types/json-schema": { @@ -19077,7 +17619,12 @@ "@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=" + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" + }, + "@types/long": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" }, "@types/mime": { "version": "1.3.2", @@ -19085,9 +17632,21 @@ "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" }, "@types/node": { - "version": "17.0.23", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", - "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==" + "version": "18.0.0" + }, + "@types/node-fetch": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz", + "integrity": "sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==", + "requires": { + "@types/node": "*", + "form-data": "^3.0.0" + } + }, + "@types/offscreencanvas": { + "version": "2019.3.0", + "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.3.0.tgz", + "integrity": "sha512-esIJx9bQg+QYF0ra8GnvfianIY8qWB0GBx54PK5Eps6m+xTj86KLavHv6qDhzKcu5UUOgNfJ2pWaIIV7TRUd9Q==" }, "@types/parse-json": { "version": "4.0.0", @@ -19095,14 +17654,12 @@ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" }, "@types/prettier": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.4.tgz", - "integrity": "sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA==" + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.3.tgz", + "integrity": "sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg==" }, "@types/prop-types": { - "version": "15.7.4", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz", - "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==" + "version": "15.7.5" }, "@types/q": { "version": "1.5.5", @@ -19120,9 +17677,7 @@ "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" }, "@types/react": { - "version": "17.0.43", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.43.tgz", - "integrity": "sha512-8Q+LNpdxf057brvPu1lMtC5Vn7J119xrP1aq4qiaefNioQUYANF/CYeK4NsKorSZyUGJ66g0IM+4bbjwx45o2A==", + "version": "17.0.47", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -19130,17 +17685,15 @@ } }, "@types/react-dom": { - "version": "17.0.14", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.14.tgz", - "integrity": "sha512-H03xwEP1oXmSfl3iobtmQ/2dHF5aBHr8aUMwyGZya6OW45G+xtdzmq6HkncefiBt5JU8DVyaWl/nWZbjZCnzAQ==", + "version": "18.0.5", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.5.tgz", + "integrity": "sha512-OWPWTUrY/NIrjsAPkAk1wW9LZeIjSvkXRhclsFO8CZcZGCOg2G0YZy4ft+rOyYxy8B7ui5iZzi9OkDebZ7/QSA==", "requires": { "@types/react": "*" } }, "@types/react-transition-group": { "version": "4.4.4", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.4.tgz", - "integrity": "sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug==", "requires": { "@types/react": "*" } @@ -19154,14 +17707,17 @@ } }, "@types/retry": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", - "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==" + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" }, "@types/scheduler": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" + "version": "0.16.2" + }, + "@types/seedrandom": { + "version": "2.4.27", + "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-2.4.27.tgz", + "integrity": "sha512-YvMLqFak/7rt//lPBtEHv3M4sRNA+HGxrhFZ+DQs9K2IkYJbNwVIb8avtJfhDiuaUBX/AW0jnjv48FV8h3u9bQ==" }, "@types/serve-index": { "version": "1.9.1", @@ -19194,9 +17750,7 @@ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" }, "@types/testing-library__jest-dom": { - "version": "5.14.3", - "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.3.tgz", - "integrity": "sha512-oKZe+Mf4ioWlMuzVBaXQ9WDnEm1+umLx0InILg+yvZVBBDmzV5KfZyLrCvadtWcx8+916jLmHafcmqqffl+iIw==", + "version": "5.14.4", "requires": { "@types/jest": "*" } @@ -19207,9 +17761,17 @@ "integrity": "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==" }, "@types/warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz", - "integrity": "sha1-DSUBJorY+ZYrdA04fEZU9fjiPlI=" + "version": "3.0.0" + }, + "@types/webgl-ext": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/@types/webgl-ext/-/webgl-ext-0.0.30.tgz", + "integrity": "sha512-LKVgNmBxN0BbljJrVUwkxwRYqzsAEPcZOe6S2T6ZaBDIrFp0qu4FNlpc5sM1tGbXUYFgdVQIoeLk1Y1UoblyEg==" + }, + "@types/webgl2": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/webgl2/-/webgl2-0.0.6.tgz", + "integrity": "sha512-50GQhDVTq/herLMiqSQkdtRu+d5q/cWHn4VvKJtrj4DJAjo1MNkWYa2MA41BaBO1q1HgsUjuQvEOk0QHvlnAaQ==" }, "@types/ws": { "version": "8.5.3", @@ -19233,87 +17795,107 @@ "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" }, "@typescript-eslint/eslint-plugin": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.17.0.tgz", - "integrity": "sha512-qVstvQilEd89HJk3qcbKt/zZrfBZ+9h2ynpAGlWjWiizA7m/MtLT9RoX6gjtpE500vfIg8jogAkDzdCxbsFASQ==", - "requires": { - "@typescript-eslint/scope-manager": "5.17.0", - "@typescript-eslint/type-utils": "5.17.0", - "@typescript-eslint/utils": "5.17.0", - "debug": "^4.3.2", + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.29.0.tgz", + "integrity": "sha512-kgTsISt9pM53yRFQmLZ4npj99yGl3x3Pl7z4eA66OuTzAGC4bQB5H5fuLwPnqTKU3yyrrg4MIhjF17UYnL4c0w==", + "requires": { + "@typescript-eslint/scope-manager": "5.29.0", + "@typescript-eslint/type-utils": "5.29.0", + "@typescript-eslint/utils": "5.29.0", + "debug": "^4.3.4", "functional-red-black-tree": "^1.0.1", - "ignore": "^5.1.8", + "ignore": "^5.2.0", "regexpp": "^3.2.0", - "semver": "^7.3.5", + "semver": "^7.3.7", "tsutils": "^3.21.0" + }, + "dependencies": { + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "requires": { + "lru-cache": "^6.0.0" + } + } } }, "@typescript-eslint/experimental-utils": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.17.0.tgz", - "integrity": "sha512-U4sM5z0/ymSYqQT6I7lz8l0ZZ9zrya5VIwrwAP5WOJVabVtVsIpTMxPQe+D3qLyePT+VlETUTO2nA1+PufPx9Q==", + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.29.0.tgz", + "integrity": "sha512-H4fqOVYiH6R15NjtMO2LVBZgzXgzjdPEXYb7x/meg4QbXsptLxdq8YlHK2NZOFKipuInY4sAPY5a6SQ/53s3dw==", "requires": { - "@typescript-eslint/utils": "5.17.0" + "@typescript-eslint/utils": "5.29.0" } }, "@typescript-eslint/parser": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.17.0.tgz", - "integrity": "sha512-aRzW9Jg5Rlj2t2/crzhA2f23SIYFlF9mchGudyP0uiD6SenIxzKoLjwzHbafgHn39dNV/TV7xwQkLfFTZlJ4ig==", + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.29.0.tgz", + "integrity": "sha512-ruKWTv+x0OOxbzIw9nW5oWlUopvP/IQDjB5ZqmTglLIoDTctLlAJpAQFpNPJP/ZI7hTT9sARBosEfaKbcFuECw==", "requires": { - "@typescript-eslint/scope-manager": "5.17.0", - "@typescript-eslint/types": "5.17.0", - "@typescript-eslint/typescript-estree": "5.17.0", - "debug": "^4.3.2" + "@typescript-eslint/scope-manager": "5.29.0", + "@typescript-eslint/types": "5.29.0", + "@typescript-eslint/typescript-estree": "5.29.0", + "debug": "^4.3.4" } }, "@typescript-eslint/scope-manager": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.17.0.tgz", - "integrity": "sha512-062iCYQF/doQ9T2WWfJohQKKN1zmmXVfAcS3xaiialiw8ZUGy05Em6QVNYJGO34/sU1a7a+90U3dUNfqUDHr3w==", + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.29.0.tgz", + "integrity": "sha512-etbXUT0FygFi2ihcxDZjz21LtC+Eps9V2xVx09zFoN44RRHPrkMflidGMI+2dUs821zR1tDS6Oc9IXxIjOUZwA==", "requires": { - "@typescript-eslint/types": "5.17.0", - "@typescript-eslint/visitor-keys": "5.17.0" + "@typescript-eslint/types": "5.29.0", + "@typescript-eslint/visitor-keys": "5.29.0" } }, "@typescript-eslint/type-utils": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.17.0.tgz", - "integrity": "sha512-3hU0RynUIlEuqMJA7dragb0/75gZmwNwFf/QJokWzPehTZousP/MNifVSgjxNcDCkM5HI2K22TjQWUmmHUINSg==", + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.29.0.tgz", + "integrity": "sha512-JK6bAaaiJozbox3K220VRfCzLa9n0ib/J+FHIwnaV3Enw/TO267qe0pM1b1QrrEuy6xun374XEAsRlA86JJnyg==", "requires": { - "@typescript-eslint/utils": "5.17.0", - "debug": "^4.3.2", + "@typescript-eslint/utils": "5.29.0", + "debug": "^4.3.4", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.17.0.tgz", - "integrity": "sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw==" + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.29.0.tgz", + "integrity": "sha512-X99VbqvAXOMdVyfFmksMy3u8p8yoRGITgU1joBJPzeYa0rhdf5ok9S56/itRoUSh99fiDoMtarSIJXo7H/SnOg==" }, "@typescript-eslint/typescript-estree": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.17.0.tgz", - "integrity": "sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg==", - "requires": { - "@typescript-eslint/types": "5.17.0", - "@typescript-eslint/visitor-keys": "5.17.0", - "debug": "^4.3.2", - "globby": "^11.0.4", + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.29.0.tgz", + "integrity": "sha512-mQvSUJ/JjGBdvo+1LwC+GY2XmSYjK1nAaVw2emp/E61wEVYEyibRHCqm1I1vEKbXCpUKuW4G7u9ZCaZhJbLoNQ==", + "requires": { + "@typescript-eslint/types": "5.29.0", + "@typescript-eslint/visitor-keys": "5.29.0", + "debug": "^4.3.4", + "globby": "^11.1.0", "is-glob": "^4.0.3", - "semver": "^7.3.5", + "semver": "^7.3.7", "tsutils": "^3.21.0" + }, + "dependencies": { + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "requires": { + "lru-cache": "^6.0.0" + } + } } }, "@typescript-eslint/utils": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.17.0.tgz", - "integrity": "sha512-DVvndq1QoxQH+hFv+MUQHrrWZ7gQ5KcJzyjhzcqB1Y2Xes1UQQkTRPUfRpqhS8mhTWsSb2+iyvDW1Lef5DD7vA==", + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.29.0.tgz", + "integrity": "sha512-3Eos6uP1nyLOBayc/VUdKZikV90HahXE5Dx9L5YlSd/7ylQPXhLk1BYb29SDgnBnTp+jmSZUU0QxUiyHgW4p7A==", "requires": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.17.0", - "@typescript-eslint/types": "5.17.0", - "@typescript-eslint/typescript-estree": "5.17.0", + "@typescript-eslint/scope-manager": "5.29.0", + "@typescript-eslint/types": "5.29.0", + "@typescript-eslint/typescript-estree": "5.29.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, @@ -19335,12 +17917,12 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.17.0.tgz", - "integrity": "sha512-6K/zlc4OfCagUu7Am/BD5k8PSWQOgh34Nrv9Rxe2tBzlJ7uOeJ/h7ugCGDCeEZHT6k2CJBhbk9IsbkPI0uvUkA==", + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.29.0.tgz", + "integrity": "sha512-Hpb/mCWsjILvikMQoZIE3voc9wtQcS0A9FUw3h8bhr9UxBdtI/tw1ZDZUOXHXLOVMedKCH5NxyzATwnU78bWCQ==", "requires": { - "@typescript-eslint/types": "5.17.0", - "eslint-visitor-keys": "^3.0.0" + "@typescript-eslint/types": "5.29.0", + "eslint-visitor-keys": "^3.3.0" } }, "@webassemblyjs/ast": { @@ -19474,6 +18056,11 @@ "@xtuc/long": "4.2.2" } }, + "@webgpu/types": { + "version": "0.1.20", + "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.20.tgz", + "integrity": "sha512-MFb5oyxX+A7PWQNjcY3kSCSG2FAHaBo7IJBWtxWFgsS20FtY3D9UY7lYqLZ6avS8fSkdSylIS4qiHzFlQUdXag==" + }, "@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", @@ -19485,9 +18072,9 @@ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" }, "abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==" }, "accepts": { "version": "1.3.8", @@ -19499,9 +18086,9 @@ } }, "acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==" + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==" }, "acorn-globals": { "version": "6.0.0", @@ -19554,9 +18141,9 @@ "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" }, "address": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", - "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.0.tgz", + "integrity": "sha512-tNEZYz5G/zYunxFm7sfhAxkXEuLj3K6BKwv6ZURlsF6yiUQ65z0Q2wZW9L5cPUl9ocofGvXOdFYbFHp0+6MOig==" }, "adjust-sourcemap-loader": { "version": "4.0.0", @@ -19575,15 +18162,6 @@ "debug": "4" } }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -19633,13 +18211,6 @@ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "requires": { "type-fest": "^0.21.3" - }, - "dependencies": { - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" - } } }, "ansi-html-community": { @@ -19648,59 +18219,48 @@ "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==" }, "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "version": "5.0.1" }, "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "version": "4.3.0", "requires": { - "color-convert": "^1.9.0" + "color-convert": "^2.0.1" } }, "anymatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "arg": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz", - "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==" + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" }, "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "version": "1.0.10", "requires": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" + "sprintf-js": "~1.0.2" } }, + "aria-query": { + "version": "5.0.0" + }, "array-flatten": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" }, "array-includes": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", - "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", + "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5", "get-intrinsic": "^1.1.1", "is-string": "^1.0.7" } @@ -19711,47 +18271,56 @@ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" }, "array.prototype.flat": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", - "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", + "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" } }, "array.prototype.flatmap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", - "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", + "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + } + }, + "array.prototype.reduce": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.4.tgz", + "integrity": "sha512-WnM+AjG/DvLRLo4DDl+r+SvCzYtD2Jd9oeBYMcEaI7t3fFrHY9M53/wdLcTvmZNQ70IU6Htj0emFkZ5TS+lrdw==", + "requires": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" + "es-abstract": "^1.19.2", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" } }, "asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" }, "ast-types-flow": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=" + "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==" }, "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "requires": { - "lodash": "^4.17.14" - } + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" }, "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "version": "0.4.0" }, "at-least-node": { "version": "1.0.0", @@ -19759,17 +18328,15 @@ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" }, "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + "version": "2.1.2" }, "autoprefixer": { - "version": "10.4.4", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.4.tgz", - "integrity": "sha512-Tm8JxsB286VweiZ5F0anmbyGiNI3v3wGv3mz9W+cxEDYB/6jbnj6GM9H9mK3wIL8ftgl+C07Lcwb8PG5PCCPzA==", + "version": "10.4.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.7.tgz", + "integrity": "sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==", "requires": { - "browserslist": "^4.20.2", - "caniuse-lite": "^1.0.30001317", + "browserslist": "^4.20.3", + "caniuse-lite": "^1.0.30001335", "fraction.js": "^4.2.0", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", @@ -19777,9 +18344,9 @@ } }, "axe-core": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.1.tgz", - "integrity": "sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw==" + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.2.tgz", + "integrity": "sha512-LVAaGp/wkkgYJcjmHsoKx4juT1aQvJyPcW09MLCjVTh3V2cc6PnyempiLMNH5iMdfIX/zdbjUx2KDjMLCTdPeA==" }, "axobject-query": { "version": "2.2.0", @@ -19799,57 +18366,12 @@ "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "slash": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } } }, "babel-loader": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.4.tgz", - "integrity": "sha512-8dytA3gcvPPPv4Grjhnt8b5IIiTcq/zeXOPk4iTYI0SVXcsmuGg7JtBRDp8S9X+gJfhQ8ektjXZlDu1Bb33U8A==", + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz", + "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==", "requires": { "find-cache-dir": "^3.3.1", "loader-utils": "^2.0.0", @@ -19912,8 +18434,6 @@ }, "babel-plugin-named-asset-import": { "version": "0.3.8", - "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", - "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==", "requires": {} }, "babel-plugin-polyfill-corejs2": { @@ -19924,13 +18444,6 @@ "@babel/compat-data": "^7.13.11", "@babel/helper-define-polyfill-provider": "^0.3.1", "semver": "^6.1.1" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } } }, "babel-plugin-polyfill-corejs3": { @@ -20014,7 +18527,7 @@ "batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" }, "bfj": { "version": "7.0.2", @@ -20033,9 +18546,7 @@ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" }, "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + "version": "2.2.0" }, "bluebird": { "version": "3.7.2", @@ -20043,20 +18554,22 @@ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" }, "body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", "requires": { "bytes": "3.1.2", "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.7", - "raw-body": "2.4.3", - "type-is": "~1.6.18" + "on-finished": "2.4.1", + "qs": "6.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" }, "dependencies": { "bytes": { @@ -20072,41 +18585,43 @@ "ms": "2.0.0" } }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" } } }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "bonjour-service": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.13.tgz", + "integrity": "sha512-LWKRU/7EqDUC9CTAQtuZl5HzBALoCYwtLhffW3et7vZMwv3bWLpJf8bRYlMD5OCcDpTfnPgNCV4yo9ZIaJGMiA==", "requires": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", + "array-flatten": "^2.1.2", "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" } }, "boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" }, "bootstrap": { "version": "5.1.3", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.3.tgz", - "integrity": "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==", "requires": {} }, "bootswatch": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/bootswatch/-/bootswatch-5.1.3.tgz", - "integrity": "sha512-NmZFN6rOCoXWQ/PkzmD8FFWDe24kocX9OXWHNVaLxVVnpqpAzEbMFsf8bAfKwVtpNXibasZCzv09B5fLieAh2g==" + "version": "5.1.3" }, "brace-expansion": { "version": "1.1.11", @@ -20119,8 +18634,6 @@ }, "braces": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "requires": { "fill-range": "^7.0.1" } @@ -20131,14 +18644,12 @@ "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" }, "browserslist": { - "version": "4.20.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", - "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", + "version": "4.20.4", "requires": { - "caniuse-lite": "^1.0.30001317", - "electron-to-chromium": "^1.4.84", + "caniuse-lite": "^1.0.30001349", + "electron-to-chromium": "^1.4.147", "escalade": "^3.1.1", - "node-releases": "^2.0.2", + "node-releases": "^2.0.5", "picocolors": "^1.0.0" } }, @@ -20155,20 +18666,15 @@ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, - "buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" - }, "builtin-modules": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", - "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==" + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==" }, "bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==" }, "call-bind": { "version": "1.0.2", @@ -20191,13 +18697,6 @@ "requires": { "pascal-case": "^3.1.2", "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } } }, "camelcase": { @@ -20222,9 +18721,7 @@ } }, "caniuse-lite": { - "version": "1.0.30001323", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001323.tgz", - "integrity": "sha512-e4BF2RlCVELKx8+RmklSEIVub1TWrmdhvA5kEUueummz1XyySW0DVk+3x9HyhU9MuWTa2BhqLgEuEmUwASAdCA==" + "version": "1.0.30001358" }, "case-sensitive-paths-webpack-plugin": { "version": "2.4.0", @@ -20232,13 +18729,10 @@ "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==" }, "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "4.1.2", "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, "char-regex": { @@ -20258,8 +18752,6 @@ }, "chokidar": { "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "requires": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -20273,8 +18765,6 @@ "dependencies": { "glob-parent": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "requires": { "is-glob": "^4.0.1" } @@ -20287,9 +18777,9 @@ "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==" }, "ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==" + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz", + "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==" }, "cjs-module-lexer": { "version": "1.2.2", @@ -20297,9 +18787,7 @@ "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" }, "classnames": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", - "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" + "version": "2.3.1" }, "clean-css": { "version": "5.3.0", @@ -20307,24 +18795,10 @@ "integrity": "sha512-YYuuxv4H/iNb1Z/5IbMRoxgrzjWGhOEFfd+groZ5dMCVkpENiMZmwspdrzBo9286JjM1gZJPAyL7ZIdzuvu2AQ==", "requires": { "source-map": "~0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } } }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" - }, "cliui": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "requires": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -20334,7 +18808,7 @@ "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==" }, "coa": { "version": "2.0.2", @@ -20344,6 +18818,52 @@ "@types/q": "^1.5.1", "chalk": "^2.4.1", "q": "^1.1.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } } }, "collect-v8-coverage": { @@ -20352,17 +18872,13 @@ "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==" }, "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "2.0.1", "requires": { - "color-name": "1.1.3" + "color-name": "~1.1.4" } }, "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "version": "1.1.4" }, "colord": { "version": "2.9.2", @@ -20370,22 +18886,20 @@ "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==" }, "colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==" + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==" }, "combined-stream": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "requires": { "delayed-stream": "~1.0.0" } }, "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" }, "common-path-prefix": { "version": "3.0.0", @@ -20400,7 +18914,7 @@ "commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" }, "compressible": { "version": "2.0.18", @@ -20435,14 +18949,14 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" } } }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "confusing-browser-globals": { "version": "1.0.11", @@ -20476,33 +18990,29 @@ }, "convert-source-map": { "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", "requires": { "safe-buffer": "~5.1.1" } }, "cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" }, "cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, "core-js": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.21.1.tgz", - "integrity": "sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==" + "version": "3.23.2" }, "core-js-compat": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz", - "integrity": "sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==", + "version": "3.23.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.23.2.tgz", + "integrity": "sha512-lrgZvxFwbQp9v7E8mX0rJ+JX7Bvh4eGULZXA1IAyjlsnWvCdw6TF8Tg6xtaSUSJMrSrMaLdpmk+V54LM1dvfOA==", "requires": { - "browserslist": "^4.19.1", + "browserslist": "^4.20.4", "semver": "7.0.0" }, "dependencies": { @@ -20514,9 +19024,9 @@ } }, "core-js-pure": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.1.tgz", - "integrity": "sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==" + "version": "3.23.2", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.23.2.tgz", + "integrity": "sha512-t6u7H4Ff/yZNk+zqTr74UjCcZ3k8ApBryeLLV4rYQd9aF3gqmjjGjjR44ENfeBMH8VVvSynIjAJ0mUuFhzQtrA==" }, "core-util-is": { "version": "1.0.3", @@ -20552,19 +19062,10 @@ }, "css": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", - "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", "requires": { "inherits": "^2.0.4", "source-map": "^0.6.1", "source-map-resolve": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } } }, "css-blank-pseudo": { @@ -20576,9 +19077,9 @@ } }, "css-declaration-sorter": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.2.2.tgz", - "integrity": "sha512-Ufadglr88ZLsrvS11gjeu/40Lw74D9Am/Jpr3LlYm5Q4ZP5KdlUhG+6u2EjyXeZcxmZ2h1ebCKngDjolpeLHpg==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.0.tgz", + "integrity": "sha512-OGT677UGHJTAVMRhPO+HJ4oKln3wkBTwtDFH0ojbqm+MJm6xuDMHp2nkhh/ThaBqq20IbraBQSWKfSLNHQO9Og==", "requires": {} }, "css-has-pseudo": { @@ -20602,6 +19103,16 @@ "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.2.0", "semver": "^7.3.5" + }, + "dependencies": { + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "requires": { + "lru-cache": "^6.0.0" + } + } } }, "css-minimizer-webpack-plugin": { @@ -20651,11 +19162,6 @@ "ajv-formats": "^2.1.1", "ajv-keywords": "^5.0.0" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } }, @@ -20666,14 +19172,15 @@ "requires": {} }, "css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", "requires": { "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" } }, "css-select-base-adapter": { @@ -20688,29 +19195,20 @@ "requires": { "mdn-data": "2.0.4", "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } } }, "css-what": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", - "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==" + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" }, "css.escape": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", - "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=" + "version": "1.5.1" }, "cssdb": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-6.5.0.tgz", - "integrity": "sha512-Rh7AAopF2ckPXe/VBcoUS9JrCZNSyc60+KpgE6X25vpVxA32TmiqvExjkfhwP4wGSb6Xe8Z/JIyGqwgx/zZYFA==" + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-6.6.3.tgz", + "integrity": "sha512-7GDvDSmE+20+WcSMhP17Q1EVWUrLlbxxpMDqG731n8P99JhnQZHR9YvtjPvEHfjFUjvQJvdpKCjlKOX+xe4UVA==" }, "cssesc": { "version": "3.0.0", @@ -20718,45 +19216,45 @@ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" }, "cssnano": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.6.tgz", - "integrity": "sha512-A7oX6Vxgpc/VzyKDTLEFpv6M0n06foVSWPAb+Xg0k6ikgSaI04SnGUKOQeBdvrXZCqhp3xdlii0cp+bUCgbCRQ==", + "version": "5.1.12", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.12.tgz", + "integrity": "sha512-TgvArbEZu0lk/dvg2ja+B7kYoD7BBCmn3+k58xD0qjrGHsFzXY/wKTo9M5egcUCabPol05e/PVoIu79s2JN4WQ==", "requires": { - "cssnano-preset-default": "^5.2.6", + "cssnano-preset-default": "^5.2.12", "lilconfig": "^2.0.3", "yaml": "^1.10.2" } }, "cssnano-preset-default": { - "version": "5.2.6", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.6.tgz", - "integrity": "sha512-QwnYv/ZuNH0eWOxs3ME7w5uXXdWZKKXVGn1c6P877nPLl7SR8pAQQNe1CKbcPc+qpIbb2cq554Cv3QYG0MxTSQ==", + "version": "5.2.12", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.12.tgz", + "integrity": "sha512-OyCBTZi+PXgylz9HAA5kHyoYhfGcYdwFmyaJzWnzxuGRtnMw/kR6ilW9XzlzlRAtB6PLT/r+prYgkef7hngFew==", "requires": { - "css-declaration-sorter": "^6.2.2", + "css-declaration-sorter": "^6.3.0", "cssnano-utils": "^3.1.0", "postcss-calc": "^8.2.3", "postcss-colormin": "^5.3.0", - "postcss-convert-values": "^5.1.0", - "postcss-discard-comments": "^5.1.1", + "postcss-convert-values": "^5.1.2", + "postcss-discard-comments": "^5.1.2", "postcss-discard-duplicates": "^5.1.0", "postcss-discard-empty": "^5.1.1", "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.3", - "postcss-merge-rules": "^5.1.1", + "postcss-merge-longhand": "^5.1.6", + "postcss-merge-rules": "^5.1.2", "postcss-minify-font-values": "^5.1.0", "postcss-minify-gradients": "^5.1.1", - "postcss-minify-params": "^5.1.2", - "postcss-minify-selectors": "^5.2.0", + "postcss-minify-params": "^5.1.3", + "postcss-minify-selectors": "^5.2.1", "postcss-normalize-charset": "^5.1.0", "postcss-normalize-display-values": "^5.1.0", - "postcss-normalize-positions": "^5.1.0", - "postcss-normalize-repeat-style": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", "postcss-normalize-string": "^5.1.0", "postcss-normalize-timing-functions": "^5.1.0", "postcss-normalize-unicode": "^5.1.0", "postcss-normalize-url": "^5.1.0", "postcss-normalize-whitespace": "^5.1.1", - "postcss-ordered-values": "^5.1.1", + "postcss-ordered-values": "^5.1.3", "postcss-reduce-initial": "^5.1.0", "postcss-reduce-transforms": "^5.1.0", "postcss-svgo": "^5.1.0", @@ -20790,11 +19288,6 @@ "version": "2.0.14", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } }, @@ -20819,9 +19312,7 @@ } }, "csstype": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.11.tgz", - "integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==" + "version": "3.1.0" }, "damerau-levenshtein": { "version": "1.0.8", @@ -20836,12 +19327,30 @@ "abab": "^2.0.3", "whatwg-mimetype": "^2.3.0", "whatwg-url": "^8.0.0" + }, + "dependencies": { + "tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "requires": { + "punycode": "^2.1.1" + } + }, + "whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "requires": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + } + } } }, "debug": { "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "requires": { "ms": "2.1.2" } @@ -20852,27 +19361,12 @@ "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" }, "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + "version": "0.2.0" }, "dedent": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=" - }, - "deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "requires": { - "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" - } + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" }, "deep-is": { "version": "0.1.4", @@ -20898,52 +19392,34 @@ "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==" }, "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", "requires": { - "object-keys": "^1.0.12" + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" } }, "defined": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" - }, - "del": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", - "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", - "requires": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - } + "integrity": "sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==" }, "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "version": "1.0.0" }, "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" }, "dequal": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.2.tgz", - "integrity": "sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==" + "version": "2.0.2" }, "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" }, "detect-newline": { "version": "3.1.0", @@ -20975,18 +19451,18 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" } } }, "detective": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", - "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", + "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", "requires": { - "acorn-node": "^1.6.1", + "acorn-node": "^1.8.2", "defined": "^1.0.0", - "minimist": "^1.1.1" + "minimist": "^1.2.6" } }, "didyoumean": { @@ -20995,9 +19471,7 @@ "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" }, "diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==" + "version": "28.1.1" }, "dir-glob": { "version": "3.0.1", @@ -21015,23 +19489,14 @@ "dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==" }, "dns-packet": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", - "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", - "requires": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", + "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", "requires": { - "buffer-indexof": "^1.0.0" + "@leichtgewicht/ip-codec": "^2.0.1" } }, "doctrine": { @@ -21043,9 +19508,7 @@ } }, "dom-accessibility-api": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.13.tgz", - "integrity": "sha512-R305kwb5CcMDIpSHUnLyIAp7SrSPBx6F0VfQFB3M75xVMHhXJJIdePYgbPPh1o57vCHNu5QztokWUPsLjWzFqw==" + "version": "0.5.14" }, "dom-converter": { "version": "0.2.0", @@ -21057,33 +19520,25 @@ }, "dom-helpers": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", "requires": { "@babel/runtime": "^7.8.7", "csstype": "^3.0.2" } }, "dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", "requires": { "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", "entities": "^2.0.0" - }, - "dependencies": { - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" - } } }, "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" }, "domexception": { "version": "2.0.1", @@ -21106,22 +19561,16 @@ "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", "requires": { "domelementtype": "^2.2.0" - }, - "dependencies": { - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" - } } }, "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", "requires": { - "dom-serializer": "0", - "domelementtype": "1" + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" } }, "dot-case": { @@ -21131,13 +19580,6 @@ "requires": { "no-case": "^3.0.4", "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } } }, "dotenv": { @@ -21158,20 +19600,18 @@ "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "ejs": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.7.tgz", - "integrity": "sha512-BIar7R6abbUxDA3bfXrO4DSgwo8I+fB5/1zgujl3HLLjwd6+9iOnrT+t3grn2qbk9vOgBubXOFwX2m9axoFaGw==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", + "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", "requires": { "jake": "^10.8.5" } }, "electron-to-chromium": { - "version": "1.4.103", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.103.tgz", - "integrity": "sha512-c/uKWR1Z/W30Wy/sx3dkZoj4BijbXX85QKWu9jJfjho3LBAXNEGAEW3oWiGb+dotA6C6BzCTxL2/aLes7jlUeg==" + "version": "1.4.164" }, "emittery": { "version": "0.8.1", @@ -21191,12 +19631,12 @@ "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" }, "enhanced-resolve": { - "version": "5.9.2", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz", - "integrity": "sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA==", + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz", + "integrity": "sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==", "requires": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -21216,45 +19656,61 @@ } }, "error-stack-parser": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.7.tgz", - "integrity": "sha512-chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", "requires": { - "stackframe": "^1.1.1" + "stackframe": "^1.3.4" } }, "es-abstract": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.2.tgz", - "integrity": "sha512-gfSBJoZdlL2xRiOCy0g8gLMryhoe1TlimjzU99L/31Z8QEGIhVQI+EWwt5lT+AuU9SnorVupXFqqOGqGfsyO6w==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", "get-intrinsic": "^1.1.1", "get-symbol-description": "^1.0.0", "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", "is-callable": "^1.2.4", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", + "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", "is-weakref": "^1.0.2", "object-inspect": "^1.12.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.1" + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" } }, + "es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==" + }, "es-module-lexer": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" }, + "es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "requires": { + "has": "^1.0.3" + } + }, "es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", @@ -21266,19 +19722,15 @@ } }, "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + "version": "3.1.1" }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" }, "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "version": "1.0.5" }, "escodegen": { "version": "2.0.0", @@ -21295,7 +19747,7 @@ "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", "requires": { "prelude-ls": "~1.1.2", "type-check": "~0.3.2" @@ -21317,18 +19769,12 @@ "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==" }, "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", "requires": { "prelude-ls": "~1.1.2" } @@ -21336,11 +19782,11 @@ } }, "eslint": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.12.0.tgz", - "integrity": "sha512-it1oBL9alZg1S8UycLm5YDMAkIhtH6FtAzuZs6YvoGVldWjbS08BkAdb/ymP9LlAyq8koANu32U7Ib/w+UNh8Q==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.18.0.tgz", + "integrity": "sha512-As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA==", "requires": { - "@eslint/eslintrc": "^1.2.1", + "@eslint/eslintrc": "^1.3.0", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -21351,14 +19797,14 @@ "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", + "espree": "^9.3.2", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", "glob-parent": "^6.0.1", - "globals": "^13.6.0", + "globals": "^13.15.0", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", @@ -21367,7 +19813,7 @@ "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", "regexpp": "^3.2.0", @@ -21377,68 +19823,30 @@ "v8-compile-cache": "^2.0.3" }, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, "escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" }, "globals": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", - "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", "requires": { "type-fest": "^0.20.2" } }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" } } }, "eslint-config-react-app": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.0.tgz", - "integrity": "sha512-xyymoxtIt1EOsSaGag+/jmcywRuieQoA2JbPCjnw9HukFj9/97aGPoZVFioaotzk1K5Qt9sHO5EutZbkrAXS0g==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", + "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==", "requires": { "@babel/core": "^7.16.0", "@babel/eslint-parser": "^7.16.3", @@ -21495,7 +19903,7 @@ "find-up": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", "requires": { "locate-path": "^2.0.0" } @@ -21503,7 +19911,7 @@ "locate-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", "requires": { "p-locate": "^2.0.0", "path-exists": "^3.0.0" @@ -21520,7 +19928,7 @@ "p-locate": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", "requires": { "p-limit": "^1.1.0" } @@ -21528,12 +19936,12 @@ "p-try": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==" }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==" } } }, @@ -21547,23 +19955,23 @@ } }, "eslint-plugin-import": { - "version": "2.25.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz", - "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==", + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", "requires": { "array-includes": "^3.1.4", "array.prototype.flat": "^1.2.5", "debug": "^2.6.9", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.2", + "eslint-module-utils": "^2.7.3", "has": "^1.0.3", - "is-core-module": "^2.8.0", + "is-core-module": "^2.8.1", "is-glob": "^4.0.3", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "object.values": "^1.1.5", - "resolve": "^1.20.0", - "tsconfig-paths": "^3.12.0" + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" }, "dependencies": { "debug": { @@ -21585,7 +19993,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" } } }, @@ -21614,27 +20022,38 @@ "jsx-ast-utils": "^3.2.1", "language-tags": "^1.0.5", "minimatch": "^3.0.4" + }, + "dependencies": { + "aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "requires": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + } + } } }, "eslint-plugin-react": { - "version": "7.29.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.29.4.tgz", - "integrity": "sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ==", + "version": "7.30.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.0.tgz", + "integrity": "sha512-RgwH7hjW48BleKsYyHK5vUAvxtE9SMPDKmcPRQgtRCYaZA0XQPt5FSkrU3nhz5ifzMZcA8opwmRJ2cmOO8tr5A==", "requires": { - "array-includes": "^3.1.4", - "array.prototype.flatmap": "^1.2.5", + "array-includes": "^3.1.5", + "array.prototype.flatmap": "^1.3.0", "doctrine": "^2.1.0", "estraverse": "^5.3.0", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", "object.entries": "^1.1.5", "object.fromentries": "^2.0.5", - "object.hasown": "^1.1.0", + "object.hasown": "^1.1.1", "object.values": "^1.1.5", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.3", "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.6" + "string.prototype.matchall": "^4.0.7" }, "dependencies": { "doctrine": { @@ -21646,31 +20065,27 @@ } }, "resolve": { - "version": "2.0.0-next.3", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", - "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", + "version": "2.0.0-next.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", + "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, "eslint-plugin-react-hooks": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.4.0.tgz", - "integrity": "sha512-U3RVIfdzJaeKDQKEJbz5p3NW8/L80PCATJAfuojwbaEL+gBjfGdhUcGde+WGUW46Q5sr/NgxevsIiDtNXrvZaQ==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", "requires": {} }, "eslint-plugin-testing-library": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.2.0.tgz", - "integrity": "sha512-fYFH8lA1hbc1Epr9laNm/+YIR2d+R7WI8sFz9jIRAUfqCf21Nb5BzZwhNeZlu9wKXwDtuf+hUM5QJxG1PuDsTQ==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.5.1.tgz", + "integrity": "sha512-plLEkkbAKBjPxsLj7x4jNapcHAg2ernkQlKKrN2I8NrQwPISZHyCUNvg5Hv3EDqOQReToQb5bnqXYbkijJPE/g==", "requires": { "@typescript-eslint/utils": "^5.13.0" } @@ -21717,12 +20132,12 @@ } }, "espree": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", - "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", + "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", "requires": { - "acorn": "^8.7.0", - "acorn-jsx": "^5.3.1", + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.3.0" } }, @@ -21765,12 +20180,10 @@ "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" }, "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + "version": "4.0.7" }, "events": { "version": "3.3.0", @@ -21796,7 +20209,7 @@ "exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==" }, "expect": { "version": "27.5.1", @@ -21807,40 +20220,75 @@ "jest-get-type": "^27.5.1", "jest-matcher-utils": "^27.5.1", "jest-message-util": "^27.5.1" + }, + "dependencies": { + "diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==" + }, + "jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + } + }, + "jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==" + }, + "jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + } + } } }, "express": { - "version": "4.17.3", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", - "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", "requires": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.19.2", + "body-parser": "1.20.0", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.4.2", + "cookie": "0.5.0", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "~1.1.2", + "depd": "2.0.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "~1.1.2", + "finalhandler": "1.2.0", "fresh": "0.5.2", + "http-errors": "2.0.0", "merge-descriptors": "1.0.1", "methods": "~1.1.2", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.7", - "qs": "6.9.7", + "qs": "6.10.3", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", + "send": "0.18.0", + "serve-static": "1.15.0", "setprototypeof": "1.2.0", - "statuses": "~1.5.0", + "statuses": "2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" @@ -21849,7 +20297,7 @@ "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, "debug": { "version": "2.6.9", @@ -21862,7 +20310,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "safe-buffer": { "version": "5.2.1", @@ -21906,7 +20354,7 @@ "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" }, "fastq": { "version": "1.13.0", @@ -21950,9 +20398,9 @@ } }, "filelist": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.3.tgz", - "integrity": "sha512-LwjCsruLWQULGYKy7TX0OPtrL9kLpojOFKc5VCTxdFTV7w5zbsgqVKfnkKG7Qgjtq50gKfO56hJv88OfcGb70Q==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", "requires": { "minimatch": "^5.0.1" }, @@ -21966,9 +20414,9 @@ } }, "minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", "requires": { "brace-expansion": "^2.0.1" } @@ -21982,23 +20430,21 @@ }, "fill-range": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "requires": { "to-regex-range": "^5.0.1" } }, "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", "requires": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", - "statuses": "~1.5.0", + "statuses": "2.0.1", "unpipe": "~1.0.0" }, "dependencies": { @@ -22013,7 +20459,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" } } }, @@ -22051,14 +20497,14 @@ "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==" }, "follow-redirects": { - "version": "1.14.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", - "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==" + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", + "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==" }, "fork-ts-checker-webpack-plugin": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.0.tgz", - "integrity": "sha512-cS178Y+xxtIjEUorcHddKS7yCMlrDPV31mt47blKKRfMd70Kxu5xruAFE2o9sDY6wVC5deuob/u/alD04YYHnw==", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.2.tgz", + "integrity": "sha512-m5cUmF30xkZ7h4tWUgTAcEaKmUW7tfyUyTqNNOz7OxWJ0v1VWKTcOvH8FWHUwSjlW/356Ijc9vi3XfcPstpQKA==", "requires": { "@babel/code-frame": "^7.8.3", "@types/json-schema": "^7.0.5", @@ -22075,36 +20521,6 @@ "tapable": "^1.0.0" }, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, "cosmiconfig": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", @@ -22128,11 +20544,6 @@ "universalify": "^2.0.0" } }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, "schema-utils": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", @@ -22143,12 +20554,12 @@ "ajv-keywords": "^3.4.1" } }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "requires": { - "has-flag": "^4.0.0" + "lru-cache": "^6.0.0" } }, "tapable": { @@ -22160,8 +20571,6 @@ }, "form-data": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -22181,12 +20590,12 @@ "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" }, "fs-extra": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", - "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -22201,36 +20610,54 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, "functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==" + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==" }, "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" + "version": "1.0.0-beta.2" }, "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + "version": "2.0.5" }, "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", + "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.3" } }, "get-own-enumerable-property-symbols": { @@ -22258,14 +20685,14 @@ } }, "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } @@ -22312,9 +20739,7 @@ } }, "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + "version": "11.12.0" }, "globby": { "version": "11.1.0", @@ -22330,9 +20755,9 @@ } }, "graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, "gzip-size": { "version": "6.0.0", @@ -22348,9 +20773,7 @@ "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" }, "harmony-reflect": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", - "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==" + "version": "1.6.2" }, "has": { "version": "1.0.3", @@ -22361,14 +20784,20 @@ } }, "has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==" }, "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "version": "4.0.0" + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "requires": { + "get-intrinsic": "^1.1.1" + } }, "has-symbols": { "version": "1.0.3", @@ -22396,7 +20825,7 @@ "hpack.js": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", "requires": { "inherits": "^2.0.1", "obuf": "^1.0.0", @@ -22417,6 +20846,14 @@ "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } } } }, @@ -22450,13 +20887,6 @@ "param-case": "^3.0.4", "relateurl": "^0.2.7", "terser": "^5.10.0" - }, - "dependencies": { - "commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" - } } }, "html-webpack-plugin": { @@ -22480,49 +20910,22 @@ "domhandler": "^4.0.0", "domutils": "^2.5.2", "entities": "^2.0.0" - }, - "dependencies": { - "dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" - }, - "domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - } } }, "http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" }, "http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "requires": { - "depd": "~1.1.2", + "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", + "statuses": "2.0.1", "toidentifier": "1.0.1" } }, @@ -22552,9 +20955,9 @@ } }, "http-proxy-middleware": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.4.tgz", - "integrity": "sha512-m/4FxX17SUvz4lJ5WPXOHDUuCwIqXLfLHs1s0uZ3oYjhoXlx9csYxaOa0ElDEJ+h8Q4iJ1s+lTMbiCa4EXIJqg==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", "requires": { "@types/http-proxy": "^1.17.8", "http-proxy": "^1.18.1", @@ -22564,9 +20967,9 @@ } }, "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "requires": { "agent-base": "6", "debug": "4" @@ -22578,11 +20981,11 @@ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" }, "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "icss-utils": { @@ -22598,8 +21001,6 @@ }, "identity-obj-proxy": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", - "integrity": "sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=", "requires": { "harmony-reflect": "^1.4.6" } @@ -22610,14 +21011,12 @@ "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" }, "immer": { - "version": "9.0.12", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.12.tgz", - "integrity": "sha512-lk7UNmSbAukB5B6dh9fnh5D0bJTOFKxVg2cyJWTYrWRfhLrLMBquONcUs3aFq507hNoIZEDDh8lb8UtOizSMhA==" + "version": "9.0.15", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.15.tgz", + "integrity": "sha512-2eB/sswms9AEUSkOm4SbV5Y7Vmt/bKRwByd52jfLkW4OLYeaTP3EEiJ9agqU0O/tq6Dk62Zfj+TJSqfm1rLVGQ==" }, "immutable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", - "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==" + "version": "4.1.0" }, "import-fresh": { "version": "3.3.0", @@ -22626,6 +21025,13 @@ "requires": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + } } }, "import-local": { @@ -22640,26 +21046,22 @@ "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" }, "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + "version": "4.0.0" }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "requires": { "once": "^1.3.0", "wrappy": "1" } }, "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "version": "2.0.4" }, "ini": { "version": "1.3.8", @@ -22678,35 +21080,19 @@ }, "invariant": { "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "requires": { "loose-envify": "^1.0.0" } }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, "ipaddr.js": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==" }, - "is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" }, "is-bigint": { "version": "1.0.4", @@ -22718,8 +21104,6 @@ }, "is-binary-path": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "requires": { "binary-extensions": "^2.0.0" } @@ -22739,9 +21123,9 @@ "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" }, "is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", "requires": { "has": "^1.0.3" } @@ -22760,14 +21144,10 @@ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" }, "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "version": "2.1.1" }, "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + "version": "3.0.0" }, "is-generator-fn": { "version": "2.1.0", @@ -22776,8 +21156,6 @@ }, "is-glob": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "requires": { "is-extglob": "^2.1.1" } @@ -22785,7 +21163,7 @@ "is-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=" + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==" }, "is-negative-zero": { "version": "2.0.2", @@ -22793,14 +21171,12 @@ "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" }, "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + "version": "7.0.0" }, "is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "requires": { "has-tostringtag": "^1.0.0" } @@ -22808,17 +21184,7 @@ "is-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" - }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==" - }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==" }, "is-plain-obj": { "version": "3.0.0", @@ -22842,7 +21208,7 @@ "is-regexp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=" + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==" }, "is-root": { "version": "2.1.0", @@ -22850,9 +21216,12 @@ "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==" }, "is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "requires": { + "call-bind": "^1.0.2" + } }, "is-stream": { "version": "2.0.1", @@ -22878,7 +21247,7 @@ "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" }, "is-weakref": { "version": "1.0.2", @@ -22899,12 +21268,12 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "istanbul-lib-coverage": { "version": "3.2.0", @@ -22912,22 +21281,15 @@ "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==" }, "istanbul-lib-instrument": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", - "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", + "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", "requires": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", "@istanbuljs/schema": "^0.1.2", "istanbul-lib-coverage": "^3.2.0", "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } } }, "istanbul-lib-report": { @@ -22938,21 +21300,6 @@ "istanbul-lib-coverage": "^3.0.0", "make-dir": "^3.0.0", "supports-color": "^7.1.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } } }, "istanbul-lib-source-maps": { @@ -22963,13 +21310,6 @@ "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } } }, "istanbul-reports": { @@ -22990,56 +21330,6 @@ "chalk": "^4.0.2", "filelist": "^1.0.1", "minimatch": "^3.0.4" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "async": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", - "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } } }, "jest": { @@ -23050,70 +21340,6 @@ "@jest/core": "^27.5.1", "import-local": "^3.0.2", "jest-cli": "^27.5.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "jest-cli": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", - "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", - "requires": { - "@jest/core": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "prompts": "^2.0.1", - "yargs": "^16.2.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } } }, "jest-changed-files": { @@ -23152,51 +21378,59 @@ "throat": "^6.0.1" }, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } + "diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==" }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", "requires": { - "color-name": "~1.1.4" + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" } }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==" }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", "requires": { - "has-flag": "^4.0.0" + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" } } } }, + "jest-cli": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "requires": { + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + } + }, "jest-config": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", @@ -23222,110 +21456,42 @@ "jest-util": "^27.5.1", "jest-validate": "^27.5.1", "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==" } } }, "jest-diff": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "version": "28.1.1", "requires": { "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" + "diff-sequences": "^28.1.1", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.1" }, "dependencies": { "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } + "version": "5.2.0" }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "pretty-format": { + "version": "28.1.1", "requires": { - "color-name": "~1.1.4" + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" } }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } + "react-is": { + "version": "18.2.0" } } }, @@ -23349,48 +21515,10 @@ "pretty-format": "^27.5.1" }, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } + "jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==" } } }, @@ -23422,9 +21550,7 @@ } }, "jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==" + "version": "28.0.2" }, "jest-haste-map": { "version": "27.5.1", @@ -23470,47 +21596,36 @@ "throat": "^6.0.1" }, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } + "diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==" }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", "requires": { - "color-name": "~1.1.4" + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" } }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==" }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", "requires": { - "has-flag": "^4.0.0" + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" } } } @@ -23522,61 +21637,38 @@ "requires": { "jest-get-type": "^27.5.1", "pretty-format": "^27.5.1" + }, + "dependencies": { + "jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==" + } } }, "jest-matcher-utils": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "version": "28.1.1", "requires": { "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" + "jest-diff": "^28.1.1", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.1" }, "dependencies": { "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } + "version": "5.2.0" }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "pretty-format": { + "version": "28.1.1", "requires": { - "color-name": "~1.1.4" + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" } }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } + "react-is": { + "version": "18.2.0" } } }, @@ -23594,51 +21686,6 @@ "pretty-format": "^27.5.1", "slash": "^3.0.0", "stack-utils": "^2.0.3" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } } }, "jest-mock": { @@ -23676,51 +21723,6 @@ "resolve": "^1.20.0", "resolve.exports": "^1.1.0", "slash": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } } }, "jest-resolve-dependencies": { @@ -23759,51 +21761,6 @@ "jest-worker": "^27.5.1", "source-map-support": "^0.5.6", "throat": "^6.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } } }, "jest-runtime": { @@ -23817,72 +21774,22 @@ "@jest/source-map": "^27.5.1", "@jest/test-result": "^27.5.1", "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" } }, "jest-serializer": { @@ -23923,47 +21830,44 @@ "semver": "^7.3.2" }, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } + "diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==" }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==" + }, + "jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", "requires": { - "color-name": "~1.1.4" + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" } }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "requires": { - "has-flag": "^4.0.0" + "lru-cache": "^6.0.0" } } } @@ -23979,51 +21883,6 @@ "ci-info": "^3.2.0", "graceful-fs": "^4.2.9", "picomatch": "^2.2.3" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } } }, "jest-validate": { @@ -24039,109 +21898,179 @@ "pretty-format": "^27.5.1" }, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } + "jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==" } } }, "jest-watch-typeahead": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.0.0.tgz", - "integrity": "sha512-jxoszalAb394WElmiJTFBMzie/RDCF+W7Q29n5LzOPtcoQoHWfdUtHFkbhgf5NwWe8uMOxvKb/g7ea7CshfkTw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz", + "integrity": "sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw==", "requires": { "ansi-escapes": "^4.3.1", "chalk": "^4.0.0", - "jest-regex-util": "^27.0.0", - "jest-watcher": "^27.0.0", + "jest-regex-util": "^28.0.0", + "jest-watcher": "^28.0.0", "slash": "^4.0.0", "string-length": "^5.0.1", "strip-ansi": "^7.0.1" }, "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + "@jest/console": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.1.tgz", + "integrity": "sha512-0RiUocPVFEm3WRMOStIHbRWllG6iW6E3/gUPnf4lkrVFyXIIDeCe+vlKeYyFOMhB2EPE6FLFCNADSOOQMaqvyA==", + "requires": { + "@jest/types": "^28.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.1", + "jest-util": "^28.1.1", + "slash": "^3.0.0" + }, + "dependencies": { + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + } + } }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "@jest/test-result": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.1.tgz", + "integrity": "sha512-hPmkugBktqL6rRzwWAtp1JtYT4VHwv8OQ+9lE5Gymj6dHzubI/oJHMUpPOt8NrdVWSrz9S7bHjJUmv2ggFoUNQ==", "requires": { - "color-convert": "^2.0.1" + "@jest/console": "^28.1.1", + "@jest/types": "^28.1.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" } }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "@jest/types": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.1.tgz", + "integrity": "sha512-vRXVqSg1VhDnB8bWcmvLzmg0Bt9CRKVgHPXqYwvWMX3TvAjeO+nRuK6+VdTKCtWOvYlmkF/HqNAL/z+N3B53Kw==", "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@jest/schemas": "^28.0.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" } }, - "char-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz", - "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==" + "@types/yargs": { + "version": "17.0.10", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.10.tgz", + "integrity": "sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==", + "requires": { + "@types/yargs-parser": "*" + } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" + }, + "emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==" + }, + "jest-message-util": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.1.tgz", + "integrity": "sha512-xoDOOT66fLfmTRiqkoLIU7v42mal/SqwDKvfmfiWAdJMSJiU+ozgluO7KbvoAgiwIrrGZsV7viETjc8GNrA/IQ==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "dependencies": { + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + } + } + }, + "jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==" + }, + "jest-util": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.1.tgz", + "integrity": "sha512-FktOu7ca1DZSyhPAxgxB6hfh2+9zMoJ7aEQA759Z6p45NuO8mWcqujH+UdHlCm/V6JTWwDztM2ITCzU1ijJAfw==", "requires": { - "color-name": "~1.1.4" + "@jest/types": "^28.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" } }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "jest-watcher": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.1.tgz", + "integrity": "sha512-RQIpeZ8EIJMxbQrXpJQYIIlubBnB9imEHsxxE41f54ZwcqWLysL/A0ZcdMirf+XsMn3xfphVQVV4EW0/p7i7Ug==", + "requires": { + "@jest/test-result": "^28.1.1", + "@jest/types": "^28.1.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.1", + "string-length": "^4.0.1" + }, + "dependencies": { + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + } + } }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "pretty-format": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.1.tgz", + "integrity": "sha512-wwJbVTGFHeucr5Jw2bQ9P+VYHyLdAqedFLEkdQUVaBF/eiidDwH5OpilINq4mEfhbCjLnirt6HTTDhv1HaTIQw==", + "requires": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" }, "slash": { "version": "4.0.0", @@ -24155,6 +22084,13 @@ "requires": { "char-regex": "^2.0.0", "strip-ansi": "^7.0.1" + }, + "dependencies": { + "char-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz", + "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==" + } } }, "strip-ansi": { @@ -24163,14 +22099,13 @@ "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", "requires": { "ansi-regex": "^6.0.1" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + } } } } @@ -24187,51 +22122,6 @@ "chalk": "^4.0.0", "jest-util": "^27.5.1", "string-length": "^4.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } } }, "jest-worker": { @@ -24244,11 +22134,6 @@ "supports-color": "^8.0.0" }, "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, "supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -24260,16 +22145,17 @@ } }, "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "version": "4.0.0" }, "js-yaml": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "requires": { "argparse": "^2.0.1" + }, + "dependencies": { + "argparse": { + "version": "2.0.1" + } } }, "jsdom": { @@ -24304,17 +22190,30 @@ "whatwg-url": "^8.5.0", "ws": "^7.4.6", "xml-name-validator": "^3.0.0" + }, + "dependencies": { + "tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "requires": { + "punycode": "^2.1.1" + } + }, + "whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "requires": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + } + } } }, "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + "version": "2.5.2" }, "json-parse-even-better-errors": { "version": "2.3.1", @@ -24334,12 +22233,10 @@ "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" }, "json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==" + "version": "2.2.1" }, "jsonfile": { "version": "6.1.0", @@ -24356,9 +22253,9 @@ "integrity": "sha512-PNYZIdMjVIvVgDSYKTT63Y+KZ6IZvGRNNWcxwD+GNnUz1MKPfv30J8ueCjdwcN0nDx2SlshgyB7Oy0epAzVRRg==" }, "jsx-ast-utils": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.2.tgz", - "integrity": "sha512-HDAyJ4MNQBboGpUnHAVUNJs6X0lh058s6FuixsFGP7MgJYpD6Vasd6nzSG5iIfXu1zAYlHJ/zsOKNlrenTUBnw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.0.tgz", + "integrity": "sha512-XzO9luP6L0xkxwhIJMTJQpZo/eeN60K08jHdexfD569AGxeNug6UketeHXEhROoM8aR7EcUoOQmIhcJQjcuq8Q==", "requires": { "array-includes": "^3.1.4", "object.assign": "^4.1.2" @@ -24387,7 +22284,7 @@ "language-tags": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", - "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", + "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", "requires": { "language-subtag-registry": "~0.3.2" } @@ -24417,9 +22314,9 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, "loader-runner": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", - "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==" + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==" }, "loader-utils": { "version": "2.0.2", @@ -24440,19 +22337,17 @@ } }, "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "version": "4.17.21" }, "lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" }, "lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" }, "lodash.merge": { "version": "4.6.2", @@ -24462,17 +22357,20 @@ "lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==" }, "lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" + }, + "long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" }, "loose-envify": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "requires": { "js-tokens": "^3.0.0 || ^4.0.0" } @@ -24483,13 +22381,6 @@ "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", "requires": { "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } } }, "lru-cache": { @@ -24501,9 +22392,7 @@ } }, "lz-string": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", - "integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=" + "version": "1.4.4" }, "magic-string": { "version": "0.25.9", @@ -24519,13 +22408,6 @@ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "requires": { "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } } }, "makeerror": { @@ -24544,20 +22426,20 @@ "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" }, "memfs": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.1.tgz", - "integrity": "sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw==", + "version": "3.4.6", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.6.tgz", + "integrity": "sha512-rH9mjopto6Wkr7RFuH9l9dk3qb2XGOcYKr7xMhaYqfzuJqOqhRrcFvfD7JMuPj6SLmPreh5+6eAuv36NFAU+Mw==", "requires": { - "fs-monkey": "1.0.3" + "fs-monkey": "^1.0.3" } }, "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" }, "merge-stream": { "version": "2.0.0", @@ -24572,7 +22454,7 @@ "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" }, "micromatch": { "version": "4.0.5", @@ -24589,14 +22471,10 @@ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" }, "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + "version": "1.52.0" }, "mime-types": { "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "requires": { "mime-db": "1.52.0" } @@ -24607,14 +22485,12 @@ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" }, "min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" + "version": "1.0.1" }, "mini-css-extract-plugin": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.0.tgz", - "integrity": "sha512-ndG8nxCEnAemsg4FSgS+yNyHKgkTB4nPKqCOgh65j3/30qqC5RaSQQXMm++Y6sb6E1zRSxPkztj9fqxhS1Eo6w==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.1.tgz", + "integrity": "sha512-wd+SD57/K6DiV7jIR34P+s3uckTRuQvx0tKPcvjFlrEylk6P4mQ2KSWk1hblj1Kxaqok7LogKOieygXqBczNlg==", "requires": { "schema-utils": "^4.0.0" }, @@ -24682,34 +22558,31 @@ "minimist": "^1.2.6" } }, + "monaco-editor": { + "version": "0.33.0", + "peer": true + }, "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "version": "2.1.2" }, "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", "requires": { - "dns-packet": "^1.3.1", + "dns-packet": "^5.2.2", "thunky": "^1.0.2" } }, - "multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=" - }, "nanoid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.2.tgz", - "integrity": "sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==" + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" }, "negotiator": { "version": "0.6.3", @@ -24728,13 +22601,14 @@ "requires": { "lower-case": "^2.0.2", "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } + } + }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" } }, "node-forge": { @@ -24745,22 +22619,18 @@ "node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" }, "node-releases": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", - "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==" + "version": "2.0.5" }, "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + "version": "3.0.0" }, "normalize-range": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==" }, "normalize-url": { "version": "6.1.0", @@ -24776,11 +22646,11 @@ } }, "nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "requires": { - "boolbase": "~1.0.0" + "boolbase": "^1.0.0" } }, "nwsapi": { @@ -24789,28 +22659,17 @@ "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" }, "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "version": "4.1.1" }, "object-hash": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", - "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==" }, "object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" - }, - "object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" }, "object-keys": { "version": "1.1.1", @@ -24849,22 +22708,23 @@ } }, "object.getownpropertydescriptors": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz", - "integrity": "sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.4.tgz", + "integrity": "sha512-sccv3L/pMModT6dJAYF3fzGMVcb38ysQ0tEE6ixv2yXJDtEIPph268OlAdJj5/qZMZDq2g/jqvwppt36uS/uQQ==", "requires": { + "array.prototype.reduce": "^1.0.4", "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.1" } }, "object.hasown": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", - "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz", + "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==", "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" } }, "object.values": { @@ -24883,9 +22743,9 @@ "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" }, "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "requires": { "ee-first": "1.1.1" } @@ -24898,7 +22758,7 @@ "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "requires": { "wrappy": "1" } @@ -24950,20 +22810,12 @@ "p-limit": "^3.0.2" } }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "requires": { - "aggregate-error": "^3.0.0" - } - }, "p-retry": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz", - "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", "requires": { - "@types/retry": "^0.12.0", + "@types/retry": "0.12.0", "retry": "^0.13.1" } }, @@ -24979,13 +22831,6 @@ "requires": { "dot-case": "^3.0.4", "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } } }, "parent-module": { @@ -25024,19 +22869,10 @@ "requires": { "no-case": "^3.0.4", "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } } }, "path": { "version": "0.12.7", - "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", - "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=", "requires": { "process": "^0.11.1", "util": "^0.10.3" @@ -25050,7 +22886,7 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" }, "path-key": { "version": "3.1.1", @@ -25065,7 +22901,7 @@ "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" }, "path-type": { "version": "4.0.0", @@ -25075,26 +22911,25 @@ "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" }, "phaser": { "version": "3.55.2", - "resolved": "https://registry.npmjs.org/phaser/-/phaser-3.55.2.tgz", - "integrity": "sha512-amKXsbb2Ht29dGPKvt1edq3yGGYKtq8373GpJYGKPNPnneYY6MtVTOgjHDuZwtmUyK4v86FugkT3hzW/N4tjxQ==", "requires": { "eventemitter3": "^4.0.7", "path": "^0.12.7" } }, "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "version": "1.0.0" }, "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + "version": "2.3.1" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" }, "pirates": { "version": "4.0.5", @@ -25188,46 +23023,26 @@ "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - } - } - }, - "portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", - "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "requires": { - "ms": "^2.1.1" - } + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==" } } }, "postcss": { - "version": "8.4.12", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz", - "integrity": "sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==", + "version": "8.4.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", + "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", "requires": { - "nanoid": "^3.3.1", + "nanoid": "^3.3.4", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" } }, "postcss-attribute-case-insensitive": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.0.tgz", - "integrity": "sha512-b4g9eagFGq9T5SWX4+USfVyjIb3liPnjhHHRMP7FMB2kFVpYyfEscV0wP3eaXhKlcHKUut8lt5BGoeylWA/dBQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.1.tgz", + "integrity": "sha512-wrt2VndqSLJpyBRNz9OmJcgnhI9MaongeWgapdBuUMu2a/KNJ8SENesG4SdiTnQwGO9b1VKbTWYAfCPeokLqZQ==", "requires": { - "postcss-selector-parser": "^6.0.2" + "postcss-selector-parser": "^6.0.10" } }, "postcss-browser-comments": { @@ -25254,25 +23069,25 @@ } }, "postcss-color-functional-notation": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.2.tgz", - "integrity": "sha512-DXVtwUhIk4f49KK5EGuEdgx4Gnyj6+t2jBSEmxvpIK9QI40tWrpS2Pua8Q7iIZWBrki2QOaeUdEaLPPa91K0RQ==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.3.tgz", + "integrity": "sha512-5fbr6FzFzjwHXKsVnkmEYrJYG8VNNzvD1tAXaPPWR97S6rhKI5uh2yOfV5TAzhDkZoq4h+chxEplFDc8GeyFtw==", "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-color-hex-alpha": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.3.tgz", - "integrity": "sha512-fESawWJCrBV035DcbKRPAVmy21LpoyiXdPTuHUfWJ14ZRjY7Y7PA6P4g8z6LQGYhU1WAxkTxjIjurXzoe68Glw==", + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz", + "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==", "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-color-rebeccapurple": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.0.2.tgz", - "integrity": "sha512-SFc3MaocHaQ6k3oZaFwH8io6MdypkUtEy/eXzXEB1vEQlO3S3oDc/FSZA8AsS04Z25RirQhlDlHLh3dn7XewWw==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.0.tgz", + "integrity": "sha512-1jtE5AKnZcKq4pjOrltFHcbEM2/IvtbD1OdhZ/wqds18//bh0UmQkffcCkzDJU+/vGodfIsVQeKn+45CJvX9Bw==", "requires": { "postcss-value-parser": "^4.2.0" } @@ -25289,31 +23104,34 @@ } }, "postcss-convert-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.0.tgz", - "integrity": "sha512-GkyPbZEYJiWtQB0KZ0X6qusqFHUepguBCNFi9t5JJc7I2OTXG7C0twbTLvCfaKOLl3rSXmpAwV7W5txd91V84g==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz", + "integrity": "sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==", "requires": { + "browserslist": "^4.20.3", "postcss-value-parser": "^4.2.0" } }, "postcss-custom-media": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz", - "integrity": "sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==", - "requires": {} + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz", + "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==", + "requires": { + "postcss-value-parser": "^4.2.0" + } }, "postcss-custom-properties": { - "version": "12.1.5", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.5.tgz", - "integrity": "sha512-FHbbB/hRo/7cxLGkc2NS7cDRIDN1oFqQnUKBiyh4b/gwk8DD8udvmRDpUhEK836kB8ggUCieHVOvZDnF9XhI3g==", + "version": "12.1.8", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.8.tgz", + "integrity": "sha512-8rbj8kVu00RQh2fQF81oBqtduiANu4MIxhyf0HbbStgPtnFlWn0yiaYTpLHrPnJbffVY1s9apWsIoVZcc68FxA==", "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-custom-selectors": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.0.tgz", - "integrity": "sha512-/1iyBhz/W8jUepjGyu7V1OPcGbc636snN1yXEQCinb6Bwt7KxsiU7/bLQlp8GwAXzCh7cobBU5odNn/2zQWR8Q==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz", + "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==", "requires": { "postcss-selector-parser": "^6.0.4" } @@ -25327,9 +23145,9 @@ } }, "postcss-discard-comments": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.1.tgz", - "integrity": "sha512-5JscyFmvkUxz/5/+TB3QTTT9Gi9jHkcn8dcmmuN68JQcv3aQg4y88yEHHhwFB52l/NkaJ43O0dbksGMAo49nfQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", "requires": {} }, "postcss-discard-duplicates": { @@ -25409,6 +23227,16 @@ "postcss-value-parser": "^4.2.0" } }, + "postcss-import": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", + "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", + "requires": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + } + }, "postcss-initial": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", @@ -25424,9 +23252,9 @@ } }, "postcss-lab-function": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.1.2.tgz", - "integrity": "sha512-isudf5ldhg4fk16M8viAwAbg6Gv14lVO35N3Z/49NhbwPQ2xbiEoHgrRgpgQojosF4vF7jY653ktB6dDrUOR8Q==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.0.tgz", + "integrity": "sha512-Zb1EO9DGYfa3CP8LhINHCcTTCTLI+R3t7AX2mKsDzdgVQ/GkCpHOTgOr6HBHslP7XDdVbqgHW5vvRPMdVANQ8w==", "requires": { "@csstools/postcss-progressive-custom-properties": "^1.1.0", "postcss-value-parser": "^4.2.0" @@ -25449,6 +23277,16 @@ "cosmiconfig": "^7.0.0", "klona": "^2.0.5", "semver": "^7.3.5" + }, + "dependencies": { + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "requires": { + "lru-cache": "^6.0.0" + } + } } }, "postcss-logical": { @@ -25464,18 +23302,18 @@ "requires": {} }, "postcss-merge-longhand": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.3.tgz", - "integrity": "sha512-lX8GPGvZ0iGP/IboM7HXH5JwkXvXod1Rr8H8ixwiA372hArk0zP4ZcCy4z4Prg/bfNlbbTf0KCOjCF9kKnpP/w==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.6.tgz", + "integrity": "sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw==", "requires": { "postcss-value-parser": "^4.2.0", "stylehacks": "^5.1.0" } }, "postcss-merge-rules": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.1.tgz", - "integrity": "sha512-8wv8q2cXjEuCcgpIB1Xx1pIy8/rhMPIQqYKNzEdyx37m6gpq83mQQdCxgIkFgliyEnKvdwJf/C61vN4tQDq4Ww==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz", + "integrity": "sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==", "requires": { "browserslist": "^4.16.6", "caniuse-api": "^3.0.0", @@ -25502,9 +23340,9 @@ } }, "postcss-minify-params": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.2.tgz", - "integrity": "sha512-aEP+p71S/urY48HWaRHasyx4WHQJyOYaKpQ6eXl8k0kxg66Wt/30VR6/woh8THgcpRbonJD5IeD+CzNhPi1L8g==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz", + "integrity": "sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==", "requires": { "browserslist": "^4.16.6", "cssnano-utils": "^3.1.0", @@ -25512,9 +23350,9 @@ } }, "postcss-minify-selectors": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.0.tgz", - "integrity": "sha512-vYxvHkW+iULstA+ctVNx0VoRAR4THQQRkG77o0oa4/mBS0OzGvvzLIvHDv/nNEM0crzN2WIyFU5X7wZhaUK3RA==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", "requires": { "postcss-selector-parser": "^6.0.5" } @@ -25560,11 +23398,12 @@ } }, "postcss-nesting": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.1.3.tgz", - "integrity": "sha512-wUC+/YCik4wH3StsbC5fBG1s2Z3ZV74vjGqBFYtmYKlVxoio5TYGM06AiaKkQPPlkXWn72HKfS7Cw5PYxnoXSw==", + "version": "10.1.8", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.1.8.tgz", + "integrity": "sha512-txdb3/idHYsBbNDFo1PFY0ExCgH5nfWi8G5lO49e6iuU42TydbODTzJgF5UuL5bhgeSlnAtDgfFTDG0Cl1zaSQ==", "requires": { - "postcss-selector-parser": "^6.0.9" + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" } }, "postcss-normalize": { @@ -25592,17 +23431,17 @@ } }, "postcss-normalize-positions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.0.tgz", - "integrity": "sha512-8gmItgA4H5xiUxgN/3TVvXRoJxkAWLW6f/KKhdsH03atg0cB8ilXnrB5PpSshwVu/dD2ZsRFQcR1OEmSBDAgcQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-repeat-style": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.0.tgz", - "integrity": "sha512-IR3uBjc+7mcWGL6CtniKNQ4Rr5fTxwkaDHwMBDGGs1x9IVRkYIT/M4NelZWkAOBdV6v3Z9S46zqaKGlyzHSchw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", "requires": { "postcss-value-parser": "^4.2.0" } @@ -25655,9 +23494,9 @@ "integrity": "sha512-lyUfF7miG+yewZ8EAk9XUBIlrHyUE6fijnesuz+Mj5zrIHIEw6KcIZSOk/elVMqzLvREmXB83Zi/5QpNRYd47w==" }, "postcss-ordered-values": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.1.tgz", - "integrity": "sha512-7lxgXF0NaoMIgyihL/2boNAEZKiW0+HkMhdKMTD93CjW8TdCy2hSdj8lsAo+uwm7EDG16Da2Jdmtqpedl0cMfw==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", "requires": { "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" @@ -25684,32 +23523,36 @@ } }, "postcss-preset-env": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.4.3.tgz", - "integrity": "sha512-dlPA65g9KuGv7YsmGyCKtFkZKCPLkoVMUE3omOl6yM+qrynVHxFvf0tMuippIrXB/sB/MyhL1FgTIbrO+qMERg==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.7.1.tgz", + "integrity": "sha512-1sx6+Nl1wMVJzaYLVaz4OAR6JodIN/Z1upmVqLwSPCLT6XyxrEoePgNMHPH08kseLe3z06i9Vfkt/32BYEKDeA==", "requires": { - "@csstools/postcss-color-function": "^1.0.3", + "@csstools/postcss-cascade-layers": "^1.0.2", + "@csstools/postcss-color-function": "^1.1.0", "@csstools/postcss-font-format-keywords": "^1.0.0", - "@csstools/postcss-hwb-function": "^1.0.0", + "@csstools/postcss-hwb-function": "^1.0.1", "@csstools/postcss-ic-unit": "^1.0.0", - "@csstools/postcss-is-pseudo-class": "^2.0.1", + "@csstools/postcss-is-pseudo-class": "^2.0.4", "@csstools/postcss-normalize-display-values": "^1.0.0", - "@csstools/postcss-oklab-function": "^1.0.2", + "@csstools/postcss-oklab-function": "^1.1.0", "@csstools/postcss-progressive-custom-properties": "^1.3.0", - "autoprefixer": "^10.4.4", - "browserslist": "^4.20.2", + "@csstools/postcss-stepped-value-functions": "^1.0.0", + "@csstools/postcss-trigonometric-functions": "^1.0.1", + "@csstools/postcss-unset-value": "^1.0.1", + "autoprefixer": "^10.4.7", + "browserslist": "^4.20.3", "css-blank-pseudo": "^3.0.3", "css-has-pseudo": "^3.0.4", "css-prefers-color-scheme": "^6.0.3", - "cssdb": "^6.5.0", - "postcss-attribute-case-insensitive": "^5.0.0", + "cssdb": "^6.6.3", + "postcss-attribute-case-insensitive": "^5.0.1", "postcss-clamp": "^4.1.0", - "postcss-color-functional-notation": "^4.2.2", + "postcss-color-functional-notation": "^4.2.3", "postcss-color-hex-alpha": "^8.0.3", "postcss-color-rebeccapurple": "^7.0.2", - "postcss-custom-media": "^8.0.0", - "postcss-custom-properties": "^12.1.5", - "postcss-custom-selectors": "^6.0.0", + "postcss-custom-media": "^8.0.1", + "postcss-custom-properties": "^12.1.7", + "postcss-custom-selectors": "^6.0.2", "postcss-dir-pseudo-class": "^6.0.4", "postcss-double-position-gradients": "^3.1.1", "postcss-env-function": "^4.0.6", @@ -25719,26 +23562,26 @@ "postcss-gap-properties": "^3.0.3", "postcss-image-set-function": "^4.0.6", "postcss-initial": "^4.0.1", - "postcss-lab-function": "^4.1.2", + "postcss-lab-function": "^4.2.0", "postcss-logical": "^5.0.4", "postcss-media-minmax": "^5.0.0", - "postcss-nesting": "^10.1.3", + "postcss-nesting": "^10.1.7", "postcss-opacity-percentage": "^1.1.2", "postcss-overflow-shorthand": "^3.0.3", "postcss-page-break": "^3.0.4", "postcss-place": "^7.0.4", - "postcss-pseudo-class-any-link": "^7.1.1", + "postcss-pseudo-class-any-link": "^7.1.4", "postcss-replace-overflow-wrap": "^4.0.0", - "postcss-selector-not": "^5.0.0", + "postcss-selector-not": "^6.0.0", "postcss-value-parser": "^4.2.0" } }, "postcss-pseudo-class-any-link": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.1.tgz", - "integrity": "sha512-JRoLFvPEX/1YTPxRxp1JO4WxBVXJYrSY7NHeak5LImwJ+VobFMwYDQHvfTXEpcn+7fYIeGkC29zYFhFWIZD8fg==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.4.tgz", + "integrity": "sha512-JxRcLXm96u14N3RzFavPIE9cRPuOqLDuzKeBsqi4oRk4vt8n0A7I0plFs/VXTg7U2n7g/XkQi0OwqTO3VWBfEg==", "requires": { - "postcss-selector-parser": "^6.0.9" + "postcss-selector-parser": "^6.0.10" } }, "postcss-reduce-initial": { @@ -25765,11 +23608,11 @@ "requires": {} }, "postcss-selector-not": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-5.0.0.tgz", - "integrity": "sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-6.0.0.tgz", + "integrity": "sha512-i/HI/VNd3V9e1WOLCwJsf9nePBRXqcGtVibcJ9FsVo0agfDEfsLSlFt94aYjY35wUNcdG0KrvdyjEr7It50wLQ==", "requires": { - "balanced-match": "^1.0.0" + "postcss-selector-parser": "^6.0.10" } }, "postcss-selector-parser": { @@ -25790,17 +23633,10 @@ "svgo": "^2.7.0" }, "dependencies": { - "css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "requires": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - } + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" }, "css-tree": { "version": "1.1.3", @@ -25811,54 +23647,11 @@ "source-map": "^0.6.1" } }, - "css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" - }, - "dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" - }, - "domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, "mdn-data": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" }, - "nth-check": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", - "requires": { - "boolbase": "^1.0.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, "svgo": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", @@ -25909,8 +23702,6 @@ }, "pretty-format": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", "requires": { "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", @@ -25918,21 +23709,12 @@ }, "dependencies": { "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + "version": "5.2.0" } } }, "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + "version": "0.11.10" }, "process-nextick-args": { "version": "2.0.1", @@ -25958,21 +23740,27 @@ }, "prop-types": { "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "requires": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.13.1" + }, + "dependencies": { + "react-is": { + "version": "16.13.1" + } } }, "prop-types-extra": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz", - "integrity": "sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==", "requires": { "react-is": "^16.3.2", "warning": "^4.0.0" + }, + "dependencies": { + "react-is": { + "version": "16.13.1" + } } }, "proxy-addr": { @@ -26004,12 +23792,15 @@ "q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==" }, "qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==" + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "requires": { + "side-channel": "^1.0.4" + } }, "queue-microtask": { "version": "1.2.3", @@ -26043,12 +23834,12 @@ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" }, "raw-body": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", - "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", "requires": { "bytes": "3.1.2", - "http-errors": "1.8.1", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" }, @@ -26057,13 +23848,19 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } } } }, "react": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.0.0.tgz", - "integrity": "sha512-x+VL6wbT4JRVPm7EGxXhZ8w8LTROaxPXOqhlGyVSrv0sB1jkyFGgXxJ8LVoPRLvPR6/CIZGFmfzqUa2NYeMr2A==", + "version": "18.2.0", "requires": { "loose-envify": "^1.1.0" } @@ -26082,18 +23879,12 @@ } }, "react-bootstrap": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-2.2.3.tgz", - "integrity": "sha512-gXsAEBdDUHnOpJ2C+DDQ4mFt7tN6u6qWnTH3tqiE9jUvV6gGY8uHFp0iGBsM+yjrBwmR6bqCBFh8Z82aQj1LSw==", + "version": "2.4.0", "requires": { "@babel/runtime": "^7.17.2", "@restart/hooks": "^0.4.6", "@restart/ui": "^1.2.0", - "@types/invariant": "^2.2.35", - "@types/prop-types": "^15.7.4", - "@types/react": ">=16.14.8", "@types/react-transition-group": "^4.4.4", - "@types/warning": "^3.0.0", "classnames": "^2.3.1", "dom-helpers": "^5.2.1", "invariant": "^2.2.4", @@ -26105,9 +23896,9 @@ } }, "react-dev-utils": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.0.tgz", - "integrity": "sha512-xBQkitdxozPxt1YZ9O1097EJiVpwHr9FoAuEVURCKV0Av8NBERovJauzP7bo1ThvuhZ4shsQ1AJiu4vQpoT1AQ==", + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", + "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", "requires": { "@babel/code-frame": "^7.16.0", "address": "^1.1.2", @@ -26128,91 +23919,42 @@ "open": "^8.4.0", "pkg-up": "^3.1.0", "prompts": "^2.4.2", - "react-error-overlay": "^6.0.10", + "react-error-overlay": "^6.0.11", "recursive-readdir": "^2.2.2", "shell-quote": "^1.7.3", "strip-ansi": "^6.0.1", "text-table": "^0.2.0" }, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, "escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, "loader-utils": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } } } }, "react-dom": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.0.0.tgz", - "integrity": "sha512-XqX7uzmFo0pUceWFCt7Gff6IyIMzFUn7QMZrbrQfGxtaxXZIcGQzoNpRLE3fQLnS4XzLLPMZX2T9TRcSrasicw==", + "version": "18.2.0", "requires": { "loose-envify": "^1.1.0", - "scheduler": "^0.21.0" + "scheduler": "^0.23.0" } }, "react-error-overlay": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.10.tgz", - "integrity": "sha512-mKR90fX7Pm5seCOfz8q9F+66VCc1PGsWSBxKbITjfKVQHMNF2zudxHnMdJiB1fRCb+XsbQV9sO9DCkgsMQgBIA==" + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", + "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" }, "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "version": "17.0.2" }, "react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + "version": "3.0.4" }, "react-refresh": { "version": "0.11.0", @@ -26272,12 +24014,20 @@ "webpack-dev-server": "^4.6.0", "webpack-manifest-plugin": "^4.0.2", "workbox-webpack-plugin": "^6.4.1" + }, + "dependencies": { + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "requires": { + "lru-cache": "^6.0.0" + } + } } }, "react-transition-group": { "version": "4.4.2", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz", - "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==", "requires": { "@babel/runtime": "^7.5.5", "dom-helpers": "^5.0.1", @@ -26285,6 +24035,14 @@ "prop-types": "^15.6.2" } }, + "read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "requires": { + "pify": "^2.3.0" + } + }, "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", @@ -26297,8 +24055,6 @@ }, "readdirp": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "requires": { "picomatch": "^2.2.1" } @@ -26323,8 +24079,6 @@ }, "redent": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", "requires": { "indent-string": "^4.0.0", "strip-indent": "^3.0.0" @@ -26344,14 +24098,12 @@ } }, "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + "version": "0.13.9" }, "regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", + "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", "requires": { "@babel/runtime": "^7.8.4" } @@ -26362,12 +24114,13 @@ "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==" }, "regexp.prototype.flags": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz", - "integrity": "sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" } }, "regexpp": { @@ -26404,14 +24157,14 @@ "jsesc": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==" } } }, "relateurl": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==" }, "renderkid": { "version": "3.0.0", @@ -26423,64 +24176,10 @@ "htmlparser2": "^6.1.0", "lodash": "^4.17.21", "strip-ansi": "^6.0.1" - }, - "dependencies": { - "css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "requires": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - } - }, - "css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" - }, - "dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" - }, - "domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "nth-check": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", - "requires": { - "boolbase": "^1.0.0" - } - } } }, "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + "version": "2.1.1" }, "require-from-string": { "version": "2.0.2", @@ -26490,14 +24189,14 @@ "requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" }, "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "requires": { - "is-core-module": "^2.8.1", + "is-core-module": "^2.9.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -26508,19 +24207,12 @@ "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "requires": { "resolve-from": "^5.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" - } } }, "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" }, "resolve-url-loader": { "version": "4.0.0", @@ -26547,11 +24239,6 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } }, @@ -26579,9 +24266,9 @@ } }, "rollup": { - "version": "2.70.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz", - "integrity": "sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==", + "version": "2.75.7", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.7.tgz", + "integrity": "sha512-VSE1iy0eaAYNCxEXaleThdFXqZJ42qDBatAwrfnPlENEZ8erQ+0LYX4JXOLPceWfZpV1VtZwZ3dFCuOZiSyFtQ==", "requires": { "fsevents": "~2.3.2" } @@ -26597,11 +24284,6 @@ "terser": "^5.0.0" }, "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, "jest-worker": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", @@ -26619,14 +24301,6 @@ "requires": { "randombytes": "^2.1.0" } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } } } }, @@ -26639,14 +24313,10 @@ } }, "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "version": "5.1.2" }, "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "version": "2.1.2" }, "sanitize.css": { "version": "13.0.0", @@ -26654,9 +24324,7 @@ "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==" }, "sass": { - "version": "1.49.10", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.49.10.tgz", - "integrity": "sha512-w37zfWJwKu4I78U4z63u1mmgoncq+v3iOB4yzQMPyAPVHHawaQSnu9C9ysGQnZEhW609jkcLioJcMCqm75JMdg==", + "version": "1.52.3", "requires": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -26686,9 +24354,7 @@ } }, "scheduler": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.21.0.tgz", - "integrity": "sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==", + "version": "0.23.0", "requires": { "loose-envify": "^1.1.0" } @@ -26703,10 +24369,16 @@ "ajv-keywords": "^3.5.2" } }, + "seedrandom": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-2.4.4.tgz", + "integrity": "sha512-9A+PDmgm+2du77B5i0Ip2cxOqqHjgNxnBgglxLcX78A2D6c2rTo61z4jnVABpF4cKeDMDG+cmXXvdnqse2VqMA==", + "peer": true + }, "select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" }, "selfsigned": { "version": "2.0.1", @@ -26716,32 +24388,27 @@ "node-forge": "^1" } }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } - }, + "semver": { + "version": "6.3.0" + }, "send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "requires": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", + "depd": "2.0.0", + "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.8.1", + "http-errors": "2.0.0", "mime": "1.6.0", "ms": "2.1.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "range-parser": "~1.2.1", - "statuses": "~1.5.0" + "statuses": "2.0.1" }, "dependencies": { "debug": { @@ -26755,7 +24422,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" } } }, @@ -26777,7 +24444,7 @@ "serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", "requires": { "accepts": "~1.3.4", "batch": "0.6.1", @@ -26796,10 +24463,15 @@ "ms": "2.0.0" } }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" + }, "http-errors": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", "requires": { "depd": "~1.1.2", "inherits": "2.0.3", @@ -26810,29 +24482,34 @@ "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==" } } }, "serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", "requires": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.17.2" + "send": "0.18.0" } }, "setprototypeof": { @@ -26899,14 +24576,10 @@ "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" }, "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "version": "0.6.1" }, "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + "version": "1.0.2" }, "source-map-loader": { "version": "3.0.1", @@ -26916,22 +24589,10 @@ "abab": "^2.0.5", "iconv-lite": "^0.6.3", "source-map-js": "^1.0.1" - }, - "dependencies": { - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } } }, "source-map-resolve": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", "requires": { "atob": "^2.1.2", "decode-uri-component": "^0.2.0" @@ -26944,13 +24605,6 @@ "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } } }, "sourcemap-codec": { @@ -26984,9 +24638,7 @@ } }, "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + "version": "1.0.3" }, "stable": { "version": "0.1.8", @@ -27009,26 +24661,31 @@ } }, "stackframe": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.1.tgz", - "integrity": "sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg==" + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" }, "state-local": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/state-local/-/state-local-1.0.7.tgz", - "integrity": "sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==" + "version": "1.0.7" }, "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" }, "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } } }, "string-length": { @@ -27047,8 +24704,6 @@ }, "string-width": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -27056,9 +24711,7 @@ }, "dependencies": { "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "version": "8.0.0" } } }, @@ -27078,21 +24731,23 @@ } }, "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" } }, "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" } }, "stringify-object": { @@ -27107,16 +24762,14 @@ }, "strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { "ansi-regex": "^5.0.1" } }, "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==" }, "strip-comments": { "version": "2.0.1", @@ -27130,8 +24783,6 @@ }, "strip-indent": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", "requires": { "min-indent": "^1.0.0" } @@ -27157,11 +24808,9 @@ } }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "7.2.0", "requires": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" } }, "supports-hyperlinks": { @@ -27171,21 +24820,6 @@ "requires": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } } }, "supports-preserve-symlinks-flag": { @@ -27218,14 +24852,83 @@ "util.promisify": "~1.0.0" }, "dependencies": { - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==" + }, + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", "requires": { - "sprintf-js": "~1.0.2" + "dom-serializer": "0", + "domelementtype": "1" + }, + "dependencies": { + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + } } }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + }, "js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", @@ -27234,6 +24937,22 @@ "argparse": "^1.0.7", "esprima": "^4.0.0" } + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "requires": { + "boolbase": "~1.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } } } }, @@ -27243,76 +24962,32 @@ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" }, "tailwindcss": { - "version": "3.0.23", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.23.tgz", - "integrity": "sha512-+OZOV9ubyQ6oI2BXEhzw4HrqvgcARY38xv3zKcjnWtMIZstEsXdI9xftd1iB7+RbOnj2HOEzkA0OyB5BaSxPQA==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.1.3.tgz", + "integrity": "sha512-PRJNYdSIthrb8hjmAyymEyEN8Yo61TMXpzyFUpxULeeyRn3Y3gpvuw6FlRTKrJvK7thSGKRnhT36VovVx4WeMA==", "requires": { - "arg": "^5.0.1", - "chalk": "^4.1.2", + "arg": "^5.0.2", "chokidar": "^3.5.3", "color-name": "^1.1.4", - "cosmiconfig": "^7.0.1", - "detective": "^5.2.0", + "detective": "^5.2.1", "didyoumean": "^1.2.2", "dlv": "^1.1.3", "fast-glob": "^3.2.11", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", + "lilconfig": "^2.0.5", "normalize-path": "^3.0.0", - "object-hash": "^2.2.0", - "postcss": "^8.4.6", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.14", + "postcss-import": "^14.1.0", "postcss-js": "^4.0.0", - "postcss-load-config": "^3.1.0", + "postcss-load-config": "^3.1.4", "postcss-nested": "5.0.6", - "postcss-selector-parser": "^6.0.9", + "postcss-selector-parser": "^6.0.10", "postcss-value-parser": "^4.2.0", "quick-lru": "^5.1.1", "resolve": "^1.22.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } } }, "tapable": { @@ -27353,13 +25028,13 @@ } }, "terser": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.12.1.tgz", - "integrity": "sha512-NXbs+7nisos5E+yXwAD+y7zrcTkMqb0dEJxIGtSKPdCBzopf7ni4odPul2aechpV7EXNvOudYOX2bb5tln1jbQ==", + "version": "5.14.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.1.tgz", + "integrity": "sha512-+ahUAE+iheqBTDxXhTisdA8hgvbEG1hHOQ9xmNjeUJSoi6DU/gMrKNcfZjHkyY6Alnuyc+ikYJaxxfHkT3+WuQ==", "requires": { + "@jridgewell/source-map": "^0.3.2", "acorn": "^8.5.0", "commander": "^2.20.0", - "source-map": "~0.7.2", "source-map-support": "~0.5.20" }, "dependencies": { @@ -27367,31 +25042,19 @@ "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" } } }, "terser-webpack-plugin": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", - "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.3.tgz", + "integrity": "sha512-Fx60G5HNYknNTNQnzQ1VePRuu89ZVYWfjRAeT5rITuCY/1b08s49e5kSQwHDirKZWuoKOBRFS98EUUoZ9kLEwQ==", "requires": { + "@jridgewell/trace-mapping": "^0.3.7", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1", "terser": "^5.7.2" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } } }, "test-exclude": { @@ -27407,7 +25070,7 @@ "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" }, "throat": { "version": "6.0.1", @@ -27425,14 +25088,10 @@ "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" }, "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + "version": "2.0.0" }, "to-regex-range": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "requires": { "is-number": "^7.0.0" } @@ -27460,12 +25119,9 @@ } }, "tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "requires": { - "punycode": "^2.1.1" - } + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, "tryer": { "version": "1.0.1", @@ -27490,13 +25146,18 @@ "requires": { "minimist": "^1.2.0" } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==" } } }, "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, "tsutils": { "version": "3.21.0", @@ -27504,6 +25165,13 @@ "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "requires": { "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } } }, "type-check": { @@ -27520,9 +25188,9 @@ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" }, "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" }, "type-is": { "version": "1.6.18", @@ -27541,21 +25209,25 @@ "is-typedarray": "^1.0.0" } }, + "typescript": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", + "peer": true + }, "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", "which-boxed-primitive": "^1.0.2" } }, "uncontrollable": { "version": "7.2.1", - "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.2.1.tgz", - "integrity": "sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==", "requires": { "@babel/runtime": "^7.6.3", "@types/react": ">=16.9.11", @@ -27603,12 +25275,12 @@ "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" }, "unquote": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" + "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==" }, "upath": { "version": "1.2.0", @@ -27625,23 +25297,19 @@ }, "util": { "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", "requires": { "inherits": "2.0.3" }, "dependencies": { "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "version": "2.0.3" } } }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "util.promisify": { "version": "1.0.1", @@ -27657,12 +25325,12 @@ "utila": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" }, "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" }, "uuid": { "version": "8.3.2", @@ -27685,16 +25353,16 @@ }, "dependencies": { "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==" } } }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" }, "w3c-hr-time": { "version": "1.0.2", @@ -27722,16 +25390,14 @@ }, "warning": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", - "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", "requires": { "loose-envify": "^1.0.0" } }, "watchpack": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", - "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", "requires": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -27746,9 +25412,7 @@ } }, "web-vitals": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-2.1.4.tgz", - "integrity": "sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg==" + "version": "2.1.4" }, "webidl-conversions": { "version": "6.1.0", @@ -27756,9 +25420,9 @@ "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==" }, "webpack": { - "version": "5.70.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.70.0.tgz", - "integrity": "sha512-ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw==", + "version": "5.73.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.73.0.tgz", + "integrity": "sha512-svjudQRPPa0YiOYa2lM/Gacw0r6PvxptHj4FuEKQ2kX05ZLkjbVc5MnPs6its5j7IZljnIqSVo/OsY2X0IpHGA==", "requires": { "@types/eslint-scope": "^3.7.3", "@types/estree": "^0.0.51", @@ -27769,13 +25433,13 @@ "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.9.2", + "enhanced-resolve": "^5.9.3", "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.9", - "json-parse-better-errors": "^1.0.2", + "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", @@ -27803,12 +25467,12 @@ } }, "webpack-dev-middleware": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.1.tgz", - "integrity": "sha512-81EujCKkyles2wphtdrnPg/QqegC/AtqNH//mQkBYSMqwFVCQrxM6ktB2O/SPlZy7LqeEfTbV3cZARGQz6umhg==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", "requires": { "colorette": "^2.0.10", - "memfs": "^3.4.1", + "memfs": "^3.4.3", "mime-types": "^2.1.31", "range-parser": "^1.2.1", "schema-utils": "^4.0.0" @@ -27852,38 +25516,37 @@ } }, "webpack-dev-server": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.7.4.tgz", - "integrity": "sha512-nfdsb02Zi2qzkNmgtZjkrMOcXnYZ6FLKcQwpxT7MvmHKc+oTtDsBju8j+NMyAygZ9GW1jMEUpy3itHtqgEhe1A==", + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.9.2.tgz", + "integrity": "sha512-H95Ns95dP24ZsEzO6G9iT+PNw4Q7ltll1GfJHV4fKphuHWgKFzGHWi4alTlTnpk1SPPk41X+l2RB7rLfIhnB9Q==", "requires": { "@types/bonjour": "^3.5.9", "@types/connect-history-api-fallback": "^1.3.5", "@types/express": "^4.17.13", "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", "@types/sockjs": "^0.3.33", - "@types/ws": "^8.2.2", + "@types/ws": "^8.5.1", "ansi-html-community": "^0.0.8", - "bonjour": "^3.5.0", + "bonjour-service": "^1.0.11", "chokidar": "^3.5.3", "colorette": "^2.0.10", "compression": "^1.7.4", "connect-history-api-fallback": "^1.6.0", "default-gateway": "^6.0.3", - "del": "^6.0.0", - "express": "^4.17.1", + "express": "^4.17.3", "graceful-fs": "^4.2.6", "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.0", + "http-proxy-middleware": "^2.0.3", "ipaddr.js": "^2.0.1", "open": "^8.0.9", "p-retry": "^4.5.0", - "portfinder": "^1.0.28", + "rimraf": "^3.0.2", "schema-utils": "^4.0.0", - "selfsigned": "^2.0.0", + "selfsigned": "^2.0.1", "serve-index": "^1.9.1", - "sockjs": "^0.3.21", + "sockjs": "^0.3.24", "spdy": "^4.0.2", - "strip-ansi": "^7.0.0", "webpack-dev-middleware": "^5.3.1", "ws": "^8.4.2" }, @@ -27907,11 +25570,6 @@ "fast-deep-equal": "^3.1.3" } }, - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" - }, "json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -27928,18 +25586,10 @@ "ajv-keywords": "^5.0.0" } }, - "strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "requires": { - "ansi-regex": "^6.0.1" - } - }, "ws": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz", + "integrity": "sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==", "requires": {} } } @@ -27953,11 +25603,6 @@ "webpack-sources": "^2.2.0" }, "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, "webpack-sources": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", @@ -27995,6 +25640,16 @@ "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", "requires": { "iconv-lite": "0.4.24" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } } }, "whatwg-fetch": { @@ -28008,13 +25663,19 @@ "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" }, "whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "requires": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + }, + "dependencies": { + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + } } }, "which": { @@ -28043,26 +25704,26 @@ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" }, "workbox-background-sync": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.5.2.tgz", - "integrity": "sha512-EjG37LSMDJ1TFlFg56wx6YXbH4/NkG09B9OHvyxx+cGl2gP5OuOzsCY3rOPJSpbcz6jpuA40VIC3HzSD4OvE1g==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.5.3.tgz", + "integrity": "sha512-0DD/V05FAcek6tWv9XYj2w5T/plxhDSpclIcAGjA/b7t/6PdaRkQ7ZgtAX6Q/L7kV7wZ8uYRJUoH11VjNipMZw==", "requires": { "idb": "^6.1.4", - "workbox-core": "6.5.2" + "workbox-core": "6.5.3" } }, "workbox-broadcast-update": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.5.2.tgz", - "integrity": "sha512-DjJYraYnprTZE/AQNoeogaxI1dPuYmbw+ZJeeP8uXBSbg9SNv5wLYofQgywXeRepv4yr/vglMo9yaHUmBMc+4Q==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.5.3.tgz", + "integrity": "sha512-4AwCIA5DiDrYhlN+Miv/fp5T3/whNmSL+KqhTwRBTZIL6pvTgE4lVuRzAt1JltmqyMcQ3SEfCdfxczuI4kwFQg==", "requires": { - "workbox-core": "6.5.2" + "workbox-core": "6.5.3" } }, "workbox-build": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.5.2.tgz", - "integrity": "sha512-TVi4Otf6fgwikBeMpXF9n0awHfZTMNu/nwlMIT9W+c13yvxkmDFMPb7vHYK6RUmbcxwPnz4I/R+uL76+JxG4JQ==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.5.3.tgz", + "integrity": "sha512-8JNHHS7u13nhwIYCDea9MNXBNPHXCs5KDZPKI/ZNTr3f4sMGoD7hgFGecbyjX1gw4z6e9bMpMsOEJNyH5htA/w==", "requires": { "@apideck/better-ajv-errors": "^0.3.1", "@babel/core": "^7.11.1", @@ -28086,23 +25747,33 @@ "strip-comments": "^2.0.1", "tempy": "^0.6.0", "upath": "^1.2.0", - "workbox-background-sync": "6.5.2", - "workbox-broadcast-update": "6.5.2", - "workbox-cacheable-response": "6.5.2", - "workbox-core": "6.5.2", - "workbox-expiration": "6.5.2", - "workbox-google-analytics": "6.5.2", - "workbox-navigation-preload": "6.5.2", - "workbox-precaching": "6.5.2", - "workbox-range-requests": "6.5.2", - "workbox-recipes": "6.5.2", - "workbox-routing": "6.5.2", - "workbox-strategies": "6.5.2", - "workbox-streams": "6.5.2", - "workbox-sw": "6.5.2", - "workbox-window": "6.5.2" - }, - "dependencies": { + "workbox-background-sync": "6.5.3", + "workbox-broadcast-update": "6.5.3", + "workbox-cacheable-response": "6.5.3", + "workbox-core": "6.5.3", + "workbox-expiration": "6.5.3", + "workbox-google-analytics": "6.5.3", + "workbox-navigation-preload": "6.5.3", + "workbox-precaching": "6.5.3", + "workbox-range-requests": "6.5.3", + "workbox-recipes": "6.5.3", + "workbox-routing": "6.5.3", + "workbox-strategies": "6.5.3", + "workbox-streams": "6.5.3", + "workbox-sw": "6.5.3", + "workbox-window": "6.5.3" + }, + "dependencies": { + "@apideck/better-ajv-errors": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.4.tgz", + "integrity": "sha512-Ic2d8ZT6HJiSikGVQvSklaFyw1OUv4g8sDOxa0PXSlbmN/3gL5IO1WYY9DOwTDqOFmjWoqG1yaaKnPDqYCE9KA==", + "requires": { + "json-schema": "^0.4.0", + "jsonpointer": "^5.0.0", + "leven": "^3.1.0" + } + }, "ajv": { "version": "8.11.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", @@ -28141,7 +25812,7 @@ "tr46": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", "requires": { "punycode": "^2.1.0" } @@ -28164,124 +25835,119 @@ } }, "workbox-cacheable-response": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.5.2.tgz", - "integrity": "sha512-UnHGih6xqloV808T7ve1iNKZMbpML0jGLqkkmyXkJbZc5j16+HRSV61Qrh+tiq3E3yLvFMGJ3AUBODOPNLWpTg==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.5.3.tgz", + "integrity": "sha512-6JE/Zm05hNasHzzAGKDkqqgYtZZL2H06ic2GxuRLStA4S/rHUfm2mnLFFXuHAaGR1XuuYyVCEey1M6H3PdZ7SQ==", "requires": { - "workbox-core": "6.5.2" + "workbox-core": "6.5.3" } }, "workbox-core": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.5.2.tgz", - "integrity": "sha512-IlxLGQf+wJHCR+NM0UWqDh4xe/Gu6sg2i4tfZk6WIij34IVk9BdOQgi6WvqSHd879jbQIUgL2fBdJUJyAP5ypQ==" + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.5.3.tgz", + "integrity": "sha512-Bb9ey5n/M9x+l3fBTlLpHt9ASTzgSGj6vxni7pY72ilB/Pb3XtN+cZ9yueboVhD5+9cNQrC9n/E1fSrqWsUz7Q==" }, "workbox-expiration": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.5.2.tgz", - "integrity": "sha512-5Hfp0uxTZJrgTiy9W7AjIIec+9uTOtnxY/tRBm4DbqcWKaWbVTa+izrKzzOT4MXRJJIJUmvRhWw4oo8tpmMouw==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.5.3.tgz", + "integrity": "sha512-jzYopYR1zD04ZMdlbn/R2Ik6ixiXbi15c9iX5H8CTi6RPDz7uhvMLZPKEndZTpfgmUk8mdmT9Vx/AhbuCl5Sqw==", "requires": { "idb": "^6.1.4", - "workbox-core": "6.5.2" + "workbox-core": "6.5.3" } }, "workbox-google-analytics": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.5.2.tgz", - "integrity": "sha512-8SMar+N0xIreP5/2we3dwtN1FUmTMScoopL86aKdXBpio8vXc8Oqb5fCJG32ialjN8BAOzDqx/FnGeCtkIlyvw==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.5.3.tgz", + "integrity": "sha512-3GLCHotz5umoRSb4aNQeTbILETcrTVEozSfLhHSBaegHs1PnqCmN0zbIy2TjTpph2AGXiNwDrWGF0AN+UgDNTw==", "requires": { - "workbox-background-sync": "6.5.2", - "workbox-core": "6.5.2", - "workbox-routing": "6.5.2", - "workbox-strategies": "6.5.2" + "workbox-background-sync": "6.5.3", + "workbox-core": "6.5.3", + "workbox-routing": "6.5.3", + "workbox-strategies": "6.5.3" } }, "workbox-navigation-preload": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.5.2.tgz", - "integrity": "sha512-iqDNWWMswjCsZuvGFDpcX1Z8InBVAlVBELJ28xShsWWntALzbtr0PXMnm2WHkXCc56JimmGldZi1N5yDPiTPOg==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.5.3.tgz", + "integrity": "sha512-bK1gDFTc5iu6lH3UQ07QVo+0ovErhRNGvJJO/1ngknT0UQ702nmOUhoN9qE5mhuQSrnK+cqu7O7xeaJ+Rd9Tmg==", "requires": { - "workbox-core": "6.5.2" + "workbox-core": "6.5.3" } }, "workbox-precaching": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.5.2.tgz", - "integrity": "sha512-OZAlQ8AAT20KugGKKuJMHdQ8X1IyNQaLv+mPTHj+8Dmv8peBq5uWNzs4g/1OSFmXsbXZ6a1CBC6YtQWVPhJQ9w==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.5.3.tgz", + "integrity": "sha512-sjNfgNLSsRX5zcc63H/ar/hCf+T19fRtTqvWh795gdpghWb5xsfEkecXEvZ8biEi1QD7X/ljtHphdaPvXDygMQ==", "requires": { - "workbox-core": "6.5.2", - "workbox-routing": "6.5.2", - "workbox-strategies": "6.5.2" + "workbox-core": "6.5.3", + "workbox-routing": "6.5.3", + "workbox-strategies": "6.5.3" } }, "workbox-range-requests": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.5.2.tgz", - "integrity": "sha512-zi5VqF1mWqfCyJLTMXn1EuH/E6nisqWDK1VmOJ+TnjxGttaQrseOhMn+BMvULFHeF8AvrQ0ogfQ6bSv0rcfAlg==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.5.3.tgz", + "integrity": "sha512-pGCP80Bpn/0Q0MQsfETSfmtXsQcu3M2QCJwSFuJ6cDp8s2XmbUXkzbuQhCUzKR86ZH2Vex/VUjb2UaZBGamijA==", "requires": { - "workbox-core": "6.5.2" + "workbox-core": "6.5.3" } }, "workbox-recipes": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.5.2.tgz", - "integrity": "sha512-2lcUKMYDiJKvuvRotOxLjH2z9K7jhj8GNUaHxHNkJYbTCUN3LsX1cWrsgeJFDZ/LgI565t3fntpbG9J415ZBXA==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.5.3.tgz", + "integrity": "sha512-IcgiKYmbGiDvvf3PMSEtmwqxwfQ5zwI7OZPio3GWu4PfehA8jI8JHI3KZj+PCfRiUPZhjQHJ3v1HbNs+SiSkig==", "requires": { - "workbox-cacheable-response": "6.5.2", - "workbox-core": "6.5.2", - "workbox-expiration": "6.5.2", - "workbox-precaching": "6.5.2", - "workbox-routing": "6.5.2", - "workbox-strategies": "6.5.2" + "workbox-cacheable-response": "6.5.3", + "workbox-core": "6.5.3", + "workbox-expiration": "6.5.3", + "workbox-precaching": "6.5.3", + "workbox-routing": "6.5.3", + "workbox-strategies": "6.5.3" } }, "workbox-routing": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.5.2.tgz", - "integrity": "sha512-nR1w5PjF6IVwo0SX3oE88LhmGFmTnqqU7zpGJQQPZiKJfEKgDENQIM9mh3L1ksdFd9Y3CZVkusopHfxQvit/BA==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.5.3.tgz", + "integrity": "sha512-DFjxcuRAJjjt4T34RbMm3MCn+xnd36UT/2RfPRfa8VWJGItGJIn7tG+GwVTdHmvE54i/QmVTJepyAGWtoLPTmg==", "requires": { - "workbox-core": "6.5.2" + "workbox-core": "6.5.3" } }, "workbox-strategies": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.5.2.tgz", - "integrity": "sha512-fgbwaUMxbG39BHjJIs2y2X21C0bmf1Oq3vMQxJ1hr6y5JMJIm8rvKCcf1EIdAr+PjKdSk4ddmgyBQ4oO8be4Uw==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.5.3.tgz", + "integrity": "sha512-MgmGRrDVXs7rtSCcetZgkSZyMpRGw8HqL2aguszOc3nUmzGZsT238z/NN9ZouCxSzDu3PQ3ZSKmovAacaIhu1w==", "requires": { - "workbox-core": "6.5.2" + "workbox-core": "6.5.3" } }, "workbox-streams": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.5.2.tgz", - "integrity": "sha512-ovD0P4UrgPtZ2Lfc/8E8teb1RqNOSZr+1ZPqLR6sGRZnKZviqKbQC3zVvvkhmOIwhWbpL7bQlWveLVONHjxd5w==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.5.3.tgz", + "integrity": "sha512-vN4Qi8o+b7zj1FDVNZ+PlmAcy1sBoV7SC956uhqYvZ9Sg1fViSbOpydULOssVJ4tOyKRifH/eoi6h99d+sJ33w==", "requires": { - "workbox-core": "6.5.2", - "workbox-routing": "6.5.2" + "workbox-core": "6.5.3", + "workbox-routing": "6.5.3" } }, "workbox-sw": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.5.2.tgz", - "integrity": "sha512-2KhlYqtkoqlnPdllj2ujXUKRuEFsRDIp6rdE4l1PsxiFHRAFaRTisRQpGvRem5yxgXEr+fcEKiuZUW2r70KZaw==" + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.5.3.tgz", + "integrity": "sha512-BQBzm092w+NqdIEF2yhl32dERt9j9MDGUTa2Eaa+o3YKL4Qqw55W9yQC6f44FdAHdAJrJvp0t+HVrfh8AiGj8A==" }, "workbox-webpack-plugin": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.5.2.tgz", - "integrity": "sha512-StrJ7wKp5tZuGVcoKLVjFWlhDy+KT7ZWsKnNcD6F08wA9Cpt6JN+PLIrplcsTHbQpoAV8+xg6RvcG0oc9z+RpQ==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.5.3.tgz", + "integrity": "sha512-Es8Xr02Gi6Kc3zaUwR691ZLy61hz3vhhs5GztcklQ7kl5k2qAusPh0s6LF3wEtlpfs9ZDErnmy5SErwoll7jBA==", "requires": { "fast-json-stable-stringify": "^2.1.0", "pretty-bytes": "^5.4.1", "upath": "^1.2.0", "webpack-sources": "^1.4.3", - "workbox-build": "6.5.2" + "workbox-build": "6.5.3" }, "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, "webpack-sources": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", @@ -28294,51 +25960,26 @@ } }, "workbox-window": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.5.2.tgz", - "integrity": "sha512-2kZH37r9Wx8swjEOL4B8uGM53lakMxsKkQ7mOKzGA/QAn/DQTEZGrdHWtypk2tbhKY5S0jvPS+sYDnb2Z3378A==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.5.3.tgz", + "integrity": "sha512-GnJbx1kcKXDtoJBVZs/P7ddP0Yt52NNy4nocjBpYPiRhMqTpJCNrSL+fGHZ/i/oP6p/vhE8II0sA6AZGKGnssw==", "requires": { "@types/trusted-types": "^2.0.2", - "workbox-core": "6.5.2" + "workbox-core": "6.5.3" } }, "wrap-ansi": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - } } }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "write-file-atomic": { "version": "3.0.3", @@ -28352,9 +25993,9 @@ } }, "ws": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", - "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.8.tgz", + "integrity": "sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw==", "requires": {} }, "xml-name-validator": { @@ -28373,9 +26014,7 @@ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" }, "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + "version": "5.0.8" }, "yallist": { "version": "4.0.0", @@ -28389,8 +26028,6 @@ }, "yargs": { "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "requires": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -28402,9 +26039,7 @@ } }, "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" + "version": "20.2.9" }, "yocto-queue": { "version": "0.1.0", diff --git a/js/jiddly-app/package.json b/js/griddlyjs-app/package.json similarity index 85% rename from js/jiddly-app/package.json rename to js/griddlyjs-app/package.json index 7104ea641..36f5d732f 100644 --- a/js/jiddly-app/package.json +++ b/js/griddlyjs-app/package.json @@ -1,14 +1,16 @@ { - "name": "jiddly-app", - "version": "1.3.9", + "name": "griddlyjs-app", + "version": "1.4.0", "private": true, "dependencies": { "@fortawesome/fontawesome-svg-core": "^6.1.1", + "@fortawesome/free-brands-svg-icons": "^6.1.1", "@fortawesome/free-solid-svg-icons": "^6.1.1", "@fortawesome/react-fontawesome": "^0.1.18", "@monaco-editor/react": "^4.4.2", + "@tensorflow/tfjs": "^3.18.0", "@testing-library/jest-dom": "^5.16.3", - "@testing-library/react": "^12.1.4", + "@testing-library/react": "^13.0.1", "@testing-library/user-event": "^13.5.0", "bootstrap": "^5.1.3", "bootswatch": "^5.1.3", diff --git a/js/jiddly-app/public/.gitignore b/js/griddlyjs-app/public/.gitignore similarity index 100% rename from js/jiddly-app/public/.gitignore rename to js/griddlyjs-app/public/.gitignore diff --git a/js/griddlyjs-app/public/config/blank_gdy.yaml b/js/griddlyjs-app/public/config/blank_gdy.yaml new file mode 100644 index 000000000..7d0156049 --- /dev/null +++ b/js/griddlyjs-app/public/config/blank_gdy.yaml @@ -0,0 +1,57 @@ +Version: "0.1" +Environment: + Name: Blank + Description: >- + A template GDY environment where a block can move around and collect green + stuff + Player: + AvatarObject: avatar + Termination: + Win: + - eq: + - goal:count + - 0 + Levels: + - | + . . . . G + . . . . . + . . . . . + . . . . . + A . . . . +Actions: + - Name: move + Behaviours: + - Src: + Object: avatar + Commands: + - mov: _dest + Dst: + Object: _empty + - Src: + Object: avatar + Commands: + - mov: _dest + - reward: 1 + Dst: + Object: goal + Commands: + - remove: true +Objects: + - Name: avatar + MapCharacter: A + Observers: + Block2D: + - Shape: circle + Color: + - 0 + - 0 + - 1 + - Name: goal + MapCharacter: G + Observers: + Block2D: + - Shape: circle + Color: + - 0 + - 1 + - 0 \ No newline at end of file diff --git a/js/griddlyjs-app/public/config/config.json b/js/griddlyjs-app/public/config/config.json new file mode 100644 index 000000000..0febb501c --- /dev/null +++ b/js/griddlyjs-app/public/config/config.json @@ -0,0 +1,30 @@ +{ + "defaultProject": { + "gdy": "resources/games/Single-Player/Grafter/escape-rooms.yaml", + "name": "Grafter Escape Rooms" + }, + "blankTemplate": { + "gdy": "config/blank_gdy.yaml" + }, + "templates": { + "Grafter Escape Rooms": { + "gdy": "resources/games/Single-Player/Grafter/escape-rooms.yaml" + }, + "Sokoban": { + "gdy": "resources/games/Single-Player/GVGAI/sokoban.yaml" + }, + "Labyrinth": { + "gdy": "resources/games/Single-Player/GVGAI/labyrinth.yaml" + }, + "Doggo": { + "gdy": "resources/games/Single-Player/Mini-Grid/minigrid-doggo.yaml" + }, + "Zen Puzzle": { + "gdy": "resources/games/Single-Player/GVGAI/zenpuzzle.yaml" + }, + "Spiders": { + "gdy": "resources/games/Single-Player/Mini-Grid/minigrid-spiders.yaml" + } + + } +} \ No newline at end of file diff --git a/js/griddlyjs-app/public/favicon.ico b/js/griddlyjs-app/public/favicon.ico new file mode 100644 index 000000000..6db23a410 Binary files /dev/null and b/js/griddlyjs-app/public/favicon.ico differ diff --git a/js/griddlyjs-app/public/griddlybear192x192.png b/js/griddlyjs-app/public/griddlybear192x192.png new file mode 100644 index 000000000..91ed820f0 Binary files /dev/null and b/js/griddlyjs-app/public/griddlybear192x192.png differ diff --git a/js/griddlyjs-app/public/griddlybear512x512.png b/js/griddlyjs-app/public/griddlybear512x512.png new file mode 100644 index 000000000..600f9875c Binary files /dev/null and b/js/griddlyjs-app/public/griddlybear512x512.png differ diff --git a/js/jiddly-app/public/index.html b/js/griddlyjs-app/public/index.html similarity index 51% rename from js/jiddly-app/public/index.html rename to js/griddlyjs-app/public/index.html index aa069f27c..ecc17318e 100644 --- a/js/jiddly-app/public/index.html +++ b/js/griddlyjs-app/public/index.html @@ -1,15 +1,30 @@ + + + + + + + + + + + + + + - + + - React App + + + + GriddlyJS diff --git a/js/griddlyjs-app/public/intro/debuggingmechanics.gif b/js/griddlyjs-app/public/intro/debuggingmechanics.gif new file mode 100644 index 000000000..357b0641f Binary files /dev/null and b/js/griddlyjs-app/public/intro/debuggingmechanics.gif differ diff --git a/js/griddlyjs-app/public/intro/debugpolicies.gif b/js/griddlyjs-app/public/intro/debugpolicies.gif new file mode 100644 index 000000000..591d13f1c Binary files /dev/null and b/js/griddlyjs-app/public/intro/debugpolicies.gif differ diff --git a/js/griddlyjs-app/public/intro/intro.gif b/js/griddlyjs-app/public/intro/intro.gif new file mode 100644 index 000000000..68f589c9f Binary files /dev/null and b/js/griddlyjs-app/public/intro/intro.gif differ diff --git a/js/griddlyjs-app/public/intro/leveleditor.gif b/js/griddlyjs-app/public/intro/leveleditor.gif new file mode 100644 index 000000000..06bd0ec8f Binary files /dev/null and b/js/griddlyjs-app/public/intro/leveleditor.gif differ diff --git a/js/griddlyjs-app/public/intro/newproject.gif b/js/griddlyjs-app/public/intro/newproject.gif new file mode 100644 index 000000000..7b2be3720 Binary files /dev/null and b/js/griddlyjs-app/public/intro/newproject.gif differ diff --git a/js/griddlyjs-app/public/intro/recordingtrajectories.gif b/js/griddlyjs-app/public/intro/recordingtrajectories.gif new file mode 100644 index 000000000..c0a083fdc Binary files /dev/null and b/js/griddlyjs-app/public/intro/recordingtrajectories.gif differ diff --git a/js/griddlyjs-app/public/js/griddlyjs.wasm b/js/griddlyjs-app/public/js/griddlyjs.wasm new file mode 100755 index 000000000..054f3c905 Binary files /dev/null and b/js/griddlyjs-app/public/js/griddlyjs.wasm differ diff --git a/js/griddlyjs-app/public/logo.png b/js/griddlyjs-app/public/logo.png new file mode 100644 index 000000000..3a6008166 Binary files /dev/null and b/js/griddlyjs-app/public/logo.png differ diff --git a/js/griddlyjs-app/public/logo1200x630.png b/js/griddlyjs-app/public/logo1200x630.png new file mode 100644 index 000000000..e80720e3e Binary files /dev/null and b/js/griddlyjs-app/public/logo1200x630.png differ diff --git a/js/griddlyjs-app/public/logo800x418.png b/js/griddlyjs-app/public/logo800x418.png new file mode 100644 index 000000000..ad985d718 Binary files /dev/null and b/js/griddlyjs-app/public/logo800x418.png differ diff --git a/js/jiddly-app/public/manifest.json b/js/griddlyjs-app/public/manifest.json similarity index 68% rename from js/jiddly-app/public/manifest.json rename to js/griddlyjs-app/public/manifest.json index 080d6c77a..febb9434e 100644 --- a/js/jiddly-app/public/manifest.json +++ b/js/griddlyjs-app/public/manifest.json @@ -1,6 +1,6 @@ { - "short_name": "React App", - "name": "Create React App Sample", + "short_name": "GriddlyJS", + "name": "Griddly JS - A Web-IDE for Reinforcement Learning", "icons": [ { "src": "favicon.ico", @@ -8,12 +8,12 @@ "type": "image/x-icon" }, { - "src": "logo192.png", + "src": "griddlybear192x192.png", "type": "image/png", "sizes": "192x192" }, { - "src": "logo512.png", + "src": "griddlybear512x512.png", "type": "image/png", "sizes": "512x512" } diff --git a/js/griddlyjs-app/public/model/Grafter Escape Rooms/group1-shard1of1.bin b/js/griddlyjs-app/public/model/Grafter Escape Rooms/group1-shard1of1.bin new file mode 100644 index 000000000..f5aa23ba0 Binary files /dev/null and b/js/griddlyjs-app/public/model/Grafter Escape Rooms/group1-shard1of1.bin differ diff --git a/js/griddlyjs-app/public/model/Grafter Escape Rooms/model.json b/js/griddlyjs-app/public/model/Grafter Escape Rooms/model.json new file mode 100644 index 000000000..5d9eb581d --- /dev/null +++ b/js/griddlyjs-app/public/model/Grafter Escape Rooms/model.json @@ -0,0 +1 @@ +{"format": "graph-model", "generatedBy": "2.9.1", "convertedBy": "TensorFlow.js Converter v3.18.0", "signature": {"inputs": {"input_0": {"name": "input_0:0", "dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "51"}, {"size": "9"}, {"size": "7"}]}}}, "outputs": {"output_0": {"name": "Identity:0", "dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "12"}]}}}}, "modelTopology": {"node": [{"name": "PartitionedCall/Const_13", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}}}, {"name": "PartitionedCall/transpose_46/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/split_13", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "32"}, {"size": "32"}]}}}}}, {"name": "unknown_26", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "32"}]}}}}}, {"name": "PartitionedCall/transpose_47/perm", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/Const_14", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}}}, {"name": "PartitionedCall/transpose_49/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/split_14", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "32"}, {"size": "32"}]}}}}}, {"name": "unknown_28", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "32"}]}}}}}, {"name": "PartitionedCall/transpose_50/perm", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/Const_11", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/transpose_40/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/split_11", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "32"}, {"size": "32"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_22", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "32"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_41/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/Const_12", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/transpose_43/perm", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/split_12", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "32"}, {"size": "32"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_24", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "32"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_44/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/Const_8", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}}}, {"name": "PartitionedCall/transpose_29/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/split_8", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "32"}, {"size": "32"}]}}}}}, {"name": "unknown_16", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "32"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_30/perm", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/Const_9", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}}}, {"name": "PartitionedCall/transpose_32/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/split_9", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "32"}, {"size": "32"}]}}}}}, {"name": "unknown_18", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "32"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_33/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/Const_6", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/transpose_23/perm", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/split_6", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "32"}, {"size": "32"}]}}}}}, {"name": "unknown_12", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "32"}]}}}}}, {"name": "PartitionedCall/transpose_24/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/Const_7", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/transpose_26/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/split_7", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "32"}, {"size": "32"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_14", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "32"}]}}}}}, {"name": "PartitionedCall/transpose_27/perm", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/Const_3", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}}}, {"name": "PartitionedCall/transpose_12/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/split_3", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "16"}, {"size": "16"}]}}}}}, {"name": "unknown_6", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "16"}]}}}}}, {"name": "PartitionedCall/transpose_13/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/Const_4", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/transpose_15/perm", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/split_4", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "16"}, {"size": "16"}]}}}}}, {"name": "unknown_8", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "16"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_16/perm", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/Const_1", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}}}, {"name": "PartitionedCall/transpose_6/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/split_1", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "16"}, {"size": "16"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_2", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "16"}]}}}}}, {"name": "PartitionedCall/transpose_7/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/Const_2", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}}}, {"name": "PartitionedCall/transpose_9/perm", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/split_2", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "16"}, {"size": "16"}]}}}}}, {"name": "unknown_4", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "16"}]}}}}}, {"name": "PartitionedCall/transpose_10/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/onnx_tf_prefix_Transpose_0/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "ConstantFolding/PartitionedCall/onnx_tf_prefix_Div_2_recip", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Const", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}}}, {"name": "PartitionedCall/transpose_1/perm", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/split", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "51"}, {"size": "16"}]}}}}}, {"name": "unknown_0", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "16"}]}}}}}, {"name": "PartitionedCall/transpose_2/perm", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/PadV2/paddings", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/PadV2/constant_values", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_3/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/transpose_4/perm", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/Const_5", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/transpose_18/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/split_5", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "16"}, {"size": "32"}]}}}}}, {"name": "unknown_10", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "32"}]}}}}}, {"name": "PartitionedCall/transpose_19/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/PadV2_1/paddings", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}}}, {"name": "PartitionedCall/PadV2_1/constant_values", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_20/perm", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/transpose_21/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/Const_10", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/transpose_35/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/split_10", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "32"}, {"size": "32"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_20", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "32"}]}}}}}, {"name": "PartitionedCall/transpose_36/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/PadV2_2/paddings", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/PadV2_2/constant_values", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_37/perm", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/transpose_38/perm", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/Reshape/shape", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "2"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/transpose_51", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "64"}, {"size": "256"}]}}}}}, {"name": "PartitionedCall/mul_1", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "256"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_52", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "256"}, {"size": "12"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/mul_3", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "12"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "input_0", "op": "Placeholder", "attr": {"shape": {"shape": {"dim": [{"size": "1"}, {"size": "51"}, {"size": "9"}, {"size": "7"}]}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Transpose_0", "op": "Transpose", "input": ["input_0", "PartitionedCall/onnx_tf_prefix_Transpose_0/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Div_2", "op": "Mul", "input": ["PartitionedCall/onnx_tf_prefix_Transpose_0", "ConstantFolding/PartitionedCall/onnx_tf_prefix_Div_2_recip"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Pad", "op": "Pad", "input": ["PartitionedCall/onnx_tf_prefix_Div_2", "PartitionedCall/Const"], "attr": {"T": {"type": "DT_FLOAT"}, "Tpaddings": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/transpose_1", "op": "Transpose", "input": ["PartitionedCall/Pad", "PartitionedCall/transpose_1/perm"], "attr": {"Tperm": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/convolution", "op": "Conv2D", "input": ["PartitionedCall/transpose_1", "PartitionedCall/split"], "device": "/device:CPU:0", "attr": {"use_cudnn_on_gpu": {"b": true}, "data_format": {"s": "TkhXQw=="}, "explicit_paddings": {"list": {}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "padding": {"s": "VkFMSUQ="}}}, {"name": "PartitionedCall/Add", "op": "AddV2", "input": ["PartitionedCall/convolution", "unknown_0"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_2", "op": "Transpose", "input": ["PartitionedCall/Add", "PartitionedCall/transpose_2/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/PadV2", "op": "PadV2", "input": ["PartitionedCall/transpose_2", "PartitionedCall/PadV2/paddings", "PartitionedCall/PadV2/constant_values"], "attr": {"T": {"type": "DT_FLOAT"}, "Tpaddings": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/transpose_3", "op": "Transpose", "input": ["PartitionedCall/PadV2", "PartitionedCall/transpose_3/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/MaxPool2d", "op": "MaxPool", "input": ["PartitionedCall/transpose_3"], "attr": {"strides": {"list": {"i": ["1", "2", "2", "1"]}}, "padding": {"s": "VkFMSUQ="}, "explicit_paddings": {"list": {}}, "T": {"type": "DT_FLOAT"}, "ksize": {"list": {"i": ["1", "3", "3", "1"]}}, "data_format": {"s": "TkhXQw=="}}}, {"name": "PartitionedCall/transpose_4", "op": "Transpose", "input": ["PartitionedCall/MaxPool2d", "PartitionedCall/transpose_4/perm"], "attr": {"Tperm": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Relu_5", "op": "Relu", "input": ["PartitionedCall/transpose_4"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Pad_1", "op": "Pad", "input": ["PartitionedCall/onnx_tf_prefix_Relu_5", "PartitionedCall/Const_1"], "attr": {"Tpaddings": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_6", "op": "Transpose", "input": ["PartitionedCall/Pad_1", "PartitionedCall/transpose_6/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/convolution_1", "op": "Conv2D", "input": ["PartitionedCall/transpose_6", "PartitionedCall/split_1"], "device": "/device:CPU:0", "attr": {"strides": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "use_cudnn_on_gpu": {"b": true}, "data_format": {"s": "TkhXQw=="}, "padding": {"s": "VkFMSUQ="}, "explicit_paddings": {"list": {}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}}}, {"name": "PartitionedCall/Add_1", "op": "AddV2", "input": ["PartitionedCall/convolution_1", "unknown_2"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_7", "op": "Transpose", "input": ["PartitionedCall/Add_1", "PartitionedCall/transpose_7/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Relu_7", "op": "Relu", "input": ["PartitionedCall/transpose_7"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Pad_2", "op": "Pad", "input": ["PartitionedCall/onnx_tf_prefix_Relu_7", "PartitionedCall/Const_2"], "attr": {"T": {"type": "DT_FLOAT"}, "Tpaddings": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/transpose_9", "op": "Transpose", "input": ["PartitionedCall/Pad_2", "PartitionedCall/transpose_9/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/convolution_2", "op": "Conv2D", "input": ["PartitionedCall/transpose_9", "PartitionedCall/split_2"], "device": "/device:CPU:0", "attr": {"strides": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "padding": {"s": "VkFMSUQ="}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "use_cudnn_on_gpu": {"b": true}, "explicit_paddings": {"list": {}}, "data_format": {"s": "TkhXQw=="}}}, {"name": "PartitionedCall/Add_2", "op": "AddV2", "input": ["PartitionedCall/convolution_2", "unknown_4"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_10", "op": "Transpose", "input": ["PartitionedCall/Add_2", "PartitionedCall/transpose_10/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Add_9", "op": "AddV2", "input": ["PartitionedCall/transpose_10", "PartitionedCall/transpose_4"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Relu_10", "op": "Relu", "input": ["PartitionedCall/onnx_tf_prefix_Add_9"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Pad_3", "op": "Pad", "input": ["PartitionedCall/onnx_tf_prefix_Relu_10", "PartitionedCall/Const_3"], "attr": {"Tpaddings": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_12", "op": "Transpose", "input": ["PartitionedCall/Pad_3", "PartitionedCall/transpose_12/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/convolution_3", "op": "Conv2D", "input": ["PartitionedCall/transpose_12", "PartitionedCall/split_3"], "device": "/device:CPU:0", "attr": {"explicit_paddings": {"list": {}}, "padding": {"s": "VkFMSUQ="}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "use_cudnn_on_gpu": {"b": true}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}}}, {"name": "PartitionedCall/Add_3", "op": "AddV2", "input": ["PartitionedCall/convolution_3", "unknown_6"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_13", "op": "Transpose", "input": ["PartitionedCall/Add_3", "PartitionedCall/transpose_13/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Relu_12", "op": "Relu", "input": ["PartitionedCall/transpose_13"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Pad_4", "op": "Pad", "input": ["PartitionedCall/onnx_tf_prefix_Relu_12", "PartitionedCall/Const_4"], "attr": {"Tpaddings": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_15", "op": "Transpose", "input": ["PartitionedCall/Pad_4", "PartitionedCall/transpose_15/perm"], "attr": {"Tperm": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/convolution_4", "op": "Conv2D", "input": ["PartitionedCall/transpose_15", "PartitionedCall/split_4"], "device": "/device:CPU:0", "attr": {"data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "T": {"type": "DT_FLOAT"}, "padding": {"s": "VkFMSUQ="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "explicit_paddings": {"list": {}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}}}, {"name": "PartitionedCall/Add_4", "op": "AddV2", "input": ["PartitionedCall/convolution_4", "unknown_8"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_16", "op": "Transpose", "input": ["PartitionedCall/Add_4", "PartitionedCall/transpose_16/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Add_14", "op": "AddV2", "input": ["PartitionedCall/transpose_16", "PartitionedCall/onnx_tf_prefix_Add_9"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Pad_5", "op": "Pad", "input": ["PartitionedCall/onnx_tf_prefix_Add_14", "PartitionedCall/Const_5"], "attr": {"Tpaddings": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_18", "op": "Transpose", "input": ["PartitionedCall/Pad_5", "PartitionedCall/transpose_18/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/convolution_5", "op": "Conv2D", "input": ["PartitionedCall/transpose_18", "PartitionedCall/split_5"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "padding": {"s": "VkFMSUQ="}, "explicit_paddings": {"list": {}}, "data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}}}, {"name": "PartitionedCall/Add_5", "op": "AddV2", "input": ["PartitionedCall/convolution_5", "unknown_10"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_19", "op": "Transpose", "input": ["PartitionedCall/Add_5", "PartitionedCall/transpose_19/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/PadV2_1", "op": "PadV2", "input": ["PartitionedCall/transpose_19", "PartitionedCall/PadV2_1/paddings", "PartitionedCall/PadV2_1/constant_values"], "attr": {"Tpaddings": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_20", "op": "Transpose", "input": ["PartitionedCall/PadV2_1", "PartitionedCall/transpose_20/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/MaxPool2d_1", "op": "MaxPool", "input": ["PartitionedCall/transpose_20"], "attr": {"ksize": {"list": {"i": ["1", "3", "3", "1"]}}, "data_format": {"s": "TkhXQw=="}, "explicit_paddings": {"list": {}}, "strides": {"list": {"i": ["1", "2", "2", "1"]}}, "padding": {"s": "VkFMSUQ="}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_21", "op": "Transpose", "input": ["PartitionedCall/MaxPool2d_1", "PartitionedCall/transpose_21/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Relu_17", "op": "Relu", "input": ["PartitionedCall/transpose_21"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Pad_6", "op": "Pad", "input": ["PartitionedCall/onnx_tf_prefix_Relu_17", "PartitionedCall/Const_6"], "attr": {"T": {"type": "DT_FLOAT"}, "Tpaddings": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/transpose_23", "op": "Transpose", "input": ["PartitionedCall/Pad_6", "PartitionedCall/transpose_23/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/convolution_6", "op": "Conv2D", "input": ["PartitionedCall/transpose_23", "PartitionedCall/split_6"], "device": "/device:CPU:0", "attr": {"strides": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "padding": {"s": "VkFMSUQ="}, "data_format": {"s": "TkhXQw=="}, "explicit_paddings": {"list": {}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "use_cudnn_on_gpu": {"b": true}}}, {"name": "PartitionedCall/Add_6", "op": "AddV2", "input": ["PartitionedCall/convolution_6", "unknown_12"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_24", "op": "Transpose", "input": ["PartitionedCall/Add_6", "PartitionedCall/transpose_24/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Relu_19", "op": "Relu", "input": ["PartitionedCall/transpose_24"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Pad_7", "op": "Pad", "input": ["PartitionedCall/onnx_tf_prefix_Relu_19", "PartitionedCall/Const_7"], "attr": {"Tpaddings": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_26", "op": "Transpose", "input": ["PartitionedCall/Pad_7", "PartitionedCall/transpose_26/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/convolution_7", "op": "Conv2D", "input": ["PartitionedCall/transpose_26", "PartitionedCall/split_7"], "device": "/device:CPU:0", "attr": {"padding": {"s": "VkFMSUQ="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "explicit_paddings": {"list": {}}}}, {"name": "PartitionedCall/Add_7", "op": "AddV2", "input": ["PartitionedCall/convolution_7", "unknown_14"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_27", "op": "Transpose", "input": ["PartitionedCall/Add_7", "PartitionedCall/transpose_27/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Add_21", "op": "AddV2", "input": ["PartitionedCall/transpose_27", "PartitionedCall/transpose_21"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Relu_22", "op": "Relu", "input": ["PartitionedCall/onnx_tf_prefix_Add_21"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Pad_8", "op": "Pad", "input": ["PartitionedCall/onnx_tf_prefix_Relu_22", "PartitionedCall/Const_8"], "attr": {"T": {"type": "DT_FLOAT"}, "Tpaddings": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/transpose_29", "op": "Transpose", "input": ["PartitionedCall/Pad_8", "PartitionedCall/transpose_29/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/convolution_8", "op": "Conv2D", "input": ["PartitionedCall/transpose_29", "PartitionedCall/split_8"], "device": "/device:CPU:0", "attr": {"T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "use_cudnn_on_gpu": {"b": true}, "padding": {"s": "VkFMSUQ="}, "data_format": {"s": "TkhXQw=="}, "explicit_paddings": {"list": {}}}}, {"name": "PartitionedCall/Add_8", "op": "AddV2", "input": ["PartitionedCall/convolution_8", "unknown_16"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_30", "op": "Transpose", "input": ["PartitionedCall/Add_8", "PartitionedCall/transpose_30/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Relu_24", "op": "Relu", "input": ["PartitionedCall/transpose_30"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Pad_9", "op": "Pad", "input": ["PartitionedCall/onnx_tf_prefix_Relu_24", "PartitionedCall/Const_9"], "attr": {"T": {"type": "DT_FLOAT"}, "Tpaddings": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/transpose_32", "op": "Transpose", "input": ["PartitionedCall/Pad_9", "PartitionedCall/transpose_32/perm"], "attr": {"Tperm": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/convolution_9", "op": "Conv2D", "input": ["PartitionedCall/transpose_32", "PartitionedCall/split_9"], "device": "/device:CPU:0", "attr": {"padding": {"s": "VkFMSUQ="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Add_9", "op": "AddV2", "input": ["PartitionedCall/convolution_9", "unknown_18"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_33", "op": "Transpose", "input": ["PartitionedCall/Add_9", "PartitionedCall/transpose_33/perm"], "attr": {"Tperm": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Add_26", "op": "AddV2", "input": ["PartitionedCall/transpose_33", "PartitionedCall/onnx_tf_prefix_Add_21"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Pad_10", "op": "Pad", "input": ["PartitionedCall/onnx_tf_prefix_Add_26", "PartitionedCall/Const_10"], "attr": {"Tpaddings": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_35", "op": "Transpose", "input": ["PartitionedCall/Pad_10", "PartitionedCall/transpose_35/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/convolution_10", "op": "Conv2D", "input": ["PartitionedCall/transpose_35", "PartitionedCall/split_10"], "device": "/device:CPU:0", "attr": {"padding": {"s": "VkFMSUQ="}, "explicit_paddings": {"list": {}}, "data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Add_10", "op": "AddV2", "input": ["PartitionedCall/convolution_10", "unknown_20"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_36", "op": "Transpose", "input": ["PartitionedCall/Add_10", "PartitionedCall/transpose_36/perm"], "attr": {"Tperm": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/PadV2_2", "op": "PadV2", "input": ["PartitionedCall/transpose_36", "PartitionedCall/PadV2_2/paddings", "PartitionedCall/PadV2_2/constant_values"], "attr": {"Tpaddings": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_37", "op": "Transpose", "input": ["PartitionedCall/PadV2_2", "PartitionedCall/transpose_37/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/MaxPool2d_2", "op": "MaxPool", "input": ["PartitionedCall/transpose_37"], "attr": {"explicit_paddings": {"list": {}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "2", "2", "1"]}}, "padding": {"s": "VkFMSUQ="}, "ksize": {"list": {"i": ["1", "3", "3", "1"]}}}}, {"name": "PartitionedCall/transpose_38", "op": "Transpose", "input": ["PartitionedCall/MaxPool2d_2", "PartitionedCall/transpose_38/perm"], "attr": {"Tperm": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Relu_29", "op": "Relu", "input": ["PartitionedCall/transpose_38"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Pad_11", "op": "Pad", "input": ["PartitionedCall/onnx_tf_prefix_Relu_29", "PartitionedCall/Const_11"], "attr": {"Tpaddings": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_40", "op": "Transpose", "input": ["PartitionedCall/Pad_11", "PartitionedCall/transpose_40/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/convolution_11", "op": "Conv2D", "input": ["PartitionedCall/transpose_40", "PartitionedCall/split_11"], "device": "/device:CPU:0", "attr": {"data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "use_cudnn_on_gpu": {"b": true}, "T": {"type": "DT_FLOAT"}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "padding": {"s": "VkFMSUQ="}, "explicit_paddings": {"list": {}}}}, {"name": "PartitionedCall/Add_11", "op": "AddV2", "input": ["PartitionedCall/convolution_11", "unknown_22"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_41", "op": "Transpose", "input": ["PartitionedCall/Add_11", "PartitionedCall/transpose_41/perm"], "attr": {"Tperm": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Relu_31", "op": "Relu", "input": ["PartitionedCall/transpose_41"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Pad_12", "op": "Pad", "input": ["PartitionedCall/onnx_tf_prefix_Relu_31", "PartitionedCall/Const_12"], "attr": {"T": {"type": "DT_FLOAT"}, "Tpaddings": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/transpose_43", "op": "Transpose", "input": ["PartitionedCall/Pad_12", "PartitionedCall/transpose_43/perm"], "attr": {"Tperm": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/convolution_12", "op": "Conv2D", "input": ["PartitionedCall/transpose_43", "PartitionedCall/split_12"], "device": "/device:CPU:0", "attr": {"padding": {"s": "VkFMSUQ="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "explicit_paddings": {"list": {}}, "data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}}}, {"name": "PartitionedCall/Add_12", "op": "AddV2", "input": ["PartitionedCall/convolution_12", "unknown_24"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_44", "op": "Transpose", "input": ["PartitionedCall/Add_12", "PartitionedCall/transpose_44/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Add_33", "op": "AddV2", "input": ["PartitionedCall/transpose_44", "PartitionedCall/transpose_38"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Relu_34", "op": "Relu", "input": ["PartitionedCall/onnx_tf_prefix_Add_33"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Pad_13", "op": "Pad", "input": ["PartitionedCall/onnx_tf_prefix_Relu_34", "PartitionedCall/Const_13"], "attr": {"Tpaddings": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_46", "op": "Transpose", "input": ["PartitionedCall/Pad_13", "PartitionedCall/transpose_46/perm"], "attr": {"Tperm": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/convolution_13", "op": "Conv2D", "input": ["PartitionedCall/transpose_46", "PartitionedCall/split_13"], "device": "/device:CPU:0", "attr": {"use_cudnn_on_gpu": {"b": true}, "padding": {"s": "VkFMSUQ="}, "data_format": {"s": "TkhXQw=="}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "explicit_paddings": {"list": {}}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}}}, {"name": "PartitionedCall/Add_13", "op": "AddV2", "input": ["PartitionedCall/convolution_13", "unknown_26"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_47", "op": "Transpose", "input": ["PartitionedCall/Add_13", "PartitionedCall/transpose_47/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Relu_36", "op": "Relu", "input": ["PartitionedCall/transpose_47"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Pad_14", "op": "Pad", "input": ["PartitionedCall/onnx_tf_prefix_Relu_36", "PartitionedCall/Const_14"], "attr": {"T": {"type": "DT_FLOAT"}, "Tpaddings": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/transpose_49", "op": "Transpose", "input": ["PartitionedCall/Pad_14", "PartitionedCall/transpose_49/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/convolution_14", "op": "Conv2D", "input": ["PartitionedCall/transpose_49", "PartitionedCall/split_14"], "device": "/device:CPU:0", "attr": {"explicit_paddings": {"list": {}}, "padding": {"s": "VkFMSUQ="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Add_14", "op": "AddV2", "input": ["PartitionedCall/convolution_14", "unknown_28"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_50", "op": "Transpose", "input": ["PartitionedCall/Add_14", "PartitionedCall/transpose_50/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Add_38", "op": "AddV2", "input": ["PartitionedCall/transpose_50", "PartitionedCall/onnx_tf_prefix_Add_33"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Reshape", "op": "Reshape", "input": ["PartitionedCall/onnx_tf_prefix_Add_38", "PartitionedCall/Reshape/shape"], "attr": {"T": {"type": "DT_FLOAT"}, "Tshape": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Relu_40", "op": "Relu", "input": ["PartitionedCall/Reshape"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/MatMul", "op": "MatMul", "input": ["PartitionedCall/onnx_tf_prefix_Relu_40", "PartitionedCall/transpose_51"], "device": "/device:CPU:0", "attr": {"T": {"type": "DT_FLOAT"}, "transpose_b": {"b": false}, "transpose_a": {"b": false}}}, {"name": "PartitionedCall/add_15", "op": "AddV2", "input": ["PartitionedCall/MatMul", "PartitionedCall/mul_1"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Relu_42", "op": "Relu", "input": ["PartitionedCall/add_15"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/MatMul_1", "op": "MatMul", "input": ["PartitionedCall/onnx_tf_prefix_Relu_42", "PartitionedCall/transpose_52"], "device": "/device:CPU:0", "attr": {"transpose_b": {"b": false}, "T": {"type": "DT_FLOAT"}, "transpose_a": {"b": false}}}, {"name": "PartitionedCall/add_16", "op": "AddV2", "input": ["PartitionedCall/MatMul_1", "PartitionedCall/mul_3"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Identity", "op": "Identity", "input": ["PartitionedCall/add_16"], "attr": {"T": {"type": "DT_FLOAT"}}}], "library": {}, "versions": {"producer": 1087}}, "weightsManifest": [{"paths": ["group1-shard1of1.bin"], "weights": [{"name": "PartitionedCall/Const_13", "shape": [4, 2], "dtype": "int32"}, {"name": "PartitionedCall/transpose_46/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/split_13", "shape": [3, 3, 32, 32], "dtype": "float32"}, {"name": "unknown_26", "shape": [32], "dtype": "float32"}, {"name": "PartitionedCall/transpose_47/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/Const_14", "shape": [4, 2], "dtype": "int32"}, {"name": "PartitionedCall/transpose_49/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/split_14", "shape": [3, 3, 32, 32], "dtype": "float32"}, {"name": "unknown_28", "shape": [32], "dtype": "float32"}, {"name": "PartitionedCall/transpose_50/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/Const_11", "shape": [4, 2], "dtype": "int32"}, {"name": "PartitionedCall/transpose_40/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/split_11", "shape": [3, 3, 32, 32], "dtype": "float32"}, {"name": "unknown_22", "shape": [32], "dtype": "float32"}, {"name": "PartitionedCall/transpose_41/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/Const_12", "shape": [4, 2], "dtype": "int32"}, {"name": "PartitionedCall/transpose_43/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/split_12", "shape": [3, 3, 32, 32], "dtype": "float32"}, {"name": "unknown_24", "shape": [32], "dtype": "float32"}, {"name": "PartitionedCall/transpose_44/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/Const_8", "shape": [4, 2], "dtype": "int32"}, {"name": "PartitionedCall/transpose_29/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/split_8", "shape": [3, 3, 32, 32], "dtype": "float32"}, {"name": "unknown_16", "shape": [32], "dtype": "float32"}, {"name": "PartitionedCall/transpose_30/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/Const_9", "shape": [4, 2], "dtype": "int32"}, {"name": "PartitionedCall/transpose_32/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/split_9", "shape": [3, 3, 32, 32], "dtype": "float32"}, {"name": "unknown_18", "shape": [32], "dtype": "float32"}, {"name": "PartitionedCall/transpose_33/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/Const_6", "shape": [4, 2], "dtype": "int32"}, {"name": "PartitionedCall/transpose_23/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/split_6", "shape": [3, 3, 32, 32], "dtype": "float32"}, {"name": "unknown_12", "shape": [32], "dtype": "float32"}, {"name": "PartitionedCall/transpose_24/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/Const_7", "shape": [4, 2], "dtype": "int32"}, {"name": "PartitionedCall/transpose_26/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/split_7", "shape": [3, 3, 32, 32], "dtype": "float32"}, {"name": "unknown_14", "shape": [32], "dtype": "float32"}, {"name": "PartitionedCall/transpose_27/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/Const_3", "shape": [4, 2], "dtype": "int32"}, {"name": "PartitionedCall/transpose_12/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/split_3", "shape": [3, 3, 16, 16], "dtype": "float32"}, {"name": "unknown_6", "shape": [16], "dtype": "float32"}, {"name": "PartitionedCall/transpose_13/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/Const_4", "shape": [4, 2], "dtype": "int32"}, {"name": "PartitionedCall/transpose_15/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/split_4", "shape": [3, 3, 16, 16], "dtype": "float32"}, {"name": "unknown_8", "shape": [16], "dtype": "float32"}, {"name": "PartitionedCall/transpose_16/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/Const_1", "shape": [4, 2], "dtype": "int32"}, {"name": "PartitionedCall/transpose_6/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/split_1", "shape": [3, 3, 16, 16], "dtype": "float32"}, {"name": "unknown_2", "shape": [16], "dtype": "float32"}, {"name": "PartitionedCall/transpose_7/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/Const_2", "shape": [4, 2], "dtype": "int32"}, {"name": "PartitionedCall/transpose_9/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/split_2", "shape": [3, 3, 16, 16], "dtype": "float32"}, {"name": "unknown_4", "shape": [16], "dtype": "float32"}, {"name": "PartitionedCall/transpose_10/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/onnx_tf_prefix_Transpose_0/perm", "shape": [4], "dtype": "int32"}, {"name": "ConstantFolding/PartitionedCall/onnx_tf_prefix_Div_2_recip", "shape": [], "dtype": "float32"}, {"name": "PartitionedCall/Const", "shape": [4, 2], "dtype": "int32"}, {"name": "PartitionedCall/transpose_1/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/split", "shape": [3, 3, 51, 16], "dtype": "float32"}, {"name": "unknown_0", "shape": [16], "dtype": "float32"}, {"name": "PartitionedCall/transpose_2/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/PadV2/paddings", "shape": [4, 2], "dtype": "int32"}, {"name": "PartitionedCall/PadV2/constant_values", "shape": [], "dtype": "float32"}, {"name": "PartitionedCall/transpose_3/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/transpose_4/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/Const_5", "shape": [4, 2], "dtype": "int32"}, {"name": "PartitionedCall/transpose_18/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/split_5", "shape": [3, 3, 16, 32], "dtype": "float32"}, {"name": "unknown_10", "shape": [32], "dtype": "float32"}, {"name": "PartitionedCall/transpose_19/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/PadV2_1/paddings", "shape": [4, 2], "dtype": "int32"}, {"name": "PartitionedCall/PadV2_1/constant_values", "shape": [], "dtype": "float32"}, {"name": "PartitionedCall/transpose_20/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/transpose_21/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/Const_10", "shape": [4, 2], "dtype": "int32"}, {"name": "PartitionedCall/transpose_35/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/split_10", "shape": [3, 3, 32, 32], "dtype": "float32"}, {"name": "unknown_20", "shape": [32], "dtype": "float32"}, {"name": "PartitionedCall/transpose_36/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/PadV2_2/paddings", "shape": [4, 2], "dtype": "int32"}, {"name": "PartitionedCall/PadV2_2/constant_values", "shape": [], "dtype": "float32"}, {"name": "PartitionedCall/transpose_37/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/transpose_38/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/Reshape/shape", "shape": [2], "dtype": "int32"}, {"name": "PartitionedCall/transpose_51", "shape": [64, 256], "dtype": "float32"}, {"name": "PartitionedCall/mul_1", "shape": [256], "dtype": "float32"}, {"name": "PartitionedCall/transpose_52", "shape": [256, 12], "dtype": "float32"}, {"name": "PartitionedCall/mul_3", "shape": [12], "dtype": "float32"}]}]} \ No newline at end of file diff --git a/js/jiddly-app/public/robots.txt b/js/griddlyjs-app/public/robots.txt similarity index 100% rename from js/jiddly-app/public/robots.txt rename to js/griddlyjs-app/public/robots.txt diff --git a/js/griddlyjs-app/public/trajectories/Grafter Escape Rooms.yaml b/js/griddlyjs-app/public/trajectories/Grafter Escape Rooms.yaml new file mode 100644 index 000000000..506852390 --- /dev/null +++ b/js/griddlyjs-app/public/trajectories/Grafter Escape Rooms.yaml @@ -0,0 +1,26305 @@ +'0': + steps: + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'1': + steps: + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + seed: 100 +'2': + steps: + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 1 + - 1 + seed: 100 +'3': + steps: + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + seed: 100 +'4': + steps: + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 3 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + seed: 100 +'5': + steps: + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 4 + - - 3 + - 1 + - - 3 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + seed: 100 +'6': + steps: + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 3 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'7': + steps: + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 3 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'8': + steps: + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 2 + - 2 + - - 3 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'9': + steps: + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 2 + - 2 + - - 0 + - 4 + - - 1 + - 1 + - - 3 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'10': + steps: + - - 0 + - 3 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 3 + - - 2 + - 2 + - - 3 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'11': + steps: + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 3 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 3 + - 2 + - - 3 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'12': + steps: + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 2 + - - 0 + - 3 + - - 0 + - 4 + - - 3 + - 1 + - - 0 + - 4 + - - 0 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 3 + - 2 + - - 3 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'13': + steps: + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 0 + - 2 + - - 2 + - 2 + - - 3 + - 1 + - - 3 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 3 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'14': + steps: + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'15': + steps: + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'16': + steps: + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'17': + steps: + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 3 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 3 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 3 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'18': + steps: + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 2 + - 2 + - - 3 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 4 + - - 3 + - 2 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 3 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'19': + steps: + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 2 + - - 3 + - 1 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 4 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 2 + - - 2 + - 3 + - - 2 + - 3 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 3 + - 2 + - - 0 + - 4 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 3 + - 3 + - - 3 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'20': + steps: + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + seed: 100 +'21': + steps: + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + seed: 100 +'22': + steps: + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + seed: 100 +'23': + steps: + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 3 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + seed: 100 +'24': + steps: + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 3 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + seed: 100 +'25': + steps: + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 3 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 1 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + seed: 100 +'26': + steps: + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 1 + - 1 + - - 2 + - 2 + - - 3 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + seed: 100 +'27': + steps: + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 2 + - 2 + - - 3 + - 1 + - - 3 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 3 + - 2 + - - 3 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + seed: 100 +'28': + steps: + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 3 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + seed: 100 +'29': + steps: + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 3 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 4 + - 1 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + seed: 100 +'30': + steps: + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 3 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 2 + - 1 + - - 2 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 2 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 4 + - 1 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 2 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + seed: 100 +'31': + steps: + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 3 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 2 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 2 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 1 + - 1 + seed: 100 +'32': + steps: + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 1 + - 1 + - - 3 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + seed: 100 +'33': + steps: + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 3 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 2 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + seed: 100 +'34': + steps: + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 1 + - 1 + - - 3 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 2 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + seed: 100 +'36': + steps: + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 1 + - 1 + - - 3 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 2 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 3 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + seed: 100 +'37': + steps: + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 3 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 2 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 3 + - 2 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 3 + - 1 + - - 3 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + seed: 100 +'38': + steps: + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 1 + - 1 + - - 3 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 3 + - 1 + - - 0 + - 3 + - - 3 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 3 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + seed: 100 +'39': + steps: + - - 0 + - 1 + - - 1 + - 1 + - - 3 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 1 + - 1 + seed: 100 +'40': + steps: + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 3 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 1 + - 1 + seed: 100 +'41': + steps: + - - 0 + - 1 + - - 1 + - 1 + - - 3 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + seed: 100 +'42': + steps: + - - 0 + - 1 + - - 1 + - 1 + - - 3 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 1 + - 1 + seed: 100 +'43': + steps: + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'44': + steps: + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 1 + - 1 + seed: 100 +'45': + steps: + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'46': + steps: + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 3 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 1 + - - 3 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + seed: 100 +'47': + steps: + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 3 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'48': + steps: + - - 0 + - 2 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 3 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 2 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'49': + steps: + - - 0 + - 2 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 3 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 2 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'50': + steps: + - - 0 + - 2 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 3 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 2 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'51': + steps: + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 1 + - - 3 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 3 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 2 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 1 + - - 1 + - 1 + seed: 100 +'52': + steps: + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'53': + steps: + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'54': + steps: + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 2 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 0 + - 1 + - - 2 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 0 + - 1 + - - 2 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 0 + - 1 + - - 2 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 2 + - 2 + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'55': + steps: + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 2 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 2 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 1 + - - 2 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 0 + - 1 + - - 2 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 2 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 0 + - 1 + - - 2 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 2 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 2 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 2 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 2 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 2 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 2 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'56': + steps: + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'57': + steps: + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 1 + - - 2 + - 2 + - - 3 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 2 + - 2 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'58': + steps: + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 1 + - - 2 + - 2 + - - 3 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 2 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 2 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 2 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 2 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'59': + steps: + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 1 + - - 2 + - 2 + - - 3 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 2 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 2 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 2 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 2 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 2 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 2 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 2 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 1 + - - 2 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 2 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 2 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 2 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 2 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 2 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 2 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 2 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 2 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'60': + steps: + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 3 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'61': + steps: + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 3 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'62': + steps: + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 3 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'63': + steps: + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 3 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 4 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'64': + steps: + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 2 + - - 3 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 2 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 2 + - 2 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 2 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 2 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 2 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + seed: 100 +'65': + steps: + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 2 + - - 3 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 2 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 2 + - 1 + - - 2 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 2 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 3 + - 1 + - - 3 + - 1 + - - 3 + - 1 + - - 3 + - 1 + - - 3 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'66': + steps: + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 2 + - 2 + - - 3 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 2 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 2 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 2 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 3 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 3 + - 2 + - - 3 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'67': + steps: + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 2 + - 2 + - - 3 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + seed: 100 +'68': + steps: + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 2 + - 2 + - - 3 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 2 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 3 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'69': + steps: + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 2 + - - 0 + - 4 + - - 3 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 2 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 3 + - 2 + - - 3 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 3 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'70': + steps: + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 1 + - 1 + seed: 100 +'71': + steps: + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 3 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 2 + - 2 + - - 3 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + seed: 100 +'72': + steps: + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 2 + - - 3 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 1 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + seed: 100 +'73': + steps: + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 2 + - 2 + - - 3 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 1 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + seed: 100 +'74': + steps: + - - 0 + - 4 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 2 + - 2 + - - 3 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 1 + - - 1 + - 1 + seed: 100 +'75': + steps: + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 4 + - - 3 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 3 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'76': + steps: + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 2 + - 2 + - - 3 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 1 + - 1 + seed: 100 +'77': + steps: + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 2 + - 2 + - - 3 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 3 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 3 + - 1 + - - 0 + - 3 + - - 0 + - 4 + - - 3 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'78': + steps: + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 3 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 3 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 3 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + seed: 100 +'79': + steps: + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 2 + - 2 + - - 3 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + seed: 100 +'80': + steps: + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 3 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + seed: 100 +'81': + steps: + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 3 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + seed: 100 +'82': + steps: + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 3 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 2 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'83': + steps: + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + seed: 100 +'84': + steps: + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + seed: 100 +'85': + steps: + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + seed: 100 +'86': + steps: + - - 0 + - 4 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'87': + steps: + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'88': + steps: + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'89': + steps: + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + seed: 100 +'90': + steps: + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + seed: 100 +'91': + steps: + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + seed: 100 +'92': + steps: + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + seed: 100 +'93': + steps: + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 1 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + seed: 100 +'94': + steps: + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + seed: 100 +'95': + steps: + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 2 + - - 3 + - 1 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 2 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 2 + - 3 + - - 2 + - 2 + - - 3 + - 2 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 3 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + seed: 100 +'96': + steps: + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + seed: 100 +'97': + steps: + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + seed: 100 +'98': + steps: + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + seed: 100 +'99': + steps: + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 1 + - 1 + seed: 100 +'100': + steps: + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 3 + - - 1 + - 1 + - - 0 + - 1 + - - 3 + - 1 + - - 0 + - 4 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 1 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 3 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 2 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 0 + - 4 + - - 0 + - 3 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 3 + - - 0 + - 2 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 2 + - - 0 + - 4 + - - 2 + - 1 + - - 1 + - 1 + - - 0 + - 4 + - - 1 + - 1 + seed: 100 + diff --git a/js/griddlyjs-app/src/App.js b/js/griddlyjs-app/src/App.js new file mode 100644 index 000000000..114b9ed44 --- /dev/null +++ b/js/griddlyjs-app/src/App.js @@ -0,0 +1,1092 @@ +// import logo from './logo.svg'; +import yaml from "js-yaml"; +import React, { Component } from "react"; +import "./App.scss"; +import GriddlyJSCore from "./GriddlyJSCore"; +import Player from "./renderer/level_player/Player"; +import PolicyDebugger from "./renderer/policy_debugger/PolicyDebugger"; +import LevelEditor from "./renderer/level_editor/LevelEditor"; +import { + Col, + Container, + Row, + Tabs, + Tab, + Button, + ToastContainer, + Toast, + OverlayTrigger, + Tooltip, + Nav, + NavDropdown, + NavItem, + Modal, + Form, +} from "react-bootstrap"; + +import { + faFloppyDisk, + faXmarkSquare, + faExclamationTriangle, + faInfoCircle, + faFileCirclePlus, + faClone, + faTrashCan, + faBook, +} from "@fortawesome/free-solid-svg-icons"; + +import { faGithub, faDiscord } from "@fortawesome/free-brands-svg-icons"; + +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; + +import GDYEditor from "./GDYEditor"; +import LevelEditorStateHandler from "./LevelEditorStateHandler"; +import EditorHistory from "./EditorHistory"; +import LevelSelector from "./renderer/level_selector/LevelSelector"; +import { hashString } from "./Utils"; + +import * as tf from "@tensorflow/tfjs"; +import Intro from "./Intro"; + +class App extends Component { + constructor() { + super(); + + this.state = { + levelPlayer: { + phaserWidth: 500, + phaserHeight: 300, + }, + levelEditor: { + phaserWidth: 500, + phaserHeight: 300, + }, + policyDebugger: { + phaserWidth: 500, + phaserHeight: 300, + }, + levelSelector: { + phaserWidth: 1000, + phaserHeight: 120, + }, + gdyHash: 0, + gdyString: "", + levelId: 0, + rendererName: "", + messages: {}, + selectedLevelId: 0, + trajectories: [], + projects: { + names: [], + templates: {}, + blankTemplate: "", + }, + newProject: { + name: "", + showModal: false, + template: "", + }, + projectName: "", + }; + + this.griddlyjs = new GriddlyJSCore(); + this.editorHistory = new EditorHistory(10); + this.editorStateHandler = new LevelEditorStateHandler(); + + this.newLevelString = `. . . +. . . +. . . +`; + } + + loadGDYURL = async (url) => { + return fetch(url).then((response) => { + return response.text().then((text) => yaml.load(text)); + }); + }; + + setCurrentLevel = (levelId) => { + this.setState((state) => { + const levelString = state.gdy.Environment.Levels[levelId]; + + try { + this.editorStateHandler.loadLevelString(levelString, levelId); + } catch (error) { + this.displayMessage( + "Unable to load level, please edit level string to fix any errors.", + "error", + error + ); + } + + try { + this.griddlyjs.reset(levelString); + } catch (error) { + this.displayMessage( + "Unable to load level, please edit level string to fix any errors.", + "error", + error + ); + } + + const trajectoryString = yaml.dump(state.trajectories[levelId], { + noRefs: true, + }); + return { + ...state, + selectedLevelId: levelId, + levelString: levelString, + trajectoryString: trajectoryString, + }; + }); + }; + + setEditorLevelString = (levelString) => { + this.setState((state) => { + return { + ...state, + levelString: levelString, + }; + }); + }; + + saveLevelString = (levelString, levelId) => { + const gdy = this.state.gdy; + + let savedLevelId; + + // Overwrite a level, or just push a new one + if (levelId && levelId >= 0) { + gdy.Environment.Levels[levelId] = levelString; + savedLevelId = levelId; + } else { + gdy.Environment.Levels.push(levelString); + savedLevelId = gdy.Environment.Levels.length - 1; + } + + const gdyString = yaml.dump(gdy, { noRefs: true }); + this.updateGDY(gdyString, this.state.projectName); + + return savedLevelId; + }; + + updateLevelString = (levelString) => { + const savedLevelId = this.saveLevelString( + levelString, + this.state.selectedLevelId + ); + this.editorStateHandler.loadLevelString(levelString, this.state.selectedLevelId); + this.griddlyjs.reset(levelString); + this.setState((state) => { + return { + ...state, + selectedLevelId: savedLevelId, + }; + }); + }; + + updateTrajectoryString = (trajectoryString) => { + this.setState((state) => { + state.trajectories[state.selectedLevelId] = yaml.load(trajectoryString); + this.editorHistory.updateState(state.projectName, { + trajectories: state.trajectories, + }); + + state.trajectoryString = trajectoryString; + + return { + ...state, + }; + }); + }; + + playLevel = (levelString) => { + this.griddlyjs.reset(levelString); + }; + + saveNewLevel = () => { + const savedLevelId = this.saveLevelString(this.state.levelString); + this.editorStateHandler.loadLevelString(this.state.levelString, this.state.selectedLevelId); + this.griddlyjs.reset(this.state.levelString); + this.setState((state) => { + return { + ...state, + selectedLevelId: savedLevelId, + }; + }); + }; + + saveCurrentLevel = () => { + const savedLevelId = this.saveLevelString( + this.state.levelString, + this.state.selectedLevelId + ); + this.editorStateHandler.loadLevelString(this.state.levelString, this.state.selectedLevelId); + this.griddlyjs.reset(this.state.levelString); + + this.setState((state) => { + return { + ...state, + selectedLevelId: savedLevelId, + }; + }); + }; + + newLevel = () => { + this.editorStateHandler.loadLevelString(this.newLevelString, -1); + this.setKey("level"); + this.setState((state) => { + return { + ...state, + selectedLevelId: -1, + }; + }); + }; + + deleteLevel = () => { + const gdy = this.state.gdy; + + // Remove the level from the gdy + gdy.Environment.Levels.splice(this.state.selectedLevelId, 1); + + const gdyString = yaml.dump(gdy, { noRefs: true }); + this.updateGDY(gdyString, this.state.projectName); + this.setCurrentLevel(this.state.selectedLevelId - 1); + }; + + onTrajectoryComplete = (trajectoryBuffer) => { + this.setState((state) => { + const trajectories = { ...state.trajectories }; + trajectories[state.selectedLevelId] = trajectoryBuffer; + this.editorHistory.updateState(this.state.projectName, { + trajectories, + }); + + state.trajectoryString = yaml.dump(trajectoryBuffer, { noRefs: true }); + + return { + ...state, + trajectories, + }; + }); + }; + + findCompatibleRenderers = (observers, objects) => { + const compatibleRenderers = new Map([ + [ + "Sprite2D", + { + Type: "SPRITE_2D", + TileSize: 24, + RotateAvatarImage: true, + }, + ], + [ + "Block2D", + { + Type: "BLOCK_2D", + TileSize: 24, + RotateAvatarImage: true, + }, + ], + ]); + + for (const [rendererName, config] of compatibleRenderers) { + if (rendererName in observers) { + compatibleRenderers.set(rendererName, { + ...config, + ...observers[rendererName], + }); + } + } + + // Search through observers for custom observer types + for (const observerName in observers) { + const observer = observers[observerName]; + + // Ignore the default observers + if ( + observerName !== "Sprite2D" && + observerName !== "Block2D" && + observerName !== "Entity" && + observerName !== "ASCII" && + observerName !== "Vector" + ) { + const observerType = observer.Type; + + // Only consider fully observable sprite and block observers + if (observerType === "SPRITE_2D" || observerType === "BLOCK_2D") { + if ( + !observer.Width && + !observer.Height && + !observer.OffsetX && + !observer.OffsetY && + !observer.Shader + ) { + compatibleRenderers.set(observerName, observer); + } + } + } + } + + const observersInObjects = new Set(); + + // Search through objects for observer names + for (const o in objects) { + const object = objects[o]; + + // Remove any observers that are missing definitions in objects and warn about them + for (const observerName in object.Observers) { + observersInObjects.add(observerName); + } + } + + for (const [rendererName, config] of compatibleRenderers) { + if (!observersInObjects.has(rendererName)) { + compatibleRenderers.delete(rendererName); + } + } + + return compatibleRenderers; + }; + + tryLoadModel = async (environmentName) => { + return tf + .loadGraphModel("./model/" + environmentName + "/model.json") + .catch((error) => { + console.log("Cannot load model for environment", environmentName); + }) + .then((model) => { + this.setState((state) => { + return { + ...state, + model, + }; + }); + }); + }; + + tryLoadTrajectories = async (environmentName, trajectories) => { + return fetch("./trajectories/" + environmentName + ".yaml") + .then((response) => { + return response.text().then((text) => { + if (text.startsWith(" { + for (const levelId in trajectories) { + if (trajectories[levelId]) { + preloadedTrajectories[levelId] = trajectories[levelId]; + } + } + + this.setState((state) => { + return { + ...state, + trajectories: preloadedTrajectories, + }; + }); + }) + .catch((error) => { + console.log( + "Cannot load trajectories for environment", + environmentName + ); + this.setState((state) => { + return { + ...state, + trajectories, + }; + }); + }); + }; + + loadProject = async (editorState, projectName) => { + try { + const gdy = editorState.gdy; + + const gdyString = yaml.dump(gdy, { noRefs: true }); + + const lastLevelId = gdy.Environment.Levels.length - 1; + + this.editorStateHandler.onLevelString = this.setEditorLevelString; + + this.tryLoadModel(projectName); + + this.tryLoadTrajectories(projectName, editorState.trajectories); + + this.refreshProjectList(); + + this.setState((state) => { + return { + ...state, + loading: true + } + }); + + setTimeout(() => { + try { + this.updateGDY(gdyString, projectName); + this.setCurrentLevel(lastLevelId); + } catch (e) { + this.displayMessage("Could not load GDY", "error", e); + this.setState((state) => { + return { + ...state, + projectName, + gdyHash: hashString(gdyString), + gdyString: gdyString, + gdy: gdy, + editorStateHandler: this.editorStateHandler, + selectedLevelId: lastLevelId, + }; + }); + } + }, 100); + + + } catch (e) { + this.displayMessage("Could not load GDY", "error", e); + this.setState((state) => { + return { + ...state, + projectName, + gdyString: editorState.gdyString, + trajectoryString: editorState.trajectoryString, + }; + }); + } + }; + + loadRenderers = (gdy) => { + const renderers = this.findCompatibleRenderers( + gdy.Environment.Observers || {}, + gdy.Objects + ); + + if (renderers.size === 0) { + this.displayMessage( + "This GDY file does not contain any configurations for fully observable Sprite2D or Block2D renderers. We therefore don't know how to render this environment!", + "error" + ); + } + + const [rendererName] = renderers.keys(); + const rendererConfig = renderers.get(rendererName); + + this.setState((state) => { + return { + ...state, + renderers: renderers, + rendererName: rendererName, + rendererConfig: rendererConfig, + }; + }); + }; + + updateGDY = (gdyString, projectName) => { + const gdy = yaml.load(gdyString); + this.editorHistory.updateState(projectName, { gdy }); + try { + this.griddlyjs.unloadGDY(); + this.griddlyjs.loadGDY(gdyString); + } catch (e) { + this.displayMessage("Unable to load GDY", "error", e); + } + this.editorStateHandler.loadGDY(gdy); + + this.loadRenderers(gdy); + + this.setState((state) => { + return { + ...state, + projectName, + gdyHash: hashString(gdyString), + gdyString: gdyString, + gdy: gdy, + griddlyjs: this.griddlyjs, + editorStateHandler: this.editorStateHandler, + loading: false + }; + }); + }; + + updatePhaserCanvasSize = () => { + this.setState((state) => { + const width = Math.max( + this.tabPlayerContentElement.offsetWidth, + this.tabEditorContentElement.offsetWidth, + this.tabDebuggerContentElement + ? this.tabDebuggerContentElement.offsetWidth + : 0 + ); + return { + ...state, + levelPlayer: { + phaserWidth: width, + phaserHeight: (6 * window.innerHeight) / 8, + }, + levelEditor: { + phaserWidth: width, + phaserHeight: (6 * window.innerHeight) / 8, + }, + policyDebugger: { + phaserWidth: width, + phaserHeight: (6 * window.innerHeight) / 8, + }, + levelSelector: { + phaserWidth: (2 * window.innerWidth) / 3, + phaserHeight: 150, + }, + }; + }); + }; + + loadConfig = async () => { + return fetch("config/config.json").then((response) => response.json()); + }; + + refreshProjectList = () => { + const projectNames = this.editorHistory.getProjectNames(); + + this.setState((state) => { + const newProjects = { ...this.state.projects, names: projectNames }; + return { + ...state, + projects: newProjects, + }; + }); + }; + + setTemplates = (templates, blankTemplate) => { + this.setState((state) => { + const newProjects = { ...this.state.projects, templates, blankTemplate }; + return { + ...state, + projects: newProjects, + }; + }); + }; + + async componentDidMount() { + window.addEventListener("resize", this.updatePhaserCanvasSize, false); + + this.updatePhaserCanvasSize(); + this.refreshProjectList(); + + return await this.griddlyjs.init().then(() => { + this.loadConfig().then((defaults) => { + this.setTemplates(defaults.templates, defaults.blankTemplate); + const lastProjectName = this.editorHistory.getLastProject(); + if (lastProjectName) { + const editorState = this.editorHistory.getState(lastProjectName); + this.loadProject(editorState, lastProjectName); + } else { + this.loadGDYURL(defaults.defaultProject.gdy).then((gdy) => { + this.loadProject({ gdy }, defaults.defaultProject.name); + this.editorHistory.addProjectName(defaults.defaultProject.name); + }); + } + }); + }); + } + + setCurrentProject = (projectName) => { + const editorState = this.editorHistory.getState(projectName); + this.loadProject(editorState, projectName); + }; + + setKey = (k) => { + this.setState((state) => { + return { + ...state, + key: k, + }; + }); + + this.updatePhaserCanvasSize(); + }; + + displayMessage = (content, type, error) => { + if (error) { + console.error(error); + } + this.setState((state) => { + const messageHash = hashString(content + type); + state.messages[messageHash] = { + content, + type, + }; + + return { + ...state, + }; + }); + }; + + closeMessage = (messageHash) => { + this.setState((state) => { + delete state.messages[messageHash]; + return { + ...state, + }; + }); + }; + + createProjectFromTemplate = async (newProject) => { + await this.loadGDYURL(newProject.template.gdy).then((gdy) => { + this.loadProject({ gdy }, newProject.name); + this.editorHistory.addProjectName(newProject.name); + }); + }; + + closeNewProjectModal = () => { + this.setState((state) => { + const newProject = { ...this.state.newProject, showModal: false }; + + return { + ...state, + newProject, + }; + }); + }; + + newProjectModal = (template) => { + this.setState((state) => { + const newProject = { + ...this.state.newProject, + showModal: true, + template, + }; + + return { + ...state, + newProject, + }; + }); + }; + + updateNewProjectName = (name) => { + this.setState((state) => { + const newProject = { + ...this.state.newProject, + showModal: true, + name, + }; + + return { + ...state, + newProject, + }; + }); + }; + + createNewProject = (e) => { + e.preventDefault(); + this.closeNewProjectModal(); + + this.createProjectFromTemplate(this.state.newProject); + }; + + showIntroModal = () => { + this.setState((state) => { + return { + ...state, + showIntro: true, + }; + }); + }; + + closeIntroModal = () => { + this.setState((state) => { + return { + ...state, + showIntro: false, + }; + }); + }; + + render() { + return ( + + + + + Loading Project..... + + + + + New Project + + +
+ + Name + this.updateNewProjectName(e.target.value)} + autoFocus + /> + + Enter a unique name for your project. + + +
+
+ + + + +
+ + {Object.entries(this.state.messages).map(([key, message]) => { + let icon; + switch (message.type) { + case "error": + icon = ( + <> + + Error + + ); + break; + case "warning": + icon = ( + <> + + Warning + + ); + break; + case "info": + icon = ( + <> + + Info + + ); + break; + default: + break; + } + return ( + { + this.closeMessage(key); + }} + > + {icon} + {message.content} + + ); + })} + + + + + + + {this.state.projectName} + + + + + + + + + + + + + + + + + + + + + + { + e.preventDefault(); + this.setKey(k); + }} + className="mb-3" + transition={false} + > + + + +
{ + this.tabPlayerContentElement = tabPlayerContentElement; + }} + > + +
+ +
+
+ + + +
{ + this.tabEditorContentElement = tabEditorContentElement; + }} + > + +
+ +
+
+ {this.state.model ? ( + + + +
{ + this.tabDebuggerContentElement = + tabDebuggerContentElement; + }} + > + +
+ +
+
+ ) : ( + <> + )} +
+ + + this.updateGDY(gdy, this.state.projectName)} + updateLevelString={this.updateLevelString} + updateTrajectoryString={this.updateTrajectoryString} + /> + +
+ + + + Create a New Level + } + > + + + Save Current Level + } + > + + + Copy Level} + > + + + Delete Level} + > + + + + + + + + + + + +
+ ); + } +} + +export default App; diff --git a/js/griddlyjs-app/src/App.scss b/js/griddlyjs-app/src/App.scss new file mode 100644 index 000000000..536f9e19c --- /dev/null +++ b/js/griddlyjs-app/src/App.scss @@ -0,0 +1,63 @@ +@import "~bootswatch/dist/slate/variables"; +@import "~bootstrap/scss/bootstrap"; +@import "~bootswatch/dist/slate/bootswatch"; + +@font-face { + font-family: "Droid Sans Mono"; + src: url("./fonts/DroidSansMono.ttf"); +} + +@font-face { + font-family: "Font Awesome Regular"; + src: url("./fonts/fa-regular-400.ttf") format("truetype"), + url("./fonts/fa-regular-400.woff2") format("woff2"); +} + +@font-face { + font-family: "Font Awesome Solid"; + src: url("./fonts/fa-solid-900.ttf") format("truetype"), + url("./fonts/fa-solid-900.woff2") format("woff2"); +} + +.App { + text-align: center; +} + +.griddlyjs-ide-container { + text-align: center; +} + +.button-panel { + text-align: left; + min-height: 15px; + max-height: 40px; +} + +.header-logo { + text-align: left; + padding: 10px; +} + +.header-navlinks { + text-align: right; + padding: 10px; + + .navlink { + padding-left: 20px; + } +} + +.header-project { + font-size: 24; + padding: 10px; +} + +.modal-90w { + width: 90%; + max-width: none!important; +} + +.tutorial-video { + text-align: center; + margin: 20px; +} diff --git a/js/jiddly-app/src/App.test.js b/js/griddlyjs-app/src/App.test.js similarity index 100% rename from js/jiddly-app/src/App.test.js rename to js/griddlyjs-app/src/App.test.js diff --git a/js/griddlyjs-app/src/EditorHistory.js b/js/griddlyjs-app/src/EditorHistory.js new file mode 100644 index 000000000..7b7151a5e --- /dev/null +++ b/js/griddlyjs-app/src/EditorHistory.js @@ -0,0 +1,119 @@ +import LZString from "lz-string"; + +class EditorHistory { + constructor(maxHistory) { + this.maxHistory = maxHistory; + } + + getProjectData(projectName) { + let projectDataString = window.localStorage.getItem(projectName); + + let projectData; + if (!projectDataString) { + projectData = { + stateHistory: [ + this.compressState({ + gdy: {}, + trajectories: [], + }), + ], + }; + } else { + projectData = JSON.parse(projectDataString); + } + + // TODO: Remove this later + if ("history" in projectData) { + projectData.stateHistory = []; + projectData.history.forEach((gdy) => { + projectData.stateHistory.push( + this.compressState({ + gdy, + trajectories: [], + }) + ); + }); + + delete projectData["history"]; + } + + this.setLastProject(projectData); + + return projectData; + } + + decompressState(compressedEditorState) { + const editorState = {}; + for (const key in compressedEditorState) { + editorState[key] = JSON.parse( + LZString.decompress(compressedEditorState[key]) + ); + } + + return editorState; + } + + compressState(editorState) { + const compressedState = {}; + for (const key in editorState) { + compressedState[key] = LZString.compress( + JSON.stringify(editorState[key]) + ); + } + return compressedState; + } + + getProjectNames() { + if(window.localStorage.getItem("_projectNames")) { + this.projectNames = new Set(JSON.parse(window.localStorage.getItem("_projectNames"))); + } else { + this.projectNames = new Set(); + } + + return this.projectNames; + } + + addProjectName(projectName) { + this.projectNames.add(projectName); + window.localStorage.setItem("_projectNames", JSON.stringify(Array.from(this.projectNames))); + } + + getLastProject() { + return window.localStorage.getItem("_lastProject"); + } + + setLastProject(projectName) { + window.localStorage.setItem("_lastProject", projectName); + } + + updateState(projectName, newState) { + const projectData = this.getProjectData(projectName); + const prevState = this.decompressState( + projectData.stateHistory[projectData.stateHistory.length - 1] + ); + + const updatedState = { + ...prevState, + ...newState, + }; + + projectData.stateHistory.push(this.compressState(updatedState)); + + if (projectData.stateHistory.length >= this.maxHistory) { + projectData.stateHistory.shift(); + } + + this.setLastProject(projectName); + + window.localStorage.setItem(projectName, JSON.stringify(projectData)); + } + + getState(projectName) { + const projectData = this.getProjectData(projectName); + return this.decompressState( + projectData.stateHistory[projectData.stateHistory.length - 1] + ); + } +} + +export default EditorHistory; diff --git a/js/griddlyjs-app/src/GDYEditor.js b/js/griddlyjs-app/src/GDYEditor.js new file mode 100644 index 000000000..4a5fa7ed7 --- /dev/null +++ b/js/griddlyjs-app/src/GDYEditor.js @@ -0,0 +1,133 @@ +import { React, Component } from "react"; +import Editor from "@monaco-editor/react"; +import { Nav } from "react-bootstrap"; + +class GDYEditor extends Component { + constructor(props) { + super(props); + + const editorModels = { + GDY: { + name: "GDY", + language: "yaml", + value: this.props.gdyString, + }, + Level: { + name: "Level", + language: "text", + value: this.props.levelString, + }, + Trajectory: { + name: "Trajectory", + language: "yaml", + value: this.props.trajectoryString, + }, + }; + + this.state = { + fileName: "GDY", + editorModels, + }; + + this.updateGDY = this.props.updateGDY; + this.updateLevelString = this.props.updateLevelString; + this.updateTrajectoryString = this.props.updateTrajectoryString; + } + + static getDerivedStateFromProps(nextProps, prevState) { + const editorModels = { + GDY: { + name: "GDY", + language: "yaml", + value: nextProps.gdyString, + }, + Level: { + name: "Level", + language: "text", + value: nextProps.levelString, + }, + Trajectory: { + name: "Trajectory", + language: "yaml", + value: nextProps.trajectoryString, + }, + }; + + return { + ...prevState, + editorModels, + }; + } + + handleEditorDidMount = (editor, monaco) => { + if (editor) { + this.editor = editor; + + this.editor.addCommand( + monaco.KeyMod.CtrlCmd | monaco.KeyCode.KeyS, + () => { + + if(this.state.fileName === "GDY") { + const updatedGDY = editor.getValue(); + this.updateGDY(updatedGDY); + } else if (this.state.fileName === "Level") { + const updatedLevelString = editor.getValue(); + this.updateLevelString(updatedLevelString); + } else if(this.state.fileName === "Trajectory") { + const updatedTrajectoryString = editor.getValue(); + this.updateTrajectoryString(updatedTrajectoryString); + } + } + ); + } + }; + + changeModel = (fileName) => { + this.setState((state) => { + return { + ...state, + fileName, + }; + }); + }; + + render() { + const file = this.state.editorModels[this.state.fileName]; + + return ( + <> + + + + ); + } +} + +export default GDYEditor; diff --git a/js/griddlyjs-app/src/GriddlyJSCore.js b/js/griddlyjs-app/src/GriddlyJSCore.js new file mode 100644 index 000000000..8ac01990d --- /dev/null +++ b/js/griddlyjs-app/src/GriddlyJSCore.js @@ -0,0 +1,120 @@ +import Module from "./wasm/griddlyjs.js"; + +/** + * Contains all the code for loading and interfacing with GriddlyJS + */ +class GriddlyJSCore { + constructor() { + this.moduleOverrides = { + locateFile: (file, prefix) => { + if (file === "griddlyjs.wasm") { + const newPath = prefix + "../../js/" + file; + console.log("new path:", newPath); + return newPath; + } + }, + }; + } + + init = async () => { + this.module = await new Module(this.moduleOverrides); + this.griddlyjs = new this.module.GriddlyJS(); + }; + + loadGDY = (gdyString) => { + this.gdy = this.griddlyjs.loadString(gdyString); + this.game = this.gdy.createGame("Vector"); + + this.playerCount = this.gdy.getPlayerCount(); + + this.players = []; + + for (let p = 0; p < this.playerCount; p++) { + const player = this.game.registerPlayer("Player " + p, "Vector"); + this.players.push(player); + } + + this.game.init(); + this.game.reset(); + }; + + unloadGDY = () => { + if (this.game) { + this.game.release(); + this.game.delete(); + delete this.game; + } + if(this.gdy) { + this.gdy.delete(); + delete this.gdy; + } + }; + + getPlayerObservations = (playerId) => { + return this.players[playerId].observe(); + }; + + getActionInputMappings = () => { + return this.gdy.getActionInputMappings(); + }; + + getActionNames = () => { + return this.gdy.getExternalActionNames(); + }; + + getGlobalVariables = () => { + const globalVariableNames = this.game.getGlobalVariableNames(); + return this.game.getGlobalVariables(globalVariableNames); + }; + + getState = () => { + return this.game.getState(); + }; + + getHeight = () => { + return this.game.getHeight(); + }; + + getWidth = () => { + return this.game.getWidth(); + }; + + step = (action) => { + const playerActions = []; + if (!Array.isArray(action)) { + playerActions.push([action]); + } else if (!Array.isArray(action[0])) { + playerActions.push(action); + } + + const actionLength = playerActions[0].length; + + for (let p = 1; p < this.playerCount; p++) { + playerActions.push(new Array(actionLength).fill(0)); + } + + return this.game.stepParallel(playerActions); + }; + + reset = (levelStringOrId) => { + if (levelStringOrId) { + this.levelStringOrId = levelStringOrId; + if (isNaN(levelStringOrId)) { + this.game.loadLevelString(levelStringOrId); + } else { + this.game.loadLevel(levelStringOrId); + } + } + return this.game.reset(); + }; + + getLevelStringOrId = () => { + return this.levelStringOrId; + } + + seed = (seed) => { + this.game.seedRandomGenerator(seed); + } +} + +export default GriddlyJSCore; diff --git a/js/griddlyjs-app/src/Intro.js b/js/griddlyjs-app/src/Intro.js new file mode 100644 index 000000000..68f447739 --- /dev/null +++ b/js/griddlyjs-app/src/Intro.js @@ -0,0 +1,333 @@ +import React, { Component } from "react"; +import { Alert, Col, Container, Form, Modal, Nav, Row } from "react-bootstrap"; + +class Intro extends Component { + constructor(props) { + super(props); + this.state = { + show: false, + slideIdx: 0, + doNotShowOnStart: this.doNotShowOnStart() + }; + + + + + this.slides = [ + { + title: "Introduction", + image: "intro/intro.gif", + content: ( +
+
Welcome to GriddlyJS
+
+ You can use GriddlyJS to create grid worlds for reinforcement + learning. +
+
+ GriddlyJS helps you to build and test games mechanics, create + levels, debug policies and even record human trajectories. +
+
+ ), + }, + { + title: "Managing projects", + image: "intro/newproject.gif", + content: ( +
+
+
Creating a new Project
+
    +
  • + You can either create a blank project or start a project from + one of the templates provided. +
  • +
  • + If you choose to create a blank project, a very simple + environment with the most basic mechanics is loaded. This a + good starting point to understand how environments can be + configured using Griddly +
  • +
  • + For more complex projects, you can choose to start from an + existing template. +
  • +
+
+ + Tip: You can also create a blank template and then copy in + your own GDY text into the GDY editor. + +
+
+
+
Loading an existing project
+
    +
  • + All of the projects you create are automatically saved in your + browser. This includes any new levels trajectories and changes + to the GDY that you may have made. +
  • +
  • + You can select any of your existing projects in the{" "} + Open menu located at the top of the page +
  • +
+
+
+ ), + }, + { + title: "Level Editor", + image: "intro/leveleditor.gif", + content: ( +
+
+
Editing Levels
+
    +
  • + Use the level editor tab to paint new levels. +
  • +
  • + GriddlyJS reads the objects descriptions from the GDY + configuration, these objects can then be placed into the level + editor grid. +
  • +
  • + Modify the level text directly also. Press Ctrl+S to save the + changes back to the editor. +
  • +
  • + If you have a BackgroundTile configured, these + will be painted automatically to the bounds of the grid. +
  • +
  • + There's no limit to the dimensions of levels so you can be as + creative as you want! +
  • +
  • + As soon as you have created or modified your level, you can + click play to test the new level. +
  • +
+
+ + Tip: Use left click to paint and right click to remove items. + +
+
+
+
Level Selection
+
    +
  • + Click on the level thumbnails to choose a level to work with. +
  • +
  • + Create new levels, copy or modify existing levels and delete + them with the buttons just above the selection window. +
  • +
+
+
+ ), + }, + { + title: "Debugging Mechanics", + image: "intro/debuggingmechanics.gif", + content: ( +
+
+
Making changes to GDY
+
    +
  • + Change the mechanics of the game by modifying the GDY in the + editor. Press Ctrl+S to save changes. +
  • +
+ + Documentation, tutorials and examples of what can be done with + GDY can be found + here + + +
Testing Mechanics and Debugging
+
    +
  • + Press P to view the keyboard mapping for the + environment. +
  • +
  • + Press I to view the global variables. +
  • +
  • + Check that the behaviour of the variables and the actions are + what is expected in the environment. +
  • +
+
+
+ ), + }, + { + title: "Recording Trajectories", + image: "intro/recordingtrajectories.gif", + content: ( +
+
+
Recording
+
    +
  • + Click the Record button and then play the game, (the + actions mapped to the keyboard can be found by pressing + P) +
  • +
+ + Tip: If you make a mistake recording a trajectory you can click + the red stop button to halt the recording. + +
Playback
+
    +
  • + Once a trajectory is recorded, a green play button will + be enabled. Click this to playback your recorded trajectory +
  • +
+ + + Tip: Copy the actions from the trajectory text view and load + them in python using yaml, you can then pass them to the + env.step(...) function to reproduce the trajectory + for methods like behavioural cloning + +
+
+ ), + }, + { + title: "Debugging Policies", + image: "intro/debugpolicies.gif", + content: ( +
+
+
Policy Playback
+
    +
  • + Click the Play button and then play the game, (the + actions mapped to the keyboard can be found by pressing + P) +
  • +
+ + Debugging policies is an advanced use case and is currently only available in the Grafter Escape Rooms environment. + In order to add new policies, you will have to run GriddlyJS locally and add your own ONNX model to the model directory + +
+
+ ), + }, + ]; + } + + doNotShowOnStart = () => { + return window.localStorage.getItem("_hideIntro") === "true"; + }; + + setDoNotShowOnStart = (e) => { + if(e.target.checked) { + window.localStorage.setItem("_hideIntro", "true"); + } else { + window.localStorage.setItem("_hideIntro", "false"); + } + this.setState((state) => { + return { + ...state, + doNotShowOnStart: e.target.checked + } + }); + }; + + setShow = (show) => { + if(!show) { + this.props.onClose(); + } + this.setState((state) => { + return { + ...state, + show, + }; + }); + }; + + componentDidMount() { + this.setState((state) => { + return { + ...state, + show: !this.doNotShowOnStart(), + }; + }); + } + + setSlide = (slideIdx) => { + this.setState((state) => { + return { + ...state, + slideIdx, + }; + }); + }; + + render() { + const currentSlide = this.slides[this.state.slideIdx]; + return ( + this.setShow(false)} + dialogClassName="modal-90w" + > + + GriddlyJS Tutorial - {currentSlide.title} + + + + + + + + + + + {currentSlide.title} + + + + + {currentSlide.content} + + + + +
+ Do not show again on startup. + +
+
+
+
+ ); + } +} + +export default Intro; diff --git a/js/griddlyjs-app/src/LevelEditorStateHandler.js b/js/griddlyjs-app/src/LevelEditorStateHandler.js new file mode 100644 index 000000000..2fc944a35 --- /dev/null +++ b/js/griddlyjs-app/src/LevelEditorStateHandler.js @@ -0,0 +1,455 @@ +import { hashString, getRandomHash } from "./Utils"; + +const MR_READ_NORMAL = 0; +const MR_READ_PLAYERID = 1; +const MR_READ_INITIAL_ORIENTATION = 2; + +class EditorStateHandler { + constructor() { + this.defaultTileSize = 24; + this.minimumObjectChars = 3; + + this.minimumStateWidth = 3; + this.minimumStateHeight = 3; + } + + loadGDY(gdy) { + this.characterToObject = {}; + this.objectToCharacterAndZ = {}; + + this.gdy = gdy; + this.characterToObject["."] = "background"; + this.objectToCharacterAndZ["background"] = { char: ".", z: 10 }; + + this.gdy.Objects.forEach((object) => { + this.characterToObject[object.MapCharacter] = object.Name; + this.objectToCharacterAndZ[object.Name] = { + char: object.MapCharacter, + z: object.Z || 0, + }; + }); + } + + getObjectLocationKey = (x, y) => { + return `${x},${y}`; + }; + + resetEditorState(levelId) { + this.editorHistory = []; + + this.initialState = { + objects: {}, + gridWidth: 0, + gridHeight: 0, + minx: Number.MAX_VALUE, + miny: Number.MAX_VALUE, + maxx: Number.MIN_VALUE, + maxy: Number.MIN_VALUE, + tileTypeCount: {}, + levelId: levelId + }; + + // Just used to create a random id + this.objectId = 0; + + // Another simple way to create a unique id for consecutive states so we dont always re-draw unecessarily + this.hash = 0; + + this.pushState(this.initialState); + } + + loadLevelString(levelString, levelId) { + this.resetEditorState(levelId); + let mapReaderState = MR_READ_NORMAL; + + const levelStringLength = levelString.length; + + let rowCount = 0; + let colCount = 0; + let firstColCount = 0; + + let charIdx = 0; + + let currentObjectName = ""; + + let currentPlayerIdChars = []; + let currentDirection = "NONE"; + + let prevChar = ""; + + while (charIdx < levelStringLength) { + const ch = levelString[charIdx]; + + switch (ch) { + case "\n": + if (mapReaderState === MR_READ_PLAYERID) { + this.addTile( + colCount, + rowCount, + currentObjectName, + Number(currentPlayerIdChars.join()), + currentDirection, + false + ); + currentDirection = "NONE"; + mapReaderState = MR_READ_NORMAL; + currentPlayerIdChars = []; + colCount++; + } + + if (rowCount === 0) { + firstColCount = colCount; + } else if (firstColCount !== colCount) { + throw new Error("Invalid number of characters in map row"); + } + rowCount++; + colCount = 0; + prevChar = ch; + break; + case " ": + case "\t": + if ( + mapReaderState === MR_READ_PLAYERID || + mapReaderState === MR_READ_INITIAL_ORIENTATION + ) { + this.addTile( + colCount, + rowCount, + currentObjectName, + Number(currentPlayerIdChars.join()), + currentDirection, + false + ); + mapReaderState = MR_READ_NORMAL; + currentDirection = "NONE"; + currentPlayerIdChars = []; + colCount++; + } + break; + case ".": // dots just signify an empty space + if ( + mapReaderState === MR_READ_PLAYERID || + mapReaderState === MR_READ_INITIAL_ORIENTATION + ) { + this.addTile( + colCount, + rowCount, + currentObjectName, + Number(currentPlayerIdChars.join()), + currentDirection, + false + ); + mapReaderState = MR_READ_NORMAL; + currentDirection = "NONE"; + currentPlayerIdChars = []; + colCount++; + } + // Add the bg tile also + this.addTile( + colCount, + rowCount, + "background", + 0, + "NONE", + false + ); + + colCount++; + prevChar = ch; + break; + case "/": + if ( + mapReaderState === MR_READ_PLAYERID || + mapReaderState === MR_READ_INITIAL_ORIENTATION + ) { + this.addTile( + colCount, + rowCount, + currentObjectName, + Number(currentPlayerIdChars.join()), + currentDirection, + false + ); + currentPlayerIdChars = []; + mapReaderState = MR_READ_NORMAL; + currentDirection = "NONE"; + } + prevChar = ch; + break; + case "[": + if (mapReaderState === MR_READ_PLAYERID) { + mapReaderState = MR_READ_INITIAL_ORIENTATION; + } + prevChar = ch; + break; + + case "]": + if (mapReaderState !== MR_READ_INITIAL_ORIENTATION) { + throw new Error( + `Invalid closing bracket ']' for initial orientation in map row=${rowCount}` + ); + } + prevChar = ch; + break; + default: { + switch (mapReaderState) { + case MR_READ_NORMAL: + currentObjectName = this.characterToObject[ch]; + mapReaderState = MR_READ_PLAYERID; + break; + case MR_READ_PLAYERID: + if (!isNaN(ch)) { + currentPlayerIdChars.push(ch); + } else { + this.addTile( + colCount, + rowCount, + currentObjectName, + Number(currentPlayerIdChars.join()), + currentDirection, + false + ); + currentObjectName = this.characterToObject[ch]; + currentDirection = "NONE"; + currentPlayerIdChars = []; + colCount++; + } + break; + case MR_READ_INITIAL_ORIENTATION: + switch (ch) { + case "U": + currentDirection = "UP"; + break; + case "D": + currentDirection = "DOWN"; + break; + case "L": + currentDirection = "LEFT"; + break; + case "R": + currentDirection = "RIGHT"; + break; + default: + throw new Error( + `Unknown direction character ${ch} at in map row=${rowCount}` + ); + } + break; + default: + throw new Error( + "Unknown state reached when parsing level string" + ); + } + prevChar = ch; + break; + } + } + + charIdx++; + } + + if ( + mapReaderState === MR_READ_PLAYERID || + mapReaderState === MR_READ_INITIAL_ORIENTATION + ) { + this.addTile( + colCount, + rowCount, + currentObjectName, + Number(currentPlayerIdChars.join()), + currentDirection, + false + ); + currentPlayerIdChars = []; + currentDirection = "NONE"; + mapReaderState = MR_READ_NORMAL; + } + + if (prevChar !== "\n") { + rowCount += 1; + } + + // only run the onLevelString at the end of loading the level + const newLevelString = this.toLevelString(this.getState()); + if (this.onLevelString) { + this.onLevelString(newLevelString); + } + + } + + updateStateSize(state) { + state.minx = 0; + state.miny = 0; + state.maxx = 3; + state.maxy = 3; + + for (const objectLocationKey in state.objects) { + for (const objectId in state.objects[objectLocationKey]) { + const objectInfo = state.objects[objectLocationKey][objectId]; + + if (objectInfo.location.x < state.minx) { + state.minx = objectInfo.location.x; + } else if (objectInfo.location.x > state.maxx) { + state.maxx = objectInfo.location.x; + } + + if (objectInfo.location.y < state.miny) { + state.miny = objectInfo.location.y; + } else if (objectInfo.location.y > state.maxy) { + state.maxy = objectInfo.location.y; + } + } + } + + state.gridWidth = Math.max( + this.minimumStateWidth, + state.maxx - state.minx + 1 + ); + state.gridHeight = Math.max( + this.minimumStateHeight, + state.maxy - state.miny + 1 + ); + return state; + } + + pushState = (state, notify = true) => { + // Copy the state and add it to the history + const stateCopy = { + ...this.updateStateSize(state), + }; + + const levelString = this.toLevelString(stateCopy); + + const hashedStateCopy = { + ...stateCopy, + hash: hashString(levelString), + }; + + this.editorHistory.push(hashedStateCopy); + + const historyLength = this.editorHistory.length; + + if (historyLength >= 20) { + this.editorHistory.shift(); + } + + if (this.onLevelString && notify) { + this.onLevelString(levelString); + } + }; + + addTile(x, y, objectName, playerId, orientation, notify = true) { + let state = this.getState(); + + const charAndZ = this.objectToCharacterAndZ[objectName]; + + const objectInfo = { + id: getRandomHash(), + renderTileId: 0, + name: objectName, + char: charAndZ.char, + playerId, + orientation, + location: { x, y, z: charAndZ.z }, + }; + + const locationKey = this.getObjectLocationKey(x, y); + + if (!(locationKey in state.objects)) { + state.objects[locationKey] = []; + } else { + // Remove existing object with same z location + for (const k in state.objects[locationKey]) { + const object = state.objects[locationKey][k]; + + if (object.location.z === objectInfo.location.z) { + state.tileTypeCount[objectInfo.name]--; + state.objects[locationKey].splice(k, 1); + } + } + } + + // Add new object + state.objects[locationKey].push(objectInfo); + + // Sort by Z location + state.objects[locationKey].sort((a, b) => b.location.z - a.location.z); + + if (!(objectInfo.name in state.tileTypeCount)) { + state.tileTypeCount[objectInfo.name] = 0; + } + state.tileTypeCount[objectInfo.name]++; + + this.pushState(state, notify); + } + + removeTile(x, y) { + const state = this.getState(); + + const locationKey = this.getObjectLocationKey(x, y); + + if (locationKey in state.objects) { + const objectInfo = state.objects[locationKey][0]; + state.tileTypeCount[objectInfo.name]--; + state.objects[locationKey].splice(0, 1); + + if (state.objects[locationKey].length === 0) { + delete state.objects[locationKey]; + console.log("removing key"); + } + + this.pushState(state); + } + } + + getState() { + return { ...this.editorHistory[this.editorHistory.length - 1] }; + } + + toLevelString(state) { + const levelObjectChars = []; + + let maxObjectChars = this.minimumObjectChars; + + for (let y = state.miny; y <= state.maxy; y++) { + for (let x = state.minx; x <= state.maxx; x++) { + const locationKey = this.getObjectLocationKey(x, y); + if (locationKey in state.objects) { + const locationChars = []; + for (const k in state.objects[locationKey]) { + const objectInfo = state.objects[locationKey][k]; + if(objectInfo.char !== ".") { + locationChars.push(objectInfo.char); + } + } + let objectChars; + if (locationChars.length === 0) { + objectChars = "." + } else { + objectChars = locationChars.join("/"); + } + + if (objectChars.length > maxObjectChars) { + maxObjectChars = objectChars.length; + } + + levelObjectChars.push(objectChars); + } else { + levelObjectChars.push("."); + } + } + levelObjectChars.push("\n"); + } + + return levelObjectChars + .map((chars) => { + if (chars !== "\n") { + return chars.padEnd(maxObjectChars + 1); + } + return chars; + }) + .join(""); + } +} + +export default EditorStateHandler; diff --git a/js/griddlyjs-app/src/Utils.js b/js/griddlyjs-app/src/Utils.js new file mode 100644 index 000000000..61c7d8136 --- /dev/null +++ b/js/griddlyjs-app/src/Utils.js @@ -0,0 +1,20 @@ + + +module.exports = Object.freeze({ + hashString: (string) => { + let hash = 0, + i, + chr; + if (string.length === 0) return hash; + for (i = 0; i < string.length; i++) { + chr = string.charCodeAt(i); + hash = (hash << 5) - hash + chr; + hash |= 0; // Convert to 32bit integer + } + return hash; + }, + + getRandomHash: () => { + return window.crypto.getRandomValues(new Uint32Array(1))[0]; + }, +}); diff --git a/js/griddlyjs-app/src/fonts/DroidSansMono.ttf b/js/griddlyjs-app/src/fonts/DroidSansMono.ttf new file mode 100755 index 000000000..a00707194 Binary files /dev/null and b/js/griddlyjs-app/src/fonts/DroidSansMono.ttf differ diff --git a/js/griddlyjs-app/src/fonts/fa-regular-400.ttf b/js/griddlyjs-app/src/fonts/fa-regular-400.ttf new file mode 100644 index 000000000..23e3febe0 Binary files /dev/null and b/js/griddlyjs-app/src/fonts/fa-regular-400.ttf differ diff --git a/js/griddlyjs-app/src/fonts/fa-regular-400.woff2 b/js/griddlyjs-app/src/fonts/fa-regular-400.woff2 new file mode 100644 index 000000000..80e3b1247 Binary files /dev/null and b/js/griddlyjs-app/src/fonts/fa-regular-400.woff2 differ diff --git a/js/griddlyjs-app/src/fonts/fa-solid-900.ttf b/js/griddlyjs-app/src/fonts/fa-solid-900.ttf new file mode 100644 index 000000000..da9082420 Binary files /dev/null and b/js/griddlyjs-app/src/fonts/fa-solid-900.ttf differ diff --git a/js/griddlyjs-app/src/fonts/fa-solid-900.woff2 b/js/griddlyjs-app/src/fonts/fa-solid-900.woff2 new file mode 100644 index 000000000..360ba1155 Binary files /dev/null and b/js/griddlyjs-app/src/fonts/fa-solid-900.woff2 differ diff --git a/js/jiddly-app/src/index.js b/js/griddlyjs-app/src/index.js similarity index 100% rename from js/jiddly-app/src/index.js rename to js/griddlyjs-app/src/index.js diff --git a/js/jiddly-app/src/renderer/scenes/Block2DRenderer.js b/js/griddlyjs-app/src/renderer/Block2DRenderer.js similarity index 65% rename from js/jiddly-app/src/renderer/scenes/Block2DRenderer.js rename to js/griddlyjs-app/src/renderer/Block2DRenderer.js index eac28bffb..0aea9b219 100644 --- a/js/jiddly-app/src/renderer/scenes/Block2DRenderer.js +++ b/js/griddlyjs-app/src/renderer/Block2DRenderer.js @@ -2,12 +2,15 @@ import Phaser from "phaser"; import RendererBase from "./RendererBase"; class Block2DRenderer extends RendererBase { - constructor(scene, renderConfig, avatarObject) { - super(scene, renderConfig, avatarObject); + constructor(scene, rendererName, renderConfig, avatarObject, centerObjects) { + super(scene, rendererName, renderConfig, avatarObject, centerObjects); this.objectTemplates = {}; } addObject = (objectName, objectTemplateName, x, y, orientation) => { + if (objectName === "background") { + return; + } const objectTemplate = this.objectTemplates[objectTemplateName]; const sprite = this.scene.add.sprite( this.getCenteredX(x), @@ -28,13 +31,32 @@ class Block2DRenderer extends RendererBase { ) ); - sprite.setRotation(this.getOrientationAngleRads(orientation)); + if (this.avatarObject !== objectName) { + sprite.setRotation(this.getOrientationAngleRads(orientation)); + } else if (this.renderConfig.RotateAvatarImage) { + sprite.setRotation(this.getOrientationAngleRads(orientation)); + } + sprite.setDepth(objectTemplate.zIdx); + if (this.container) { + this.container.add(sprite); + } + return sprite; }; - updateObject = (sprite, objectName, objectTemplateName, x, y, orientation) => { + updateObject = ( + sprite, + objectName, + objectTemplateName, + x, + y, + orientation + ) => { + if (objectName === "background") { + return; + } const objectTemplate = this.objectTemplates[objectTemplateName]; sprite.setPosition(this.getCenteredX(x), this.getCenteredY(y)); sprite.setTexture(objectTemplate.id); @@ -52,26 +74,34 @@ class Block2DRenderer extends RendererBase { ) ); - sprite.setRotation(this.getOrientationAngleRads(orientation)); - sprite.setScale(objectTemplate.scale); + if (this.avatarObject !== objectName) { + sprite.setRotation(this.getOrientationAngleRads(orientation)); + } else if (this.renderConfig.RotateAvatarImage) { + sprite.setRotation(this.getOrientationAngleRads(orientation)); + } + sprite.setDepth(objectTemplate.zIdx); }; loadTemplates = (objects) => { this.scene.load.baseURL = "resources/images/"; objects.forEach((object) => { - const block2DConfig = object.Observers.Block2D; + const block2DConfig = object.Observers[this.rendererName]; for (let idx = 0; idx < block2DConfig.length; idx++) { const config = block2DConfig[idx]; + const color = config.Color || [1, 1, 1]; + const objectTemplate = { + name: object.Name, + internal: object.Internal ? true : false, id: object.Name + idx, scale: config.Scale || 1.0, color: { - r: config.Color[0], - g: config.Color[1], - b: config.Color[2], + r: color[0], + g: color[1], + b: color[2], }, zIdx: object.Z || 0, }; @@ -96,7 +126,7 @@ class Block2DRenderer extends RendererBase { case "hexagon": return "block_shapes/hexagon.png"; default: - this.displayError("Cannot find image for BLOCK_2D shape " + shape); + console.warn("Cannot find image for BLOCK_2D shape " + shape); return "block_shapes/square.png"; } }; diff --git a/js/jiddly-app/src/renderer/scenes/LoadingScene.js b/js/griddlyjs-app/src/renderer/LoadingScene.js similarity index 54% rename from js/jiddly-app/src/renderer/scenes/LoadingScene.js rename to js/griddlyjs-app/src/renderer/LoadingScene.js index bfbe80aec..c8bc9a04c 100644 --- a/js/jiddly-app/src/renderer/scenes/LoadingScene.js +++ b/js/griddlyjs-app/src/renderer/LoadingScene.js @@ -1,4 +1,5 @@ import Phaser from "phaser"; +import { COLOR_LOADING_TEXT } from "./ThemeConsts"; class LoadingScene extends Phaser.Scene { constructor() { @@ -17,11 +18,26 @@ class LoadingScene extends Phaser.Scene { this.cameras.main.height / 2, "Loading Griddly GDY", { - font: "32px Arial", - fill: "#ff0044", + fontFamily: "Droid Sans Mono", + fontSize: "32px", + fill: COLOR_LOADING_TEXT, align: "center", } ); + + this.running = this.add.text(0, 0, "\uf70c", { + fontFamily: "Font Awesome Solid", + fontSize: "32px", + fill: COLOR_LOADING_TEXT, + align: "center", + }); + + this.runningSolid = this.add.text(32, 0, "\uf70c", { + fontFamily: "Font Awesome Solid", + fontSize: "32px", + fill: COLOR_LOADING_TEXT, + align: "center", + }); } update() { diff --git a/js/jiddly-app/src/renderer/scenes/RendererBase.js b/js/griddlyjs-app/src/renderer/RendererBase.js similarity index 58% rename from js/jiddly-app/src/renderer/scenes/RendererBase.js rename to js/griddlyjs-app/src/renderer/RendererBase.js index 8d87a185e..d3db63bf4 100644 --- a/js/jiddly-app/src/renderer/scenes/RendererBase.js +++ b/js/griddlyjs-app/src/renderer/RendererBase.js @@ -1,36 +1,53 @@ - class RendererBase { - constructor(scene, renderConfig, avatarObject) { + constructor( + scene, + rendererName, + renderConfig, + avatarObject, + centerObjects = true + ) { this.scene = scene; + this.rendererName = rendererName; this.renderConfig = renderConfig; this.avatarObject = avatarObject; + this.centerObjects = centerObjects; if (!this.scene.imagePaths) { this.scene.imagePaths = {}; } } - init(gridWidth, gridHeight) { - this.gridHeight = gridHeight; + init(gridWidth, gridHeight, container) { this.gridWidth = gridWidth; - }; + this.gridHeight = gridHeight; + this.container = container; + } - beginUpdate(objects) { - // We dont really have to do anything here - }; + beginUpdate(objects, state) {} + + recenter(gridWidth, gridHeight) { + this.gridWidth = gridWidth; + this.gridHeight = gridHeight; + } getCenteredX = (x) => { - return ( - this.scene.cameras.main.centerX + - (x - this.gridWidth / 2.0 + 0.5) * this.renderConfig.TileSize - ); + const scaledX = + (x - this.gridWidth / 2.0 + 0.5) * this.renderConfig.TileSize; + if (this.centerObjects) { + return scaledX + this.scene.cameras.main.centerX; + } else { + return scaledX; + } }; getCenteredY = (y) => { - return ( - this.scene.cameras.main.centerY + - (y - this.gridHeight / 2.0 + 0.5) * this.renderConfig.TileSize - ); + const scaledY = + (y - this.gridHeight / 2.0 + 0.5) * this.renderConfig.TileSize; + if (this.centerObjects) { + return scaledY + this.scene.cameras.main.centerY; + } else { + return scaledY; + } }; loadImage = (image, imagePath) => { @@ -46,6 +63,10 @@ class RendererBase { this.scene.load.image(image, imagePath); }; + getTilingImage = (objectTemplate, x, y) => { + return objectTemplate.id; + }; + getOrientationAngleRads = (orientation) => { switch (orientation) { default: diff --git a/js/jiddly-app/src/renderer/scenes/Sprite2DRenderer.js b/js/griddlyjs-app/src/renderer/Sprite2DRenderer.js similarity index 76% rename from js/jiddly-app/src/renderer/scenes/Sprite2DRenderer.js rename to js/griddlyjs-app/src/renderer/Sprite2DRenderer.js index f8314abe2..d17430f10 100644 --- a/js/jiddly-app/src/renderer/scenes/Sprite2DRenderer.js +++ b/js/griddlyjs-app/src/renderer/Sprite2DRenderer.js @@ -2,54 +2,74 @@ import Phaser from "phaser"; import RendererBase from "./RendererBase"; class Sprite2DRenderer extends RendererBase { - constructor(scene, renderConfig, avatarObject) { - super(scene, renderConfig, avatarObject); + constructor(scene, rendererName, renderConfig, avatarObject, centerObjects) { + super(scene, rendererName, renderConfig, avatarObject, centerObjects); this.objectTemplates = {}; this.tileLocations = new Map(); } - init(gridWidth, gridHeight) { - super.init(gridWidth, gridHeight); + init(gridWidth, gridHeight, container) { + super.init(gridWidth, gridHeight, container); + this.updateBackgroundTiling({ minx: 0, miny: 0, gridWidth, gridHeight }); + } + + updateBackgroundTiling = (state) => { if ("BackgroundTile" in this.renderConfig) { - const sprite = this.scene.add.tileSprite( - this.scene.cameras.main.centerX, - this.scene.cameras.main.centerY, - gridWidth * this.renderConfig.TileSize, - gridHeight * this.renderConfig.TileSize, + if (this.backgroundSprite) { + this.backgroundSprite.destroy(); + } + + this.backgroundSprite = this.scene.add.tileSprite( + this.getCenteredX(state.minx - 0.5), + this.getCenteredY(state.miny - 0.5), + state.gridWidth * this.renderConfig.TileSize, + state.gridHeight * this.renderConfig.TileSize, "__background__" ); const backgroundSourceImage = this.scene.textures.get("__background__").source[0]; - sprite.tileScaleX = + this.backgroundSprite.tileScaleX = this.renderConfig.TileSize / backgroundSourceImage.width; - sprite.tileScaleY = + this.backgroundSprite.tileScaleY = this.renderConfig.TileSize / backgroundSourceImage.height; - this.backgroundSprite = sprite; + if (this.container) { + this.container.add(this.backgroundSprite); + } + + this.backgroundSprite.setDepth(-1); + this.backgroundSprite.setOrigin(0, 0); } - } + }; - beginUpdate(objects) { + beginUpdate(objects, state) { super.beginUpdate(objects); - if (this.backgroundSprite) { - this.backgroundSprite.setPosition( - this.scene.cameras.main.centerX, - this.scene.cameras.main.centerY - ); - } this.tileLocations.clear(); + + // Recalculate Grid width and height for background tiling objects.forEach((object) => { this.tileLocations.set( this.getObjectLocationKey(object.location.x, object.location.y), object.name ); }); + + if (state) { + this.updateBackgroundTiling(state); + } else { + this.updateBackgroundTiling({ + minx: 0, + miny: 0, + gridWidth: this.gridWidth, + gridHeight: this.gridHeight, + }); + } } getObjectLocationKey = (x, y) => { @@ -57,6 +77,9 @@ class Sprite2DRenderer extends RendererBase { }; addObject = (objectName, objectTemplateName, x, y, orientation) => { + if (objectName === "background") { + return; + } const objectTemplate = this.objectTemplates[objectTemplateName]; const sprite = this.scene.add.sprite( @@ -85,10 +108,24 @@ class Sprite2DRenderer extends RendererBase { } sprite.setDepth(objectTemplate.zIdx); + if (this.container) { + this.container.add(sprite); + } + return sprite; }; - updateObject = (sprite, objectName, objectTemplateName, x, y, orientation) => { + updateObject = ( + sprite, + objectName, + objectTemplateName, + x, + y, + orientation + ) => { + if (!sprite) { + return; + } const objectTemplate = this.objectTemplates[objectTemplateName]; sprite.setPosition(this.getCenteredX(x), this.getCenteredY(y)); @@ -123,7 +160,7 @@ class Sprite2DRenderer extends RendererBase { } objects.forEach((object) => { - const sprite2DConfig = object.Observers.Sprite2D; + const sprite2DConfig = object.Observers[this.rendererName]; for (let idx = 0; idx < sprite2DConfig.length; idx++) { const config = sprite2DConfig[idx]; @@ -132,6 +169,7 @@ class Sprite2DRenderer extends RendererBase { const objectTemplate = { name: object.Name, id: object.Name + idx, + internal: object.Internal ? true : false, tilingMode: config.TilingMode || "NONE", scale: config.Scale || 1.0, color: config.Color @@ -153,6 +191,7 @@ class Sprite2DRenderer extends RendererBase { const objectTemplate = { name: object.Name, id: object.Name + idx, + internal: object.Internal ? true : false, tilingMode: "NONE", scale: config.Scale || 1.0, color: config.Color diff --git a/js/griddlyjs-app/src/renderer/ThemeConsts.js b/js/griddlyjs-app/src/renderer/ThemeConsts.js new file mode 100644 index 000000000..2d440724c --- /dev/null +++ b/js/griddlyjs-app/src/renderer/ThemeConsts.js @@ -0,0 +1,31 @@ +module.exports = Object.freeze({ + COLOR_SELECT_TILE_TEXT: "#3dc9b0", + COLOR_LOADING_TEXT: "#3dc9b0", + + COLOR_SELECT_MOVE_TOOL_TEXT: "#858585", + COLOR_SELECT_SELECT_TOOL_TEXT: "#3dc9b0", + COLOR_SELECT_PLACE_TOOL_TEXT: "#ce9178", + + COLOR_RECORDING_RECORD_TEXT: "#f14c4c", + COLOR_RECORDING_BLINK_TEXT: "#101010", + COLOR_RECORDING_PLAY_TEXT: "#3dc9b0", + COLOR_RECORDING_STOP_TEXT: "#f14c4c", + COLOR_RECORDING_DISABLED_TEXT: "#151515", + + COLOR_POLICY_DEBUG_PLAY_TEXT: "#3dc9b0", + COLOR_POLICY_DEBUG_STOP_TEXT: "#f14c4c", + COLOR_POLICY_DEBUG_DISABLED_TEXT: "#151515", + + COLOR_LOADING: 0x3dc9b0, + COLOR_ERROR: 0xf14c4c, + COLOR_SELECT: 0x3dc9b0, + COLOR_PLACE: 0xce9178, + COLOR_FOREGROUND: 0xd4d4d4, + COLOR_PANEL_DARK: 0x1e1e1e, + COLOR_PANEL_LIGHT: 0x303030, + COLOR_PANEL_LIGHTER: 0x505050, + + COLOR_RECORDING_FLASH: 0xf14c4c, + + COLOR_SELECT_TILE_HIGHLIGHTED: 0xd4d4d4 +}); \ No newline at end of file diff --git a/js/jiddly-app/src/level_editor/LevelEditor.js b/js/griddlyjs-app/src/renderer/level_editor/LevelEditor.js similarity index 67% rename from js/jiddly-app/src/level_editor/LevelEditor.js rename to js/griddlyjs-app/src/renderer/level_editor/LevelEditor.js index 09592f02e..cd3521fd5 100644 --- a/js/jiddly-app/src/level_editor/LevelEditor.js +++ b/js/griddlyjs-app/src/renderer/level_editor/LevelEditor.js @@ -3,10 +3,9 @@ import Phaser from "phaser"; import EditorScene from "./scenes/EditorScene"; import { Col, Row } from "react-bootstrap"; -import LoadingScene from "./scenes/LoadingScene"; -import EditorState from "./EditorState"; +import LoadingScene from "../LoadingScene"; -class Player extends Component { +class LevelEditor extends Component { updateCanvasSize = () => { this.game.scale.resize(this.props.width, this.props.height); }; @@ -17,16 +16,11 @@ class Player extends Component { parent: this.divElement, backgroundColor: "#000000", scale: { - // mode: Phaser.Scale.ScaleModes.RESIZE, expandParent: false, }, scene: [LoadingScene, EditorScene], }; - - - this.editorState = new EditorState(); - this.game = new Phaser.Game(config); this.updateCanvasSize(); @@ -37,22 +31,20 @@ class Player extends Component { if (prevProps.gdyHash === 0 && this.props.gdy) { this.game.scene.remove("LoadingScene"); - - this.editorState.loadGDY(this.props.gdy); - - const levels = this.props.gdy.Environment.Levels; - - this.editorState.loadLevelString(levels[this.props.levelId]); - this.game.scene.start("EditorScene", { - editorState: this.editorState, + gdy: this.props.gdy, + editorStateHandler: this.props.editorStateHandler, + rendererConfig: this.props.rendererConfig, + rendererName: this.props.rendererName, + onDisplayMessage: this.props.onDisplayMessage }); } else if (prevProps.gdyHash !== this.props.gdyHash) { - - this.editorState.loadGDY(this.props.gdy); - this.game.scene.getScene("EditorScene").scene.restart({ - editorState: this.editorState, + gdy: this.props.gdy, + editorStateHandler: this.props.editorStateHandler, + rendererConfig: this.props.rendererConfig, + rendererName: this.props.rendererName, + onDisplayMessage: this.props.onDisplayMessage }); } } @@ -77,4 +69,4 @@ class Player extends Component { } } -export default Player; +export default LevelEditor; diff --git a/js/griddlyjs-app/src/renderer/level_editor/scenes/EditorScene.js b/js/griddlyjs-app/src/renderer/level_editor/scenes/EditorScene.js new file mode 100644 index 000000000..36fc5d997 --- /dev/null +++ b/js/griddlyjs-app/src/renderer/level_editor/scenes/EditorScene.js @@ -0,0 +1,672 @@ +import Phaser from "phaser"; + +import Block2DRenderer from "../../Block2DRenderer"; +import Sprite2DRenderer from "../../Sprite2DRenderer"; +import { + COLOR_LOADING_TEXT, + COLOR_PANEL_DARK, + COLOR_PANEL_LIGHT, + COLOR_SELECT_TILE_TEXT, + COLOR_SELECT, + COLOR_PLACE, + COLOR_FOREGROUND, + COLOR_SELECT_MOVE_TOOL_TEXT, + COLOR_SELECT_SELECT_TOOL_TEXT, + COLOR_SELECT_PLACE_TOOL_TEXT, + COLOR_SELECT_TILE_HIGHLIGHTED, +} from "../../ThemeConsts"; + +const selectTileBoxHeight = 30; +const selectTileBoxPadding = 3; + +const selectToolBoxPadding = 50; +const selectToolBoxWidth = 35; +const selectToolBoxHeight = 35; + +const selectTileSpriteOffset = 3; + +const toolBoxYOffset = 50; +const tileBoxYOffset = 100; + +class EditorScene extends Phaser.Scene { + constructor() { + super("EditorScene"); + + this.editorCenterX = 0; + this.editorCenterY = 0; + + this.origDragPoint = null; + + this.editorGridLocation = { + x: 0, + y: 0, + }; + + this.selectTileBgMap = {}; + } + + createTileMenu() { + // Make a rectangle on the left and add more rectangles to it + this.selectTilePanel = this.add.rectangle( + 0, + 0, + this.cameras.main.width / 5, + this.cameras.main.height, + COLOR_PANEL_DARK + ); + + this.selectTilePanel.setOrigin(0, 0); + this.selectTilePanel.setDepth(200); + this.selectTilePanel.setInteractive(); + this.selectTilePanel.on("pointerdown", (e) => { + e.event.preventDefault(); + } ); + this.selectTilePanel.on("pointermove", (e) => { + e.event.preventDefault(); + } ); + + const selectToolButtonOffset = this.selectTilePanel.width / 2; + + const moveToolButtonX = selectToolButtonOffset - selectToolBoxPadding; + //const selectToolButtonX = selectToolButtonOffset; + const placeToolButtonX = selectToolButtonOffset; + + // Move Tool Box + this.selectMoveToolBg = this.add.rectangle( + moveToolButtonX, + toolBoxYOffset, + selectToolBoxWidth, + selectToolBoxHeight, + COLOR_PANEL_LIGHT + ); + this.selectMoveToolBg.setDepth(201); + this.selectMoveToolBg.setInteractive(); + this.selectMoveToolBg.on("pointerdown", () => this.selectTool("move")); + this.add + .text(moveToolButtonX, toolBoxYOffset, "\uf047", { + fontFamily: "Font Awesome Solid", + color: COLOR_SELECT_MOVE_TOOL_TEXT, + fontSize: "24px", + }) + .setDepth(202) + .setOrigin(0.5, 0.5); + + // Select Tool Box + // this.selectSelectToolBg = this.add.rectangle( + // selectToolButtonX, + // toolBoxYOffset, + // selectToolBoxWidth, + // selectToolBoxHeight, + // COLOR_PANEL_LIGHT + // ); + // this.selectSelectToolBg.setDepth(201); + // this.selectSelectToolBg.setInteractive(); + // this.selectSelectToolBg.on("pointerdown", () => this.selectTool("select")); + // this.add + // .text(selectToolButtonX, toolBoxYOffset, "\uf245", { + // fontFamily: "Font Awesome Solid", + // color: COLOR_SELECT_SELECT_TOOL_TEXT, + // fontSize: "24px", + // }) + // .setDepth(202) + // .setOrigin(0.5, 0.5); + + // Place Tool Box + this.selectPlaceToolBg = this.add.rectangle( + placeToolButtonX, + toolBoxYOffset, + selectToolBoxWidth, + selectToolBoxHeight, + COLOR_PANEL_LIGHT + ); + this.selectPlaceToolBg.setDepth(201); + this.selectPlaceToolBg.setInteractive(); + this.selectPlaceToolBg.on("pointerdown", () => this.selectTool("place")); + this.add + .text(placeToolButtonX, toolBoxYOffset, "\uf1fc", { + fontFamily: "Font Awesome Solid", + color: COLOR_SELECT_PLACE_TOOL_TEXT, + fontSize: "24px", + }) + .setDepth(202) + .setOrigin(0.5, 0.5); + + const objectNames = new Set(); + let o = 0; + for (const objectTemplateName in this.grenderer.objectTemplates) { + const objectTemplate = this.grenderer.objectTemplates[objectTemplateName]; + + // Skip objects that are marked Internal (they are only used in shaders etc...) + if(objectTemplate.internal) { + continue; + } + + if (!objectNames.has(objectTemplate.name)) { + objectNames.add(objectTemplate.name); + + const selectTileBg = this.add.rectangle( + this.selectTilePanel.x + selectTileBoxPadding, + tileBoxYOffset + + this.selectTilePanel.y + + o * (selectTileBoxPadding * 2 + selectTileBoxHeight), + this.selectTilePanel.width - 3 * selectTileBoxPadding, + selectTileBoxHeight, + COLOR_PANEL_LIGHT + ); + selectTileBg.setOrigin(0, 0); + selectTileBg.setDepth(201); + selectTileBg.setInteractive(); + selectTileBg.on("pointerdown", () => this.selectTile(objectTemplate)); + + this.selectTileBgMap[objectTemplate.id] = selectTileBg; + + const selectTileTopRight = selectTileBg.getTopRight(); + const selectTileTopLeft = selectTileBg.getTopLeft(); + + // Create a sprite and add it to the list .. if there are multiple tiles we can cycle through them on mouseover + const selectTileText = this.add.text( + selectTileTopLeft.x + selectTileSpriteOffset, + selectTileTopLeft.y + selectTileSpriteOffset, + objectTemplate.name, + { + fontFamily: "Font Awesome Regular", + color: COLOR_SELECT_TILE_TEXT, + font: "16px", + } + ); + selectTileText.setOrigin(0, 0); + selectTileText.setDepth(202); + const selectTileSprite = this.add.sprite( + selectTileTopRight.x - + this.renderConfig.TileSize / 2.0 - + selectTileSpriteOffset, + selectTileTopRight.y + + this.renderConfig.TileSize / 2.0 + + selectTileSpriteOffset, + this.grenderer.getTilingImage(objectTemplate, -1, -1) + ); + selectTileSprite.setOrigin(0.5, 0.5); + selectTileSprite.setDisplaySize( + this.renderConfig.TileSize * objectTemplate.scale, + this.renderConfig.TileSize * objectTemplate.scale + ); + selectTileSprite.setTint( + Phaser.Display.Color.GetColor( + objectTemplate.color.r * 255, + objectTemplate.color.g * 255, + objectTemplate.color.b * 255 + ) + ); + selectTileSprite.setDepth(202); + + o++; + } + } + } + + displayError = (message, error) => { + this.onDisplayMessage(message, "error", error); + }; + + init = (data) => { + this.gdy = data.gdy; + + this.onDisplayMessage = data.onDisplayMessage; + this.editorStateHandler = data.editorStateHandler; + this.avatarObject = this.gdy.Environment.Player.AvatarObject; + this.renderConfig = data.rendererConfig; + this.rendererName = data.rendererName; + + if (this.renderConfig.Type === "BLOCK_2D") { + this.grenderer = new Block2DRenderer( + this, + this.rendererName, + this.renderConfig, + this.avatarObject + ); + } else if (this.renderConfig.Type === "SPRITE_2D") { + this.grenderer = new Sprite2DRenderer( + this, + this.rendererName, + this.renderConfig, + this.avatarObject + ); + } + + this.renderData = { + objects: {}, + }; + + this.currentTool = "place"; + }; + + updateState = (state) => { + const objectList = []; + + for (const objectsAtLocation in state.objects) { + for (const object in state.objects[objectsAtLocation]) { + objectList.push(state.objects[objectsAtLocation][object]); + } + } + + const newObjectIds = objectList.map((object) => { + return object.id; + }); + + this.grenderer.beginUpdate(objectList, state); + + objectList.forEach((object) => { + const objectTemplateName = object.name + object.renderTileId; + if (object.id in this.renderData.objects) { + const currentObjectData = this.renderData.objects[object.id]; + this.grenderer.updateObject( + currentObjectData.sprite, + object.name, + objectTemplateName, + object.location.x, + object.location.y, + object.orientation + ); + + this.renderData.objects[object.id] = { + ...currentObjectData, + object, + }; + } else { + const sprite = this.grenderer.addObject( + object.name, + objectTemplateName, + object.location.x, + object.location.y, + object.orientation + ); + + this.renderData.objects[object.id] = { + object, + sprite, + }; + } + }); + + for (const k in this.renderData.objects) { + const id = this.renderData.objects[k].object.id; + if (!newObjectIds.includes(id)) { + if(this.renderData.objects[k].sprite) { + this.renderData.objects[k].sprite.destroy(); + } + delete this.renderData.objects[k]; + } + } + + this.editorGridBounds = { + origX: this.grenderer.getCenteredX(-3.5), + origY: this.grenderer.getCenteredY(-3.5), + x: this.grenderer.getCenteredX(state.minx - 3.5), + y: this.grenderer.getCenteredY(state.miny - 3.5), + width: (state.gridWidth + 6) * this.renderConfig.TileSize, + height: (state.gridHeight + 6) * this.renderConfig.TileSize, + }; + + if (this.grid) { + this.grid.destroy(); + } + + this.grid = this.add.grid( + this.editorGridBounds.x, + this.editorGridBounds.y, + this.editorGridBounds.width, + this.editorGridBounds.height, + this.renderConfig.TileSize, + this.renderConfig.TileSize + ); + + this.grid.setOutlineStyle(COLOR_FOREGROUND, 0.2); + this.grid.setDepth(50); + this.grid.setOrigin(0, 0); + + this.grid.setInteractive(); + this.grid.on("pointermove", (pointer) => { + this.mouseMoved(pointer.x, pointer.y); + }); + + this.editorContainer.add(this.grid); + + + this.editorContainer.setPosition( + this.editorCenterX, + this.editorCenterY + ); + + this.editorContainer.sort("depth"); + }; + + selectTile = (objectTemplate) => { + ///if (this.currentTool !== "place") { + this.selectTool("place"); + //} + this.selectedTile = objectTemplate; + + if (this.placeTileOverlay) { + this.placeTileOverlay.destroy(); + } + + this.placeTileOverlay = this.add.sprite( + this.editorGridLocation.x, + this.editorGridLocation.y, + this.selectedTile.id + ); + this.placeTileOverlay.on("pointerdown", this.handlePlaceAction); + this.editorContainer.add(this.placeTileOverlay); + + + this.placeTileOverlay.setTexture( + this.grenderer.getTilingImage(objectTemplate, -1, -1) + ); + + this.placeTileOverlay.setDepth(101); + this.placeTileOverlay.setAlpha(0.5); + this.placeTileOverlay.setOrigin(0.5, 0.5); + this.placeTileOverlay.setInteractive(); + this.placeTileOverlay.setDisplaySize( + objectTemplate.scale * this.renderConfig.TileSize, + objectTemplate.scale * this.renderConfig.TileSize + ); + this.placeTileOverlay.setTint( + Phaser.Display.Color.GetColor( + objectTemplate.color.r * 255, + objectTemplate.color.g * 255, + objectTemplate.color.b * 255 + ) + ); + + for (const selectTileBgId in this.selectTileBgMap) { + const selectTileBg = this.selectTileBgMap[selectTileBgId]; + + if (selectTileBgId === objectTemplate.id) { + selectTileBg.setStrokeStyle(3, COLOR_SELECT_TILE_HIGHLIGHTED); + } else { + selectTileBg.setStrokeStyle(0); + } + } + }; + + selectTool = (toolName) => { + this.currentTool = toolName; + switch (this.currentTool) { + case "move": + this.selectMoveToolBg.setStrokeStyle(3, COLOR_SELECT_TILE_HIGHLIGHTED); + //this.selectSelectToolBg.setStrokeStyle(0); + this.selectPlaceToolBg.setStrokeStyle(0); + this.selectRectangle.setActive(false).setVisible(false); + this.placeRectangle.setActive(false).setVisible(false); + if (this.placeTileOverlay) { + this.placeTileOverlay.destroy(); + } + this.selectedTile = null; + for (const selectTileBgId in this.selectTileBgMap) { + this.selectTileBgMap[selectTileBgId].setStrokeStyle(0); + } + break; + case "select": + this.selectMoveToolBg.setStrokeStyle(0); + // this.selectSelectToolBg.setStrokeStyle( + // 3, + // COLOR_SELECT_TILE_HIGHLIGHTED + // ); + this.selectPlaceToolBg.setStrokeStyle(0); + this.selectRectangle.setActive(true).setVisible(true); + this.placeRectangle.setActive(false).setVisible(false); + if (this.placeTileOverlay) { + this.placeTileOverlay.destroy(); + } + this.selectedTile = null; + for (const selectTileBgId in this.selectTileBgMap) { + this.selectTileBgMap[selectTileBgId].setStrokeStyle(0); + } + break; + case "place": + this.selectMoveToolBg.setStrokeStyle(0); + //this.selectSelectToolBg.setStrokeStyle(0); + this.selectPlaceToolBg.setStrokeStyle(3, COLOR_SELECT_TILE_HIGHLIGHTED); + this.selectRectangle.setActive(false).setVisible(false); + this.placeRectangle.setVisible(true).setActive(true); + if (this.placeTileOverlay) { + this.placeTileOverlay.destroy(); + } + break; + default: + break; + } + }; + + handlePlaceAction = (pointer) => { + if (pointer.rightButtonDown()) { + this.removeObject(); + } else { + this.placeObject(); + } + }; + + removeObject = () => { + this.editorStateHandler.removeTile( + this.editorGridLocation.relX - 3, + this.editorGridLocation.relY - 3 + ); + }; + + placeObject = () => { + if (this.selectedTile) { + this.editorStateHandler.addTile( + this.editorGridLocation.relX - 3, + this.editorGridLocation.relY - 3, + this.selectedTile.name, + 0, + "NONE" + ); + } + }; + + selectObject = () => {}; + + mouseMoved = (x, y) => { + const editorX = x - this.editorCenterX; + const editorY = y - this.editorCenterY; + + if ( + editorX >= this.editorGridBounds.x && + editorY >= this.editorGridBounds.y && + editorX < this.editorGridBounds.x + this.editorGridBounds.width && + editorY < this.editorGridBounds.y + this.editorGridBounds.height + ) { + // Calculate grid location + this.editorGridLocation = { + relX: Math.floor( + (editorX - this.editorGridBounds.origX) / this.renderConfig.TileSize + ), + relY: Math.floor( + (editorY - this.editorGridBounds.origY) / this.renderConfig.TileSize + ), + x: Math.floor( + (editorX - this.editorGridBounds.x) / this.renderConfig.TileSize + ), + y: Math.floor( + (editorY - this.editorGridBounds.y) / this.renderConfig.TileSize + ), + }; + + switch (this.currentTool) { + case "move": + if (this.input.activePointer.isDown) { + if (this.origDragPoint) { + // move the camera by the amount the mouse has moved since last update + this.editorCenterX += + this.input.activePointer.position.x - this.origDragPoint.x; + this.editorCenterY += + this.input.activePointer.position.y - this.origDragPoint.y; + + this.editorContainer.setPosition( + this.editorCenterX, + this.editorCenterY + ); + } // set new drag origin to current position + this.origDragPoint = this.input.activePointer.position.clone(); + } else { + this.origDragPoint = null; + } + break; + case "select": + this.selectRectangle.setPosition( + this.editorGridBounds.x + + this.editorGridLocation.x * this.renderConfig.TileSize, + this.editorGridBounds.y + + this.editorGridLocation.y * this.renderConfig.TileSize + ); + break; + case "place": + if (this.input.activePointer.isDown) { + this.handlePlaceAction(this.input.activePointer); + } + + this.placeRectangle.setPosition( + this.editorGridBounds.x + + this.editorGridLocation.x * this.renderConfig.TileSize, + this.editorGridBounds.y + + this.editorGridLocation.y * this.renderConfig.TileSize + ); + if (this.placeTileOverlay) { + this.placeTileOverlay.setPosition( + this.editorGridBounds.x + + this.editorGridLocation.x * this.renderConfig.TileSize + this.renderConfig.TileSize/2.0, + this.editorGridBounds.y + + this.editorGridLocation.y * this.renderConfig.TileSize + this.renderConfig.TileSize/2.0 + ); + } + break; + default: + break; + } + } + }; + + configureEditGrid = () => { + + + this.selectRectangle = this.add.rectangle( + 0, + 0, + this.renderConfig.TileSize, + this.renderConfig.TileSize + ); + this.selectRectangle.setStrokeStyle(2, COLOR_SELECT, 0.5); + this.selectRectangle.setDepth(100); + this.selectRectangle.setOrigin(0, 0); + this.selectRectangle.setInteractive(); + this.selectRectangle.on("pointerdown", () => this.selectObject()); + + this.placeRectangle = this.add.rectangle( + 0, + 0, + this.renderConfig.TileSize, + this.renderConfig.TileSize + ); + this.placeRectangle.setStrokeStyle(2, COLOR_PLACE, 0.5); + this.placeRectangle.setDepth(1000); + this.placeRectangle.setOrigin(0, 0); + this.placeRectangle.setVisible(false); + this.placeRectangle.setInteractive(); + this.placeRectangle.on("pointerdown", this.handlePlaceAction); + + // this.grid = this.add.grid( + // this.editorGridBounds.x, + // this.editorGridBounds.y, + // this.editorGridBounds.width, + // this.editorGridBounds.height, + // this.renderConfig.TileSize, + // this.renderConfig.TileSize + // ); + + // this.grid.setOutlineStyle(COLOR_FOREGROUND, 0.2); + // this.grid.setDepth(50); + // this.grid.setOrigin(0, 0); + + // this.grid.setInteractive(); + // this.grid.on("pointermove", (pointer) => { + // this.mouseMoved(pointer.x, pointer.y); + // }); + + this.editorContainer.add(this.selectRectangle); + this.editorContainer.add(this.placeRectangle); + // this.editorContainer.add(this.grid); + }; + + preload() { + + this.input.mouse.disableContextMenu(); + + this.loadingText = this.add.text( + this.cameras.main.width / 2, + this.cameras.main.height / 2, + "Loading Level Editor", + { + fontFamily: "Droid Sans Mono", + fill: COLOR_LOADING_TEXT, + align: "center", + } + ); + + this.loadingText.setX(this.cameras.main.width / 2); + this.loadingText.setY(this.cameras.main.height / 2); + this.loadingText.setOrigin(0.5, 0.5); + + if (this.grenderer) { + this.grenderer.loadTemplates(this.gdy.Objects); + } + } + + create() { + + this.loadingText.destroy(); + this.loaded = true; + + this.editorContainer = this.add.container( + this.editorCenterX, + this.editorCenterY + ); + + if (this.grenderer) { + const state = this.editorStateHandler.getState(); + this.grenderer.init( + state.gridWidth, + state.gridHeight, + this.editorContainer + ); + this.updateState(state); + this.configureEditGrid(); + this.createTileMenu(); + } + } + + update() { + if (!this.loaded) { + this.loadingText.setX(this.cameras.main.width / 2); + this.loadingText.setY(this.cameras.main.height / 2); + this.loadingText.setOrigin(0.5, 0.5); + } else { + if (this.grenderer) { + const state = this.editorStateHandler.getState(); + if (state && this.stateHash !== state.hash) { + this.stateHash = state.hash; + if(state.hash === 0 || this.levelId !== state.levelId) { + this.editorCenterX = 0; + this.editorCenterY = 0; + this.grenderer.recenter(state.gridWidth, state.gridHeight); + } + this.levelId = state.levelId; + this.updateState(state); + } + } + } + } +} + +export default EditorScene; diff --git a/js/griddlyjs-app/src/renderer/level_player/Player.js b/js/griddlyjs-app/src/renderer/level_player/Player.js new file mode 100644 index 000000000..c2c1afa66 --- /dev/null +++ b/js/griddlyjs-app/src/renderer/level_player/Player.js @@ -0,0 +1,68 @@ +import { React, Component } from "react"; +import Phaser from "phaser"; + +import HumanPlayerScene from "./scenes/HumanPlayerScene"; +import LoadingScene from "../LoadingScene"; + +class Player extends Component { + updateCanvasSize = () => { + this.game.scale.resize(this.props.width, this.props.height); + }; + + componentDidMount() { + const config = { + type: Phaser.AUTO, + parent: this.divElement, + backgroundColor: "#000000", + scale: { + expandParent: false, + }, + scene: [LoadingScene, HumanPlayerScene], + }; + + this.game = new Phaser.Game(config); + + this.updateCanvasSize(); + } + + componentDidUpdate(prevProps) { + this.updateCanvasSize(); + + if (this.props.griddlyjs) { + if (prevProps.gdyHash === 0 && this.props.gdy ) { + this.game.scene.remove("LoadingScene"); + this.game.scene.start("HumanPlayerScene", { + gdy: this.props.gdy, + rendererConfig: this.props.rendererConfig, + rendererName: this.props.rendererName, + griddlyjs: this.props.griddlyjs, + getTrajectory: () => this.props.trajectory, + onDisplayMessage: this.props.onDisplayMessage, + onTrajectoryComplete: this.props.onTrajectoryComplete, + }); + } else if (prevProps.gdyHash !== this.props.gdyHash) { + this.game.scene.getScene("HumanPlayerScene").scene.restart({ + gdy: this.props.gdy, + rendererConfig: this.props.rendererConfig, + rendererName: this.props.rendererName, + griddlyjs: this.props.griddlyjs, + getTrajectory: () => this.props.trajectory, + onDisplayMessage: this.props.onDisplayMessage, + onTrajectoryComplete: this.props.onTrajectoryComplete, + }); + } + } + } + + render() { + return ( +
{ + this.divElement = divElement; + }} + >
+ ); + } +} + +export default Player; diff --git a/js/griddlyjs-app/src/renderer/level_player/scenes/HumanPlayerScene.js b/js/griddlyjs-app/src/renderer/level_player/scenes/HumanPlayerScene.js new file mode 100644 index 000000000..1cf0d2d8c --- /dev/null +++ b/js/griddlyjs-app/src/renderer/level_player/scenes/HumanPlayerScene.js @@ -0,0 +1,749 @@ +import Phaser from "phaser"; +import Block2DRenderer from "../../Block2DRenderer"; +import Sprite2DRenderer from "../../Sprite2DRenderer"; +import { + COLOR_LOADING_TEXT, + COLOR_PANEL_DARK, + COLOR_PANEL_LIGHT, + COLOR_PANEL_LIGHTER, + COLOR_RECORDING_RECORD_TEXT, + COLOR_RECORDING_BLINK_TEXT, + COLOR_RECORDING_PLAY_TEXT, + COLOR_RECORDING_STOP_TEXT, + COLOR_RECORDING_DISABLED_TEXT, +} from "../../ThemeConsts"; + +const trajectoryMenuHeight = 45; + +const recordingButtonsOffsetX = 30; + +const recordingButtonPaddingY = 5; +const recordingButtonPaddingX = 5; + +const recordingButtonWidth = 35; +const recordingButtonHeight = 35; + +class HumanPlayerScene extends Phaser.Scene { + constructor() { + super("HumanPlayerScene"); + + this.stateHash = 0; + this.loaded = false; + this.defaultTileSize = 24; + this.levelStringOrId = ""; + + this.keyboardIntervals = new Map(); + } + + createTrajectoryMenu = () => { + const trajectoryMenu = this.add.rectangle( + 0, + 0, + this.cameras.main.width, + trajectoryMenuHeight, + COLOR_PANEL_DARK + ); + trajectoryMenu.setOrigin(0, 0); + + const recordingButtonY = + recordingButtonPaddingY + recordingButtonHeight / 2; + const startRecordingButtonX = + recordingButtonsOffsetX + recordingButtonWidth / 2; + const playTrajectoryButtonX = + recordingButtonsOffsetX + + 2 * recordingButtonPaddingX + + recordingButtonWidth + + recordingButtonWidth / 2; + const stopButtonX = + this.cameras.main.width - recordingButtonsOffsetX - recordingButtonWidth; + + // Start Recording Button + this.startRecordingBg = this.add.rectangle( + startRecordingButtonX, + recordingButtonY, + recordingButtonWidth, + recordingButtonHeight, + COLOR_PANEL_LIGHT + ); + // this.startRecordingBg.setOrigin(0,0); + this.startRecordingBg.setDepth(10); + this.startRecordingBg.setInteractive(); + this.startRecordingBg.on("pointerdown", () => this.beginRecording()); + this.startRecordingText = this.add + .text(startRecordingButtonX, recordingButtonY, "\uf111", { + fontFamily: "Font Awesome Solid", + color: COLOR_RECORDING_RECORD_TEXT, + fontSize: "24px", + }) + .setDepth(11) + .setOrigin(0.5, 0.5); + + // Play Trajectory Button + this.playTrajectoryBg = this.add.rectangle( + playTrajectoryButtonX, + recordingButtonY, + recordingButtonWidth, + recordingButtonHeight, + COLOR_PANEL_LIGHT + ); + this.playTrajectoryBg.setDepth(10); + this.playTrajectoryBg.setInteractive(); + this.playTrajectoryBg.on("pointerdown", () => this.beginPlayback()); + this.playTrajectoryText = this.add + .text(playTrajectoryButtonX, recordingButtonY, "\uf04b", { + fontFamily: "Font Awesome Solid", + color: COLOR_RECORDING_PLAY_TEXT, + fontSize: "24px", + }) + .setDepth(11) + .setOrigin(0.5, 0.5); + + // Stop Button + this.stopBg = this.add.rectangle( + stopButtonX, + recordingButtonY, + recordingButtonWidth, + recordingButtonHeight, + COLOR_PANEL_LIGHT + ); + this.stopBg.setDepth(10); + this.stopBg.setInteractive(); + this.stopBg.on("pointerdown", () => this.stopRecordingOrPlayback()); + this.stopText = this.add + .text(stopButtonX, recordingButtonY, "\uf04d", { + fontFamily: "Font Awesome Solid", + color: COLOR_RECORDING_STOP_TEXT, + fontSize: "24px", + }) + .setDepth(11) + .setOrigin(0.5, 0.5); + }; + + updateTrajectoryMenu = () => { + const hasTrajectories = this.currentTrajectoryBuffer ? true : false; + if (this.isRecordingTrajectory) { + this.startRecordingBg.setFillStyle(COLOR_PANEL_LIGHTER); + this.startRecordingText.setColor( + this.blink ? COLOR_RECORDING_RECORD_TEXT : COLOR_RECORDING_BLINK_TEXT + ); + + this.playTrajectoryText.setColor(COLOR_RECORDING_DISABLED_TEXT); + this.playTrajectoryBg.setFillStyle(COLOR_PANEL_DARK); + + this.stopBg.setFillStyle(COLOR_PANEL_LIGHT); + this.stopText.setColor(COLOR_RECORDING_STOP_TEXT); + } else if (this.isRunningTrajectory) { + this.startRecordingBg.setFillStyle(COLOR_PANEL_DARK); + this.startRecordingText.setColor(COLOR_RECORDING_DISABLED_TEXT); + + this.playTrajectoryText.setColor(COLOR_RECORDING_PLAY_TEXT); + this.playTrajectoryBg.setFillStyle(COLOR_PANEL_LIGHTER); + + this.stopBg.setFillStyle(COLOR_PANEL_LIGHT); + this.stopText.setColor(COLOR_RECORDING_STOP_TEXT); + } else if (hasTrajectories) { + this.startRecordingBg.setFillStyle(COLOR_PANEL_LIGHT); + this.startRecordingText.setColor(COLOR_RECORDING_RECORD_TEXT); + + this.playTrajectoryText.setColor(COLOR_RECORDING_PLAY_TEXT); + this.playTrajectoryBg.setFillStyle(COLOR_PANEL_LIGHT); + + this.stopBg.setFillStyle(COLOR_PANEL_LIGHT); + this.stopText.setColor(COLOR_RECORDING_DISABLED_TEXT); + } else { + this.startRecordingBg.setFillStyle(COLOR_PANEL_LIGHT); + this.startRecordingText.setColor(COLOR_RECORDING_RECORD_TEXT); + + this.playTrajectoryText.setColor(COLOR_RECORDING_DISABLED_TEXT); + this.playTrajectoryBg.setFillStyle(COLOR_PANEL_DARK); + + this.stopBg.setFillStyle(COLOR_PANEL_LIGHT); + this.stopText.setColor(COLOR_RECORDING_DISABLED_TEXT); + } + }; + + createModals = () => { + // Set the modals to invisible + this.variableDebugModalActive = false; + this.controlsModalActive = false; + + // Get all the global variables + this.globalVariableDebugText = this.getGlobalVariableDebugText(); + + this.variableDebugModal = this.add.text( + this.cameras.main.width / 2, + this.cameras.main.height / 5, + this.globalVariableDebugText + ); + this.variableDebugModal.setBackgroundColor("#000000AA"); + this.variableDebugModal.setDepth(100); + this.variableDebugModal.setOrigin(0, 0); + this.variableDebugModal.setVisible(false); + this.variableDebugModal.setFontSize(12); + + const actionDescription = []; + const actionNames = this.griddlyjs.getActionNames(); + actionNames.forEach((actionName) => { + actionDescription.push(actionName + ": "); + this.keyMap.forEach((actionMapping, key) => { + if (actionMapping.actionName === actionName) + actionDescription.push( + " " + String.fromCharCode(key) + ": " + actionMapping.description + ); + }); + actionDescription.push(""); + }); + + this.controlsModal = this.add.text( + this.cameras.main.width / 2, + this.cameras.main.height / 5, + [ + "Name: " + this.gdy.Environment.Name, + "Description: " + this.gdy.Environment.Description, + "", + "Actions:", + "", + ...actionDescription, + ] + ); + this.controlsModal.setWordWrapWidth(this.cameras.main.width / 2); + this.controlsModal.setBackgroundColor("#000000AA"); + this.controlsModal.setDepth(100); + this.controlsModal.setOrigin(0.5, 0); + this.controlsModal.setVisible(false); + }; + + createHintsModal = () => { + this.hintsModal = this.add.text( + this.cameras.main.width / 2, + this.cameras.main.height - 20, + [ + "Press 'P' to show action mapping and 'I' to show environment variables.", + ] + ); + this.hintsModal.setBackgroundColor("#000000AA"); + this.hintsModal.setDepth(100); + this.hintsModal.setOrigin(0.5, 0); + this.hintsModal.setVisible(true); + this.hintsModal.setFontSize(10); + }; + + init = (data) => { + try { + // Functions to interact with the environment + this.griddlyjs = data.griddlyjs; + + // Data about the environment + this.gdy = data.gdy; + this.onDisplayMessage = data.onDisplayMessage; + this.onTrajectoryComplete = data.onTrajectoryComplete; + this.getTrajectory = data.getTrajectory; + + this.gridHeight = this.griddlyjs.getHeight(); + this.gridWidth = this.griddlyjs.getWidth(); + + this.avatarObject = this.gdy.Environment.Player.AvatarObject; + this.rendererName = data.rendererName; + this.renderConfig = data.rendererConfig; + + if (this.renderConfig.Type === "BLOCK_2D") { + this.grenderer = new Block2DRenderer( + this, + this.rendererName, + this.renderConfig, + this.avatarObject + ); + } else if (this.renderConfig.Type === "SPRITE_2D") { + this.grenderer = new Sprite2DRenderer( + this, + this.rendererName, + this.renderConfig, + this.avatarObject + ); + } + } catch (e) { + this.displayError("Cannot load GDY file.", e); + } + + this.renderData = { + objects: {}, + }; + }; + + displayError = (message, error) => { + this.onDisplayMessage(message, "error", error); + }; + + displayWarning = (message, error) => { + this.onDisplayMessage(message, "warning", error); + }; + + updateState = (state) => { + const newObjectIds = state.objects.map((object) => { + return object.id; + }); + + this.grenderer.recenter( + this.griddlyjs.getWidth(), + this.griddlyjs.getHeight() + ); + + this.grenderer.beginUpdate(state.objects); + + state.objects.forEach((object) => { + const objectTemplateName = object.name + object.renderTileId; + if (object.id in this.renderData.objects) { + const currentObjectData = this.renderData.objects[object.id]; + this.grenderer.updateObject( + currentObjectData.sprite, + object.name, + objectTemplateName, + object.location.x, + object.location.y, + object.orientation + ); + + this.renderData.objects[object.id] = { + ...currentObjectData, + object, + }; + } else { + const sprite = this.grenderer.addObject( + object.name, + objectTemplateName, + object.location.x, + object.location.y, + object.orientation + ); + + this.renderData.objects[object.id] = { + object, + sprite, + }; + } + }); + + for (const k in this.renderData.objects) { + const id = this.renderData.objects[k].object.id; + if (!newObjectIds.includes(id)) { + this.renderData.objects[k].sprite.destroy(); + delete this.renderData.objects[k]; + } + } + }; + + toMovementKey(vector) { + return `${vector.x},${vector.y}`; + } + + getGlobalVariableDebugText() { + const globalVariables = this.griddlyjs.getGlobalVariables(); + + const globalVariableDescription = []; + const playerVariableDescription = []; + for (const variableName in globalVariables) { + const variableData = globalVariables[variableName]; + if (Object.keys(variableData).length === 1) { + // We have a global variable + const variableValue = variableData[0]; + globalVariableDescription.push(variableName + ": " + variableValue); + } else { + // We have a player variable + if (this.griddlyjs.playerCount === 1) { + const variableValue = variableData[1]; + playerVariableDescription.push(variableName + ": " + variableValue); + } else { + let variableValues = ""; + for (let p = 0; p < this.griddlyjs.playerCount; p++) { + const variableValue = variableData[p + 1]; + variableValues += "\t" + (p + 1) + ": " + variableValue; + } + + playerVariableDescription.push(variableName + ":" + variableValues); + } + } + } + + return [ + "Global Variables:", + ...globalVariableDescription, + "", + "Player Variables:", + ...playerVariableDescription, + ]; + } + + updateModals() { + if (this.variableDebugModalActive) { + this.variableDebugModal.setText(this.globalVariableDebugText); + this.variableDebugModal.setFontFamily("Droid Sans Mono"); + this.variableDebugModal.setPosition(0, 0); + this.variableDebugModal.setWordWrapWidth(this.cameras.main.width / 2); + } + + if (this.controlsModalActive) { + this.controlsModal.setWordWrapWidth(this.cameras.main.width / 2); + this.controlsModal.setFontFamily("Droid Sans Mono"); + this.controlsModal.setPosition( + this.cameras.main.width / 2, + this.cameras.main.height / 5 + ); + } + } + + toggleVariableDebugModal() { + this.variableDebugModalActive = !this.variableDebugModalActive; + this.variableDebugModal.setVisible(this.variableDebugModalActive); + } + + toggleControlsModal() { + this.controlsModalActive = !this.controlsModalActive; + this.controlsModal.setVisible(this.controlsModalActive); + } + + setupKeyboardMapping = () => { + const actionInputMappings = this.griddlyjs.getActionInputMappings(); + const actionNames = this.griddlyjs.getActionNames(); + + const actionKeyOrder = [ + Phaser.Input.Keyboard.KeyCodes.THREE, + Phaser.Input.Keyboard.KeyCodes.TWO, + Phaser.Input.Keyboard.KeyCodes.ONE, + Phaser.Input.Keyboard.KeyCodes.L, + Phaser.Input.Keyboard.KeyCodes.O, + Phaser.Input.Keyboard.KeyCodes.M, + Phaser.Input.Keyboard.KeyCodes.K, + Phaser.Input.Keyboard.KeyCodes.N, + Phaser.Input.Keyboard.KeyCodes.J, + Phaser.Input.Keyboard.KeyCodes.U, + Phaser.Input.Keyboard.KeyCodes.B, + Phaser.Input.Keyboard.KeyCodes.H, + Phaser.Input.Keyboard.KeyCodes.Y, + Phaser.Input.Keyboard.KeyCodes.V, + Phaser.Input.Keyboard.KeyCodes.G, + Phaser.Input.Keyboard.KeyCodes.T, + Phaser.Input.Keyboard.KeyCodes.C, + Phaser.Input.Keyboard.KeyCodes.F, + Phaser.Input.Keyboard.KeyCodes.R, + Phaser.Input.Keyboard.KeyCodes.Q, + Phaser.Input.Keyboard.KeyCodes.E, + ]; + + const movementKeySets = [ + { + "0,-1": Phaser.Input.Keyboard.KeyCodes.UP, + "-1,0": Phaser.Input.Keyboard.KeyCodes.LEFT, + "0,1": Phaser.Input.Keyboard.KeyCodes.DOWN, + "1,0": Phaser.Input.Keyboard.KeyCodes.RIGHT, + }, + { + "0,-1": Phaser.Input.Keyboard.KeyCodes.W, + "-1,0": Phaser.Input.Keyboard.KeyCodes.A, + "0,1": Phaser.Input.Keyboard.KeyCodes.S, + "1,0": Phaser.Input.Keyboard.KeyCodes.D, + }, + ]; + + this.input.keyboard.on("keydown-P", (event) => { + this.toggleControlsModal(); + }); + + this.input.keyboard.on("keydown-I", (event) => { + this.toggleVariableDebugModal(); + }); + + this.keyMap = new Map(); + + actionNames.forEach((actionName, actionTypeId) => { + const actionMapping = actionInputMappings[actionName]; + if (!actionMapping.internal) { + const inputMappings = Object.entries(actionMapping.inputMappings); + console.log(inputMappings); + + const actionDirections = new Set(); + inputMappings.forEach((inputMapping) => { + // check that all the vectorToDest are different + const mapping = inputMapping[1]; + actionDirections.add(this.toMovementKey(mapping.vectorToDest)); + }); + + const directional = actionDirections.size !== 1; + + if (directional && movementKeySets.length > 0) { + // pop movement keys + const movementKeys = movementKeySets.pop(); + inputMappings.forEach((inputMapping) => { + const actionId = Number(inputMapping[0]); + const mapping = inputMapping[1]; + + let key; + if (this.toMovementKey(mapping.vectorToDest) in movementKeys) { + key = movementKeys[this.toMovementKey(mapping.vectorToDest)]; + } else if ( + this.toMovementKey(mapping.orientationVector) in movementKeys + ) { + key = movementKeys[this.toMovementKey(mapping.orientationVector)]; + } + + const mappedKey = this.input.keyboard.addKey(key, false); + mappedKey.on("down", this.processUserKeydown); + mappedKey.on("up", this.processUserKeyup); + + this.keyMap.set(key, { + actionName, + actionTypeId, + actionId, + description: mapping.description, + }); + }); + } else { + // We have an action Key + + inputMappings.forEach((inputMapping) => { + const key = actionKeyOrder.pop(); + + const actionId = Number(inputMapping[0]); + const mapping = inputMapping[1]; + + const mappedKey = this.input.keyboard.addKey(key, false); + mappedKey.on("down", this.processUserKeydown); + mappedKey.on("up", this.processUserKeyup); + + this.keyMap.set(key, { + actionName, + actionTypeId, + actionId, + description: mapping.description, + }); + }); + } + } + }); + + // When the mouse leaves the window we stop collecting keys + this.input.on(Phaser.Input.Events.POINTER_DOWN_OUTSIDE, () => { + this.input.keyboard.enabled = false; + }); + + // When we click back in the scene we collect keys + this.input.on(Phaser.Input.Events.POINTER_DOWN, () => { + document.activeElement.blur(); + this.input.keyboard.enabled = true; + }); + }; + + stopRecordingOrPlayback = () => { + if (this.isRecordingTrajectory) { + this.endRecording(); + } + + if (this.isRunningTrajectory) { + this.endPlayback(); + } + }; + + doBlink() { + setTimeout(() => { + this.blink = !this.blink; + if (this.isRecordingTrajectory) { + this.doBlink(); + } + }, 500); + } + + beginRecording = () => { + if (this.isRecordingTrajectory) { + this.endRecording(); + return; + } + this.resetLevel(); + this.isRecordingTrajectory = true; + this.doBlink(); + this.currentTrajectoryBuffer = { + steps: [], + seed: 100, + }; + }; + + endRecording = () => { + this.isRecordingTrajectory = false; + this.onTrajectoryComplete(this.currentTrajectoryBuffer); + this.resetLevel(); + }; + + beginPlayback = () => { + this.currentTrajectoryBuffer = this.getTrajectory(); + this.trajectoryActionIdx = 0; + this.isRunningTrajectory = true; + this.resetLevel(); + }; + + endPlayback = () => { + this.trajectoryActionIdx = 0; + this.isRunningTrajectory = false; + this.resetLevel(); + }; + + resetLevel = (seed = 100) => { + this.griddlyjs.seed(seed); + this.griddlyjs.reset(); + this.currentState = this.griddlyjs.getState(); + }; + + processTrajectory = () => { + if (this.currentTrajectoryBuffer.steps.length === 0) { + this.isRunningTrajectory = false; + return; + } + + if (!this.cooldown) { + this.cooldown = true; + setTimeout(() => { + this.cooldown = false; + }, 20); + + const action = + this.currentTrajectoryBuffer.steps[this.trajectoryActionIdx++]; + + const stepResult = this.griddlyjs.step(action); + + if (stepResult.reward > 0) { + console.log("Reward: ", stepResult.reward); + } + + this.currentState = this.griddlyjs.getState(); + + if (stepResult.terminated) { + this.endPlayback(); + } + + if ( + this.trajectoryActionIdx === this.currentTrajectoryBuffer.steps.length + ) { + this.endPlayback(); + } + } + }; + + doUserAction = (action) => { + const stepResult = this.griddlyjs.step(action); + this.globalVariableDebugText = this.getGlobalVariableDebugText(); + + if (stepResult.reward > 0) { + console.log("Reward: ", stepResult.reward); + } + + this.currentState = this.griddlyjs.getState(); + if (stepResult.terminated) { + this.resetLevel(); + } + + if (this.isRecordingTrajectory) { + this.currentTrajectoryBuffer.steps.push(action); + if (stepResult.terminated) { + this.endRecording(); + } + } + }; + + processUserKeydown = (event) => { + if (!this.isRunningTrajectory) { + const actionMapping = this.keyMap.get(event.keyCode); + + const action = [actionMapping.actionTypeId, actionMapping.actionId]; + + this.doUserAction(action); + + if (this.keyboardIntervals.has(event.keyCode)) { + clearInterval(this.keyboardIntervals.get(event.keyCode)); + } + + this.keyboardIntervals.set( + event.keyCode, + setInterval(() => this.doUserAction(action), 100) + ); + } + }; + + processUserKeyup = (event) => { + if (this.keyboardIntervals.has(event.keyCode)) { + clearInterval(this.keyboardIntervals.get(event.keyCode)); + } + }; + + preload = () => { + const envName = this.gdy.Environment.Name; + + this.input.mouse.disableContextMenu(); + + this.loadingText = this.add.text( + this.cameras.main.width / 2, + this.cameras.main.height / 2, + "Loading assets for " + envName, + { + fontFamily: "Droid Sans Mono", + font: "32px", + fill: COLOR_LOADING_TEXT, + align: "center", + } + ); + + this.loadingText.setX(this.cameras.main.width / 2); + this.loadingText.setY(this.cameras.main.height / 2); + this.loadingText.setOrigin(0.5, 0.5); + if (this.grenderer) { + this.grenderer.loadTemplates(this.gdy.Objects); + } + }; + + create = () => { + console.log("Create"); + + this.loadingText.destroy(); + this.loaded = true; + + if (this.grenderer) { + this.mapping = this.setupKeyboardMapping(); + this.grenderer.init(this.gridWidth, this.gridHeight); + this.updateState(this.griddlyjs.getState()); + this.createModals(); + this.updateModals(); + this.createTrajectoryMenu(); + this.updateTrajectoryMenu(); + this.createHintsModal(); + } + }; + + update = () => { + if (!this.loaded) { + this.loadingText.setX(this.cameras.main.width / 2); + this.loadingText.setY(this.cameras.main.height / 2); + this.loadingText.setOrigin(0.5, 0.5); + } else { + if (this.grenderer) { + if ( + this.currentLevelStringOrId !== this.griddlyjs.getLevelStringOrId() + ) { + this.stopRecordingOrPlayback(); + this.currentLevelStringOrId = this.griddlyjs.getLevelStringOrId(); + this.currentState = this.griddlyjs.getState(); + this.currentTrajectoryBuffer = this.getTrajectory(); + } + + if (this.isRunningTrajectory) { + this.processTrajectory(); + } + + if (this.currentState && this.stateHash !== this.currentState.hash) { + this.stateHash = this.currentState.hash; + this.updateState(this.currentState); + } + + this.updateModals(); + this.updateTrajectoryMenu(); + } + } + }; +} + +export default HumanPlayerScene; diff --git a/js/griddlyjs-app/src/renderer/level_selector/LevelSelector.js b/js/griddlyjs-app/src/renderer/level_selector/LevelSelector.js new file mode 100644 index 000000000..bd682d0f9 --- /dev/null +++ b/js/griddlyjs-app/src/renderer/level_selector/LevelSelector.js @@ -0,0 +1,103 @@ +import { React, Component } from "react"; +import EditorStateHandler from "../../LevelEditorStateHandler"; +import Phaser from "phaser"; + +import { Col, Row } from "react-bootstrap"; +import LoadingScene from "../LoadingScene"; +import PreviewScene from "./scenes/LevelCarouselScene"; + +class LevelSelector extends Component { + updateCanvasSize = () => { + this.game.scale.resize(this.props.width, this.props.height); + }; + + componentDidMount() { + const config = { + type: Phaser.AUTO, + parent: this.divElement, + backgroundColor: "#000000", + scale: { + expandParent: false, + }, + scene: [LoadingScene, PreviewScene], + }; + + this.game = new Phaser.Game(config); + + this.stateHandlers = new Map(); + + this.updateCanvasSize(); + } + + displayError = (message, error) => { + this.props.onDisplayMessage(message, "error", error); + }; + + displayWarning = (message, error) => { + this.props.onDisplayMessage(message, "warning", error); + }; + + updateStateHandlers() { + this.stateHandlers.clear(); + this.props.gdy.Environment.Levels.forEach((levelString, idx) => { + const newStateHandler = new EditorStateHandler(); + try { + newStateHandler.loadGDY(this.props.gdy); + newStateHandler.loadLevelString(levelString); + } catch (error) { + this.displayError("Enable to load level" + idx); + } + this.stateHandlers.set(idx, newStateHandler); + }); + } + + componentDidUpdate(prevProps) { + this.updateCanvasSize(); + + if (prevProps.gdyHash === 0 && this.props.gdy) { + this.updateStateHandlers(); + + this.game.scene.remove("LoadingScene"); + this.game.scene.start("PreviewScene", { + gdy: this.props.gdy, + editorStateHandlers: this.stateHandlers, + rendererConfig: this.props.rendererConfig, + rendererName: this.props.rendererName, + onSelectLevel: this.props.onSelectLevel, + getSelectedLevelId: () => this.props.selectedLevelId, + }); + } else if (prevProps.gdyHash !== this.props.gdyHash) { + this.updateStateHandlers(); + + this.game.scene.getScene("PreviewScene").scene.restart({ + gdy: this.props.gdy, + editorStateHandlers: this.stateHandlers, + rendererConfig: this.props.rendererConfig, + rendererName: this.props.rendererName, + onSelectLevel: this.props.onSelectLevel, + getSelectedLevelId: () => this.props.selectedLevelId, + }); + } + } + + render() { + return ( + <> + + +
{ + this.divElement = divElement; + }} + >
+ +
+ + + + + ); + } +} + +export default LevelSelector; diff --git a/js/griddlyjs-app/src/renderer/level_selector/scenes/LevelCarouselScene.js b/js/griddlyjs-app/src/renderer/level_selector/scenes/LevelCarouselScene.js new file mode 100644 index 000000000..00a6c6c62 --- /dev/null +++ b/js/griddlyjs-app/src/renderer/level_selector/scenes/LevelCarouselScene.js @@ -0,0 +1,357 @@ +import Phaser from "phaser"; + +import Block2DRenderer from "../../Block2DRenderer"; +import Sprite2DRenderer from "../../Sprite2DRenderer"; +import { + COLOR_LOADING_TEXT, + COLOR_PANEL_LIGHT, + COLOR_SELECT_TILE_HIGHLIGHTED, + COLOR_PANEL_DARK, + COLOR_FOREGROUND, + COLOR_PANEL_LIGHTER, +} from "../../ThemeConsts"; + +const levelContainerHeight = 100; +const levelContainerWidth = 100; + +const levelContainerInternalPadding = 5; + +const levelContainerPaddingX = 10; +const levelContainerPaddingY = 10; + +const levelContainerSliderPaddingX = 5; +const levelContainerSliderPaddingY = 5; +const levelContainerSliderHeight = 20; + +const levelContainerSliderBarHeight = 14; +const levelContainerSliderBarPaddingX = 3; +const levelContainerSliderBarPaddingY = 3; + +class LevelCarouselScene extends Phaser.Scene { + constructor() { + super("PreviewScene"); + } + + init = (data) => { + this.gdy = data.gdy; + + this.onDisplayMessage = data.onDisplayMessage; + this.editorStateHandlers = data.editorStateHandlers; + this.avatarObject = this.gdy.Environment.Player.AvatarObject; + this.renderConfig = data.rendererConfig; + this.rendererName = data.rendererName; + this.getSelectedLevelId = data.getSelectedLevelId; + this.selectedLevelId = 0; + + this.onSelectLevel = data.onSelectLevel; + + this.carouselState = { + levels: [], + }; + + for (const [levelId, stateHandler] of this.editorStateHandlers) { + const levelState = stateHandler.getState(); + + // We want the level to fit in the selection box + const scaledTileSize = + (levelContainerHeight - levelContainerInternalPadding * 2) / + Math.max(levelState.gridWidth, levelState.gridHeight); + + const renderConfig = { + ...this.renderConfig, + TileSize: scaledTileSize, + }; + + let grenderer; + + if (this.renderConfig.Type === "BLOCK_2D") { + grenderer = new Block2DRenderer( + this, + this.rendererName, + renderConfig, + this.avatarObject, + false + ); + } else if (this.renderConfig.Type === "SPRITE_2D") { + grenderer = new Sprite2DRenderer( + this, + this.rendererName, + renderConfig, + this.avatarObject, + false + ); + } + + this.carouselState.levels.push({ + levelId: levelId, + state: levelState, + grenderer: grenderer, + }); + } + }; + + updateState = (carouselItem) => { + const objectList = []; + + const state = carouselItem.state; + const grenderer = carouselItem.grenderer; + + for (const objectsAtLocation in state.objects) { + for (const object in state.objects[objectsAtLocation]) { + objectList.push(state.objects[objectsAtLocation][object]); + } + } + + grenderer.beginUpdate(objectList, state); + + objectList.forEach((object) => { + const objectTemplateName = object.name + object.renderTileId; + + grenderer.addObject( + object.name, + objectTemplateName, + object.location.x, + object.location.y, + object.orientation + ); + }); + }; + + preload() { + this.input.mouse.disableContextMenu(); + + this.loadingText = this.add.text( + this.cameras.main.width / 2, + this.cameras.main.height / 2, + "Loading Levels", + { + fontFamily: "Droid Sans Mono", + fill: COLOR_LOADING_TEXT, + align: "center", + } + ); + + this.loadingText.setX(this.cameras.main.width / 2); + this.loadingText.setY(this.cameras.main.height / 2); + this.loadingText.setOrigin(0.5, 0.5); + + this.carouselState.levels.forEach((carouselItem) => { + carouselItem.grenderer.loadTemplates(this.gdy.Objects); + }); + } + + highlightSelectedLevel = (levelId) => { + this.carouselState.levels.forEach((carouselItem) => { + const selectLevelBg = carouselItem.selectLevelBg; + if (levelId === carouselItem.levelId) { + selectLevelBg.setStrokeStyle(3, COLOR_SELECT_TILE_HIGHLIGHTED); + } else { + selectLevelBg.setStrokeStyle(0); + } + }); + }; + + selectLevel = (levelId) => { + this.highlightSelectedLevel(levelId); + this.onSelectLevel(levelId); + }; + + updateCarousel = () => { + const selectLevelContainers = []; + this.carouselState.levels.forEach((carouselItem, idx) => { + const selectLevelX = + levelContainerPaddingX + + (levelContainerWidth + 2 * levelContainerPaddingX) * + carouselItem.levelId; + + const selectLevelContainer = this.add.container( + selectLevelX + levelContainerWidth / 2, + levelContainerPaddingY + levelContainerHeight / 2 + ); + const levelState = carouselItem.state; + + carouselItem.grenderer.init( + levelState.gridWidth, + levelState.gridHeight, + selectLevelContainer + ); + + this.updateState(carouselItem); + + const selectLevelBg = this.add.rectangle( + 0, + 0, + levelContainerWidth, + levelContainerHeight, + COLOR_PANEL_DARK + ); + + selectLevelBg.setDepth(-10); + selectLevelBg.setInteractive(); + selectLevelBg.on("pointerdown", () => + this.selectLevel(carouselItem.levelId) + ); + + this.carouselState.levels[idx].selectLevelBg = selectLevelBg; + + const levelIdText = this.add.text( + -levelContainerWidth/2, + -levelContainerHeight/2, + ""+idx, + { + fontFamily: "Droid Sans Mono", + fill: COLOR_LOADING_TEXT, + align: "center", + } + ); + levelIdText.setDepth(10); + levelIdText.setOrigin(0,0); + + selectLevelContainer.add(levelIdText); + selectLevelContainer.add(selectLevelBg); + + selectLevelContainer.sort("depth"); + selectLevelContainers.push({ + origX: selectLevelContainer.x, + container: selectLevelContainer, + }); + }); + + this.highlightSelectedLevel(this.selectedLevelId); + + // Slider bar for carousel + const levelContainerSliderWidth = + this.cameras.main.width - 2 * levelContainerSliderPaddingX; + + const sliderBarContainer = this.add.rectangle( + levelContainerSliderPaddingX, + 2 * levelContainerPaddingY + + levelContainerHeight + + levelContainerSliderPaddingY, + levelContainerSliderWidth, + levelContainerSliderHeight, + COLOR_PANEL_DARK + ); + sliderBarContainer.setOrigin(0, 0); + sliderBarContainer.setInteractive(); + + // Calculate width of the slider bar + const totalItemsLength = + this.carouselState.levels.length * + (levelContainerWidth + 2 * levelContainerPaddingX); + const sliderBarWidthRatio = levelContainerSliderWidth / totalItemsLength; + const sliderBarWidth = + sliderBarWidthRatio * levelContainerSliderWidth - + 2 * levelContainerSliderBarPaddingX; + + const sliderBarMaxX = levelContainerSliderWidth - sliderBarWidth; + const sliderBarMinX = + levelContainerSliderBarPaddingX + levelContainerSliderPaddingX; + + const sliderBar = this.add.rectangle( + levelContainerSliderBarPaddingX, + 2 * levelContainerPaddingY + + levelContainerHeight + + levelContainerSliderPaddingY + + levelContainerSliderBarPaddingX, + sliderBarWidth, + levelContainerSliderBarHeight, + COLOR_PANEL_LIGHT + ); + sliderBar.setOrigin(0, 0); + sliderBar.setInteractive(); + + const moveSliderToLocation = function (sliderLocation) { + sliderBar.setX( + Math.min(sliderBarMaxX, Math.max(sliderBarMinX, sliderLocation)) + ); + + const containerXOffset = + ((totalItemsLength - + (levelContainerSliderWidth - 2 * levelContainerPaddingX)) * + (sliderBar.x - sliderBarMinX)) / + (levelContainerSliderWidth - sliderBarWidth); + + selectLevelContainers.forEach((levelContainer) => { + levelContainer.container.x = levelContainer.origX - containerXOffset; + }); + }; + + const sliderLocation = + (levelContainerSliderWidth * + (this.selectedLevelId * + (levelContainerWidth + 2 * levelContainerPaddingX))) / + totalItemsLength; + + moveSliderToLocation(sliderLocation); + + // Mouse events + sliderBar.on("pointerover", () => { + sliderBar.setFillStyle(COLOR_PANEL_LIGHTER); + }); + sliderBar.on("pointerout", () => { + sliderBar.setFillStyle(COLOR_PANEL_LIGHT); + }); + + this.input.on("pointermove", (pointer) => { + if (this.draggingSlider) { + const sliderLocation = pointer.position.x - sliderBarWidth / 2.0; + moveSliderToLocation(sliderLocation); + } + }); + + this.input.on("pointerup", () => { + this.draggingSlider = false; + }); + + this.input.on("wheel", (pointer, dx,dy,dz) => { + const sliderLocation = sliderBar.x + dz/2.0; + moveSliderToLocation(sliderLocation); + }); + + sliderBarContainer.on("pointerdown", () => { + this.draggingSlider = true; + }); + + sliderBar.on("pointerdown", () => { + this.draggingSlider = true; + }); + + sliderBarContainer.on("pointerdown", (pointer) => { + const sliderLocation = pointer.position.x - sliderBarWidth / 2.0; + moveSliderToLocation(sliderLocation); + }); + }; + + create() { + console.log("Preview Scene - Create"); + + this.loadingText.destroy(); + this.loaded = true; + + this.updateCarousel(); + } + + update() { + if (!this.loaded) { + this.loadingText.setX(this.cameras.main.width / 2); + this.loadingText.setY(this.cameras.main.height / 2); + this.loadingText.setOrigin(0.5, 0.5); + } else if(this.selectedLevelId != this.getSelectedLevelId()) { + this.selectedLevelId = this.getSelectedLevelId(); + this.highlightSelectedLevel(this.selectedLevelId); + // if (this.grenderer) { + // const state = this.editorStateHandler.getState(); + // if (state && this.stateHash !== state.hash) { + // this.stateHash = state.hash; + // if(state.hash === 0) { + // this.grenderer.recenter(state.gridWidth, state.gridHeight); + // } + // this.updateState(state); + // } + // } + } + } +} + +export default LevelCarouselScene; diff --git a/js/griddlyjs-app/src/renderer/policy_debugger/PolicyDebugger.js b/js/griddlyjs-app/src/renderer/policy_debugger/PolicyDebugger.js new file mode 100644 index 000000000..2f0f3f604 --- /dev/null +++ b/js/griddlyjs-app/src/renderer/policy_debugger/PolicyDebugger.js @@ -0,0 +1,71 @@ +import { React, Component } from "react"; +import Phaser from "phaser"; + +import PolicyDebuggerScene from "./scenes/PolicyDebuggerScene"; +import LoadingScene from "../LoadingScene"; + +class Player extends Component { + updateCanvasSize = () => { + this.game.scale.resize(this.props.width, this.props.height); + }; + + componentDidMount() { + const config = { + type: Phaser.AUTO, + parent: this.divElement, + backgroundColor: "#000000", + scale: { + expandParent: false, + }, + scene: [LoadingScene, PolicyDebuggerScene], + }; + + this.game = new Phaser.Game(config); + + this.gdyHash = 0; + + this.updateCanvasSize(); + } + + componentDidUpdate(prevProps) { + this.updateCanvasSize(); + + if (this.props.griddlyjs) { + if (this.gdyHash === 0 && this.props.gdy) { + this.game.scene.remove("LoadingScene"); + this.game.scene.start("PolicyDebuggerScene", { + gdy: this.props.gdy, + rendererConfig: this.props.rendererConfig, + rendererName: this.props.rendererName, + griddlyjs: this.props.griddlyjs, + onDisplayMessage: this.props.onDisplayMessage, + onTrajectoryComplete: this.props.onTrajectoryComplete, + model: this.props.model, + }); + } else if (this.gdyHash !== this.props.gdyHash) { + this.game.scene.getScene("PolicyDebuggerScene").scene.restart({ + gdy: this.props.gdy, + rendererConfig: this.props.rendererConfig, + rendererName: this.props.rendererName, + griddlyjs: this.props.griddlyjs, + onDisplayMessage: this.props.onDisplayMessage, + onTrajectoryComplete: this.props.onTrajectoryComplete, + model: this.props.model, + }); + } + } + this.gdyHash = this.props.gdyHash; + } + + render() { + return ( +
{ + this.divElement = divElement; + }} + >
+ ); + } +} + +export default Player; diff --git a/js/griddlyjs-app/src/renderer/policy_debugger/scenes/PolicyDebuggerScene.js b/js/griddlyjs-app/src/renderer/policy_debugger/scenes/PolicyDebuggerScene.js new file mode 100644 index 000000000..3df1f4f3f --- /dev/null +++ b/js/griddlyjs-app/src/renderer/policy_debugger/scenes/PolicyDebuggerScene.js @@ -0,0 +1,478 @@ +import Phaser from "phaser"; +import Block2DRenderer from "../../Block2DRenderer"; +import Sprite2DRenderer from "../../Sprite2DRenderer"; +import { + COLOR_LOADING_TEXT, + COLOR_PANEL_DARK, + COLOR_PANEL_LIGHT, + COLOR_PANEL_LIGHTER, + COLOR_POLICY_DEBUG_PLAY_TEXT, + COLOR_POLICY_DEBUG_STOP_TEXT, + COLOR_POLICY_DEBUG_DISABLED_TEXT, +} from "../../ThemeConsts"; + +import * as tf from "@tensorflow/tfjs"; + +const policyMenuHeight = 45; + +const debugButtonsOffsetX = 30; + +const debugButtonsPaddingY = 5; + +const debugButtonWidth = 35; +const debugButtonHeight = 35; + +class PolicyDebuggerScene extends Phaser.Scene { + constructor() { + super("PolicyDebuggerScene"); + + this.stateHash = 0; + this.loaded = false; + this.defaultTileSize = 24; + } + + createPolicyMenu = () => { + const policyMenu = this.add.rectangle( + 0, + 0, + this.cameras.main.width, + policyMenuHeight, + COLOR_PANEL_DARK + ); + policyMenu.setOrigin(0, 0); + + const debugButtonY = debugButtonsPaddingY + debugButtonHeight / 2; + + const playPolicyButtonX = debugButtonsOffsetX + debugButtonWidth / 2; + const stopButtonX = + this.cameras.main.width - debugButtonsOffsetX - debugButtonWidth; + + // Play Policy Button + this.playPolicyBg = this.add.rectangle( + playPolicyButtonX, + debugButtonY, + debugButtonWidth, + debugButtonHeight, + COLOR_PANEL_LIGHT + ); + this.playPolicyBg.setDepth(10); + this.playPolicyBg.setInteractive(); + this.playPolicyBg.on("pointerdown", () => this.beginPolicy()); + this.playPolicyText = this.add + .text(playPolicyButtonX, debugButtonY, "\uf04b", { + fontFamily: "Font Awesome Solid", + color: COLOR_POLICY_DEBUG_PLAY_TEXT, + fontSize: "24px", + }) + .setDepth(11) + .setOrigin(0.5, 0.5); + + // Stop Button + this.stopBg = this.add.rectangle( + stopButtonX, + debugButtonY, + debugButtonWidth, + debugButtonHeight, + COLOR_PANEL_LIGHT + ); + this.stopBg.setDepth(10); + this.stopBg.setInteractive(); + this.stopBg.on("pointerdown", () => this.stopPolicyPlayback()); + this.stopText = this.add + .text(stopButtonX, debugButtonY, "\uf04d", { + fontFamily: "Font Awesome Solid", + color: COLOR_POLICY_DEBUG_STOP_TEXT, + fontSize: "24px", + }) + .setDepth(11) + .setOrigin(0.5, 0.5); + }; + + updatePolicyMenu = () => { + if (this.isRunningPolicy) { + this.playPolicyText.setColor(COLOR_POLICY_DEBUG_DISABLED_TEXT); + this.playPolicyBg.setFillStyle(COLOR_PANEL_LIGHTER); + + this.stopBg.setFillStyle(COLOR_PANEL_LIGHT); + this.stopText.setColor(COLOR_POLICY_DEBUG_STOP_TEXT); + } else { + this.playPolicyText.setColor(COLOR_POLICY_DEBUG_PLAY_TEXT); + this.playPolicyBg.setFillStyle(COLOR_PANEL_DARK); + + this.stopBg.setFillStyle(COLOR_PANEL_LIGHT); + this.stopText.setColor(COLOR_POLICY_DEBUG_DISABLED_TEXT); + } + }; + + createModals = () => { + // Set the modals to invisible + this.variableDebugModalActive = false; + + // Get all the global variables + this.globalVariableDebugText = this.getGlobalVariableDebugText(); + + this.variableDebugModal = this.add.text( + this.cameras.main.width / 2, + this.cameras.main.height / 5, + this.globalVariableDebugText + ); + this.variableDebugModal.setBackgroundColor("#000000AA"); + this.variableDebugModal.setDepth(100); + this.variableDebugModal.setOrigin(0, 0); + this.variableDebugModal.setVisible(false); + }; + + init = (data) => { + try { + // Functions to interact with the environment + this.griddlyjs = data.griddlyjs; + + // Data about the environment + this.gdy = data.gdy; + this.onDisplayMessage = data.onDisplayMessage; + this.onPolicyComplete = data.onPolicyComplete; + + this.gridHeight = this.griddlyjs.getHeight(); + this.gridWidth = this.griddlyjs.getWidth(); + + this.avatarObject = this.gdy.Environment.Player.AvatarObject; + this.rendererName = data.rendererName; + this.renderConfig = data.rendererConfig; + + if (this.renderConfig.Type === "BLOCK_2D") { + this.grenderer = new Block2DRenderer( + this, + this.rendererName, + this.renderConfig, + this.avatarObject + ); + } else if (this.renderConfig.Type === "SPRITE_2D") { + this.grenderer = new Sprite2DRenderer( + this, + this.rendererName, + this.renderConfig, + this.avatarObject + ); + } + } catch (e) { + this.displayError("Cannot load GDY file.", e); + } + + this.renderData = { + objects: {}, + }; + + this.player = this.griddlyjs.players[0]; + this.playerObsSpace = this.player.getObservationDescription(); + + this.model = data.model; + }; + + displayError = (message, error) => { + this.onDisplayMessage(message, "error", error); + }; + + displayWarning = (message, error) => { + this.onDisplayMessage(message, "warning", error); + }; + + updateState = (state) => { + const newObjectIds = state.objects.map((object) => { + return object.id; + }); + + this.grenderer.recenter(this.griddlyjs.getWidth(), this.griddlyjs.getHeight()); + + this.grenderer.beginUpdate(state.objects); + + state.objects.forEach((object) => { + const objectTemplateName = object.name + object.renderTileId; + if (object.id in this.renderData.objects) { + const currentObjectData = this.renderData.objects[object.id]; + this.grenderer.updateObject( + currentObjectData.sprite, + object.name, + objectTemplateName, + object.location.x, + object.location.y, + object.orientation + ); + + this.renderData.objects[object.id] = { + ...currentObjectData, + object, + }; + } else { + const sprite = this.grenderer.addObject( + object.name, + objectTemplateName, + object.location.x, + object.location.y, + object.orientation + ); + + this.renderData.objects[object.id] = { + object, + sprite, + }; + } + }); + + for (const k in this.renderData.objects) { + const id = this.renderData.objects[k].object.id; + if (!newObjectIds.includes(id)) { + this.renderData.objects[k].sprite.destroy(); + delete this.renderData.objects[k]; + } + } + }; + + toMovementKey(vector) { + return `${vector.x},${vector.y}`; + } + + getGlobalVariableDebugText() { + const globalVariables = this.griddlyjs.getGlobalVariables(); + + const globalVariableDescription = []; + const playerVariableDescription = []; + for (const variableName in globalVariables) { + const variableData = globalVariables[variableName]; + if (Object.keys(variableData).length === 1) { + // We have a global variable + const variableValue = variableData[0]; + globalVariableDescription.push(variableName + ": " + variableValue); + } else { + // We have a player variable + if (this.griddlyjs.playerCount === 1) { + const variableValue = variableData[1]; + playerVariableDescription.push(variableName + ": " + variableValue); + } else { + let variableValues = ""; + for (let p = 0; p < this.griddlyjs.playerCount; p++) { + const variableValue = variableData[p + 1]; + variableValues += "\t" + (p + 1) + ": " + variableValue; + } + + playerVariableDescription.push(variableName + ":" + variableValues); + } + } + } + + return [ + "Global Variables:", + ...globalVariableDescription, + "", + "Player Variables:", + ...playerVariableDescription, + ]; + } + + updateModals() { + if (this.variableDebugModalActive) { + this.variableDebugModal.setText(this.globalVariableDebugText); + this.variableDebugModal.setFontFamily("Droid Sans Mono"); + this.variableDebugModal.setPosition(0, 0); + this.variableDebugModal.setWordWrapWidth(this.cameras.main.width / 2); + } + } + + toggleVariableDebugModal() { + this.variableDebugModalActive = !this.variableDebugModalActive; + this.variableDebugModal.setVisible(this.variableDebugModalActive); + } + + setupFlatActionMap = () => { + const actionInputMappings = this.griddlyjs.getActionInputMappings(); + const actionNames = this.griddlyjs.getActionNames(); + + const flatActionMap = []; + + actionNames.forEach((actionName, actionTypeId) => { + const actionMapping = actionInputMappings[actionName]; + if (!actionMapping.internal) { + const inputMappings = Object.entries(actionMapping.inputMappings); + console.log(inputMappings); + + inputMappings.forEach((inputMapping) => { + const actionId = Number(inputMapping[0]); + + flatActionMap.push([actionTypeId, actionId]); + }); + } + }); + + return flatActionMap; + }; + + setupKeyboardMapping = () => { + this.input.keyboard.on("keydown-I", (event) => { + this.toggleVariableDebugModal(); + }); + + // When the mouse leaves the window we stop collecting keys + this.input.on(Phaser.Input.Events.POINTER_DOWN_OUTSIDE, () => { + this.input.keyboard.enabled = false; + }); + + // When we click back in the scene we collect keys + this.input.on(Phaser.Input.Events.POINTER_DOWN, () => { + document.activeElement.blur(); + this.input.keyboard.enabled = true; + }); + }; + + stopPolicyPlayback = () => { + if (this.isRunningPolicy) { + this.endPolicy(); + } + + this.resetLevel(); + }; + + beginPolicy = () => { + this.PolicyActionIdx = 0; + this.isRunningPolicy = true; + }; + + endPolicy = () => { + this.PolicyActionIdx = 0; + this.isRunningPolicy = false; + }; + + resetLevel = () => { + this.griddlyjs.reset(); + }; + + processPolicy = () => { + if (!this.cooldown) { + this.cooldown = true; + setTimeout(() => { + this.cooldown = false; + }, 10); + + try { + const shape = this.playerObsSpace.Shape; + + // Generates the actions thanks to the agent's policy model + if (this.model != null) { + const state = this.player.observe(); + + const singletonState = tf.reshape(state, [1, ...shape]); + + const inputs = { + input_0: singletonState, + }; + + // let output = 'main/mul:0' + const output = "output_0"; + + const logits = this.model.execute(inputs, output).arraySync()[0]; + + const action = tf.multinomial(logits, 1).arraySync()[0]; + + const stepResult = this.griddlyjs.step(this.flatActionMap[action]); + + if (stepResult.reward > 0) { + console.log("Reward: ", stepResult.reward); + } + + if (stepResult.terminated) { + this.griddlyjs.reset(); + this.endPolicy(); + } + } + } catch (e) { + this.onDisplayMessage( + "Loaded model is incompatible with the environment.", + "error", + e + ); + this.stopPolicyPlayback(); + } + + return this.griddlyjs.getState(); + } + }; + + processUserAction = () => { + if (!this.cooldown) { + this.cooldown = true; + setTimeout(() => { + this.cooldown = false; + }, 100); + + return this.griddlyjs.getState(); + } + }; + + preload = async () => { + const envName = this.gdy.Environment.Name; + + this.input.mouse.disableContextMenu(); + + this.loadingText = this.add.text( + this.cameras.main.width / 2, + this.cameras.main.height / 2, + "Loading assets for " + envName, + { + fontFamily: "Droid Sans Mono", + font: "32px", + fill: COLOR_LOADING_TEXT, + align: "center", + } + ); + + this.loadingText.setX(this.cameras.main.width / 2); + this.loadingText.setY(this.cameras.main.height / 2); + this.loadingText.setOrigin(0.5, 0.5); + if (this.grenderer) { + this.grenderer.loadTemplates(this.gdy.Objects); + } + }; + + create = () => { + console.log("Create"); + + this.loadingText.destroy(); + this.loaded = true; + + if (this.grenderer) { + this.flatActionMap = this.setupFlatActionMap(); + this.mapping = this.setupKeyboardMapping(); + this.grenderer.init(this.gridWidth, this.gridHeight); + this.updateState(this.griddlyjs.getState()); + this.createModals(); + this.updateModals(); + this.createPolicyMenu(); + this.updatePolicyMenu(); + } + }; + + update = () => { + if (!this.loaded) { + this.loadingText.setX(this.cameras.main.width / 2); + this.loadingText.setY(this.cameras.main.height / 2); + this.loadingText.setOrigin(0.5, 0.5); + } else { + if (this.grenderer) { + let state; + if (this.isRunningPolicy) { + state = this.processPolicy(); + } else { + state = this.processUserAction(); + } + + if (state && this.stateHash !== state.hash) { + this.stateHash = state.hash; + this.updateState(state); + } + + this.updateModals(); + this.updatePolicyMenu(); + } + } + }; +} + +export default PolicyDebuggerScene; diff --git a/js/jiddly-app/src/reportWebVitals.js b/js/griddlyjs-app/src/reportWebVitals.js similarity index 100% rename from js/jiddly-app/src/reportWebVitals.js rename to js/griddlyjs-app/src/reportWebVitals.js diff --git a/js/jiddly-app/src/setupTests.js b/js/griddlyjs-app/src/setupTests.js similarity index 100% rename from js/jiddly-app/src/setupTests.js rename to js/griddlyjs-app/src/setupTests.js diff --git a/js/griddlyjs-app/src/wasm/griddlyjs.js b/js/griddlyjs-app/src/wasm/griddlyjs.js new file mode 100644 index 000000000..bfad7812c --- /dev/null +++ b/js/griddlyjs-app/src/wasm/griddlyjs.js @@ -0,0 +1,21 @@ + +var Module = (() => { + var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; + + return ( +function(Module) { + Module = Module || {}; + +var Module=typeof Module!="undefined"?Module:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=true;var ENVIRONMENT_IS_WORKER=false;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=(url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText});if(ENVIRONMENT_IS_WORKER){readBinary=(url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)})}readAsync=((url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=(()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()});xhr.onerror=onerror;xhr.send(null)})}setWindowTitle=(title=>document.title=title)}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var tempRet0=0;var setTempRet0=value=>{tempRet0=value};var getTempRet0=()=>tempRet0;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):undefined;function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder){return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))}else{var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str}}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}var wasmBinaryFile;wasmBinaryFile="griddlyjs.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;exports=Asyncify.instrumentWasmExports(exports);Module["asm"]=exports;wasmMemory=Module["asm"]["Ma"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["Pa"];addOnInit(Module["asm"]["Na"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);exports=Asyncify.instrumentWasmExports(exports);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}var tempDouble;var tempI64;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func=="number"){if(callback.arg===undefined){(function(){dynCall_v.call(null,func)})()}else{(function(a1){dynCall_vi.apply(null,[func,a1])})(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function ___cxa_allocate_exception(size){return _malloc(size+16)+16}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-16;this.set_type=function(type){HEAP32[this.ptr+4>>2]=type};this.get_type=function(){return HEAP32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1}}function CatchInfo(ptr){this.free=function(){_free(this.ptr);this.ptr=0};this.set_base_ptr=function(basePtr){HEAP32[this.ptr>>2]=basePtr};this.get_base_ptr=function(){return HEAP32[this.ptr>>2]};this.set_adjusted_ptr=function(adjustedPtr){HEAP32[this.ptr+4>>2]=adjustedPtr};this.get_adjusted_ptr_addr=function(){return this.ptr+4};this.get_adjusted_ptr=function(){return HEAP32[this.ptr+4>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_exception_info().get_type());if(isPointer){return HEAP32[this.get_base_ptr()>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.get_base_ptr()};this.get_exception_info=function(){return new ExceptionInfo(this.get_base_ptr())};if(ptr===undefined){this.ptr=_malloc(8);this.set_adjusted_ptr(0)}else{this.ptr=ptr}}var exceptionCaught=[];function exception_addRef(info){info.add_ref()}var uncaughtExceptionCount=0;function ___cxa_begin_catch(ptr){var catchInfo=new CatchInfo(ptr);var info=catchInfo.get_exception_info();if(!info.get_caught()){info.set_caught(true);uncaughtExceptionCount--}info.set_rethrown(false);exceptionCaught.push(catchInfo);exception_addRef(info);return catchInfo.get_exception_ptr()}var exceptionLast=0;function ___cxa_free_exception(ptr){return _free(new ExceptionInfo(ptr).ptr)}function exception_decRef(info){if(info.release_ref()&&!info.get_rethrown()){var destructor=info.get_destructor();if(destructor){(function(a1){return dynCall_ii.apply(null,[destructor,a1])})(info.excPtr)}___cxa_free_exception(info.excPtr)}}function ___cxa_end_catch(){_setThrew(0);var catchInfo=exceptionCaught.pop();exception_decRef(catchInfo.get_exception_info());catchInfo.free();exceptionLast=0}function ___resumeException(catchInfoPtr){var catchInfo=new CatchInfo(catchInfoPtr);var ptr=catchInfo.get_base_ptr();if(!exceptionLast){exceptionLast=ptr}catchInfo.free();throw ptr}function ___cxa_find_matching_catch_2(){var thrown=exceptionLast;if(!thrown){setTempRet0(0);return 0|0}var info=new ExceptionInfo(thrown);var thrownType=info.get_type();var catchInfo=new CatchInfo;catchInfo.set_base_ptr(thrown);catchInfo.set_adjusted_ptr(thrown);if(!thrownType){setTempRet0(0);return catchInfo.ptr|0}var typeArray=Array.prototype.slice.call(arguments);for(var i=0;i>2])}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}};return errorClass}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i>shift])},destructorFunction:null})}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted")}var finalizationRegistry=false;function detachFinalizer(handle){}function runDestructor($$){if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function releaseClassHandle($$){$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}var registeredPointers={};function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}}var delayFunction=undefined;function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module["getInheritedInstanceCount"]=getInheritedInstanceCount;Module["getLiveInheritedInstances"]=getLiveInheritedInstances;Module["flushPendingDeletes"]=flushPendingDeletes;Module["setDelayFunction"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError("ptr should not be undefined")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record}}))}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]()}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}function attachFinalizer(handle){if("undefined"===typeof FinalizationRegistry){attachFinalizer=(handle=>handle);return handle}finalizationRegistry=new FinalizationRegistry(info=>{releaseClassHandle(info.$$)});attachFinalizer=(handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$:$$};finalizationRegistry.register(handle,info,handle)}return handle});detachFinalizer=(handle=>finalizationRegistry.unregister(handle));return attachFinalizer(handle)}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}}function ClassHandle_isDeleted(){return!this.$$.ptr}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}function init_ClassHandle(){ClassHandle.prototype["isAliasOf"]=ClassHandle_isAliasOf;ClassHandle.prototype["clone"]=ClassHandle_clone;ClassHandle.prototype["delete"]=ClassHandle_delete;ClassHandle.prototype["isDeleted"]=ClassHandle_isDeleted;ClassHandle.prototype["deleteLater"]=ClassHandle_deleteLater}function ClassHandle(){}function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError("Function '"+humanName+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+proto[methodName].overloadTable+")!")}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError("Cannot register public name '"+name+"' twice")}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError("Cannot register multiple overloads of a function with the same number of arguments ("+numArguments+")!")}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError("Expected null or instance of "+desiredClass.name+", got an instance of "+ptrClass.name)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,Emval.toHandle(function(){clonedHandle["delete"]()}));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError("Unsupporting sharing policy")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+handle.$$.ptrType.name+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle["delete"]()}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype["argPackAdvance"]=8;RegisteredPointer.prototype["readValueFromPointer"]=simpleReadValueFromPointer;RegisteredPointer.prototype["deleteObject"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype["fromWireType"]=RegisteredPointer_fromWireType}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this["toWireType"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this["toWireType"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this["toWireType"]=genericPointerToWireType}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function dynCallLegacy(sig,ptr,args){var f=Module["dynCall_"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}function dynCall(sig,ptr,args){return dynCallLegacy(sig,ptr,args)}function getDynCaller(sig,ptr){var argCache=[];return function(){argCache.length=0;Object.assign(argCache,arguments);return dynCall(sig,ptr,argCache)}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(){return getDynCaller(signature,rawFunction)}var fp=makeDynCaller();if(typeof fp!="function"){throwBindingError("unknown function pointer with signature "+signature+": "+rawFunction)}return fp}var UnboundTypeError=undefined;function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(message+": "+unboundTypes.map(getTypeName).join([", "]))}function __embind_register_class(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor){name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);if(upcast){upcast=embind__requireFunction(upcastSignature,upcast)}if(downcast){downcast=embind__requireFunction(downcastSignature,downcast)}rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError("Cannot construct "+name+" due to unbound types",[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(legalFunctionName,function(){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError("Use 'new' to construct "+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+" has no accessible constructor")}var body=registeredClass.constructor_body[arguments.length];if(undefined===body){throw new BindingError("Tried to invoke ctor of "+name+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(registeredClass.constructor_body).toString()+") parameters instead!")}return body.apply(this,arguments)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+"*",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+" const*",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})}function heap32VectorToArray(count,firstElement){var array=[];for(var i=0;i>2)+i])}return array}function __embind_register_class_constructor(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor){assert(argCount>0);var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName="constructor "+classType.name;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError("Cannot register multiple constructors with identical number of parameters ("+(argCount-1)+") for class '"+classType.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!")}classType.registeredClass.constructor_body[argCount-1]=(()=>{throwUnboundTypeError("Cannot construct "+classType.name+" due to unbound types",rawArgTypes)});whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return[]});return[]})}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError("new_ called with constructor type "+typeof constructor+" which is not a function")}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function runAndAbortIfError(func){try{return func()}catch(e){abort(e)}}function callUserCallback(func,synchronous){if(runtimeExited||ABORT){return}if(synchronous){func();return}try{func()}catch(e){handleException(e)}}var Asyncify={State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId:function(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},instrumentWasmExports:function(exports){var ret={};for(var x in exports){(function(x){var original=exports[x];if(typeof original=="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(null,arguments)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();assert(y===x);Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}})(x)}return ret},maybeStopUnwind:function(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_unwind"]);if(typeof Fibers!="undefined"){Fibers.trampoline()}}},whenDone:function(){return new Promise((resolve,reject)=>{Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData:function(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader:function(ptr,stack,stackSize){HEAP32[ptr>>2]=stack;HEAP32[ptr+4>>2]=stack+stackSize},setDataRewindFunc:function(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFunc:function(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];var func=Module["asm"][name];return func},doRewind:function(ptr){var start=Asyncify.getDataRewindFunc(ptr);return start()},handleSleep:function(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync(handleSleepReturnValue=>{if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue||0;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(()=>Module["_asyncify_start_rewind"](Asyncify.currData));if(typeof Browser!="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();runAndAbortIfError(()=>Module["_asyncify_start_unwind"](Asyncify.currData));if(typeof Browser!="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_rewind"]);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(func=>callUserCallback(func))}else{abort("invalid state: "+Asyncify.state)}return Asyncify.handleSleepReturnValue},handleAsync:function(startAsync){return Asyncify.handleSleep(wakeUp=>{startAsync().then(wakeUp)})}};function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i0?", ":"")+argsListWired}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";args1.push("Asyncify");args2.push(Asyncify);invokerFnBody+="function onDone("+(returns?"rv":"")+") {\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i>1])};case 2:return function(pointer){var heap=signed?HEAP32:HEAPU32;return this["fromWireType"](heap[pointer>>2])};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_enum(rawType,name,size,isSigned){var shift=getShiftFromSize(size);name=readLatin1String(name);function ctor(){}ctor.values={};registerType(rawType,{name:name,constructor:ctor,"fromWireType":function(c){return this.constructor.values[c]},"toWireType":function(destructors,c){return c.value},"argPackAdvance":8,"readValueFromPointer":enumReadValueFromPointer(name,shift,isSigned),destructorFunction:null});exposePublicSymbol(name,ctor)}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl}function __embind_register_enum_value(rawEnumType,name,enumValue){var enumType=requireRegisteredType(rawEnumType,"enum");name=readLatin1String(name);var Enum=enumType.constructor;var Value=Object.create(enumType.constructor.prototype,{value:{value:enumValue},constructor:{value:createNamedFunction(enumType.name+"_"+name,function(){})}});Enum.values[enumValue]=Value;Enum[name]=Value}function _embind_repr(v){if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(value){return value},"toWireType":function(destructors,value){return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=(value=>value<>>bitshift)}var isUnsignedType=name.includes("unsigned");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":toWireType,"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_smart_ptr(rawType,rawPointeeType,name,sharingPolicy,getPointeeSignature,rawGetPointee,constructorSignature,rawConstructor,shareSignature,rawShare,destructorSignature,rawDestructor){name=readLatin1String(name);rawGetPointee=embind__requireFunction(getPointeeSignature,rawGetPointee);rawConstructor=embind__requireFunction(constructorSignature,rawConstructor);rawShare=embind__requireFunction(shareSignature,rawShare);rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);whenDependentTypesAreResolved([rawType],[rawPointeeType],function(pointeeType){pointeeType=pointeeType[0];var registeredPointer=new RegisteredPointer(name,pointeeType.registeredClass,false,false,true,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor);return[registeredPointer]})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;ilengthBytesUTF8(value))}else{getLength=(()=>value.length)}var length=getLength();var ptr=_malloc(4+length+1);HEAPU32[ptr>>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;iHEAPU16);shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=(()=>HEAPU32);shift=2}registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},"toWireType":function(destructors,value){if(!(typeof value=="string")){throwBindingError("Cannot pass non-string to C++ string type "+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_value_object(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor){structRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),fields:[]}}function __embind_register_value_object_field(structType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){structRegistrations[structType].fields.push({fieldName:readLatin1String(fieldName),getterReturnType:getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext:getterContext,setterArgumentType:setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext:setterContext})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":function(){return undefined},"toWireType":function(destructors,o){return undefined}})}function __emval_as(handle,returnType,destructorsRef){handle=Emval.toValue(handle);returnType=requireRegisteredType(returnType,"emval::as");var destructors=[];var rd=Emval.toHandle(destructors);HEAP32[destructorsRef>>2]=rd;return returnType["toWireType"](destructors,handle)}function __emval_lookupTypes(argCount,argTypes){var a=new Array(argCount);for(var i=0;i>2)+i],"parameter "+i)}return a}function __emval_call(handle,argCount,argTypes,argv){handle=Emval.toValue(handle);var types=__emval_lookupTypes(argCount,argTypes);var args=new Array(argCount);for(var i=0;i>2]=Emval.toHandle(destructors);return destructors}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}else{return symbol}}var emval_methodCallers=[];function __emval_call_method(caller,handle,methodName,destructorsRef,args){caller=emval_methodCallers[caller];handle=Emval.toValue(handle);methodName=getStringOrSymbol(methodName);return caller(handle,methodName,__emval_allocateDestructors(destructorsRef),args)}function __emval_call_void_method(caller,handle,methodName,args){caller=emval_methodCallers[caller];handle=Emval.toValue(handle);methodName=getStringOrSymbol(methodName);caller(handle,methodName,null,args)}function __emval_addMethodCaller(caller){var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id}var emval_registeredMethods=[];function __emval_get_method_caller(argCount,argTypes){var types=__emval_lookupTypes(argCount,argTypes);var retType=types[0];var signatureName=retType.name+"_$"+types.slice(1).map(function(t){return t.name}).join("_")+"$";var returnId=emval_registeredMethods[signatureName];if(returnId!==undefined){return returnId}var params=["retType"];var args=[retType];var argsList="";for(var i=0;i4){emval_handle_array[handle].refcount+=1}}function __emval_new_array(){return Emval.toHandle([])}function __emval_new_cstring(v){return Emval.toHandle(getStringOrSymbol(v))}function __emval_new_object(){return Emval.toHandle({})}function __emval_run_destructors(handle){var destructors=Emval.toValue(handle);runDestructors(destructors);__emval_decref(handle)}function __emval_set_property(handle,key,value){handle=Emval.toValue(handle);key=Emval.toValue(key);value=Emval.toValue(value);handle[key]=value}function __emval_take_value(type,argv){type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](argv);return Emval.toHandle(v)}function __gmtime_js(time,tmPtr){var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getUTCSeconds();HEAP32[tmPtr+4>>2]=date.getUTCMinutes();HEAP32[tmPtr+8>>2]=date.getUTCHours();HEAP32[tmPtr+12>>2]=date.getUTCDate();HEAP32[tmPtr+16>>2]=date.getUTCMonth();HEAP32[tmPtr+20>>2]=date.getUTCFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getUTCDay();var start=Date.UTC(date.getUTCFullYear(),0,1,0,0,0,0);var yday=(date.getTime()-start)/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday}function __localtime_js(time,tmPtr){var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var start=new Date(date.getFullYear(),0,1);var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst}function _tzset_impl(timezone,daylight,tzname){var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAP32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);function extractZone(date){var match=date.toTimeString().match(/\(([A-Za-z ]+)\)$/);return match?match[1]:"GMT"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=allocateUTF8(winterName);var summerNamePtr=allocateUTF8(summerName);if(summerOffset>2]=winterNamePtr;HEAP32[tzname+4>>2]=summerNamePtr}else{HEAP32[tzname>>2]=summerNamePtr;HEAP32[tzname+4>>2]=winterNamePtr}}function __tzset_js(timezone,daylight,tzname){if(__tzset_js.called)return;__tzset_js.called=true;_tzset_impl(timezone,daylight,tzname)}function _abort(){abort("")}var _emscripten_get_now;_emscripten_get_now=(()=>performance.now());var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_get_heap_max(){return 2147483648}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=_emscripten_get_heap_max();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{path=PATH_FS.resolve(FS.cwd(),path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(p=>!!p),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:node=>{var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:(parentid,name)=>{var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:node=>{var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:node=>{var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:(parent,name)=>{var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:(parent,name,mode,rdev)=>{var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:node=>{FS.hashRemoveNode(node)},isRoot:node=>{return node===node.parent},isMountpoint:node=>{return!!node.mounted},isFile:mode=>{return(mode&61440)===32768},isDir:mode=>{return(mode&61440)===16384},isLink:mode=>{return(mode&61440)===40960},isChrdev:mode=>{return(mode&61440)===8192},isBlkdev:mode=>{return(mode&61440)===24576},isFIFO:mode=>{return(mode&61440)===4096},isSocket:mode=>{return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:str=>{var flags=FS.flagModes[str];if(typeof flags=="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:flag=>{var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:(node,perms)=>{if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:dir=>{var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:(dir,name)=>{try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:(dir,name,isdir)=>{var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:(node,flags)=>{if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:(fd_start=0,fd_end=FS.MAX_OPEN_FDS)=>{for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:fd=>FS.streams[fd],createStream:(stream,fd_start,fd_end)=>{if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}stream=Object.assign(new FS.FSStream,stream);var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:fd=>{FS.streams[fd]=null},chrdev_stream_ops:{open:stream=>{var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:()=>{throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice:(dev,ops)=>{FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts:mount=>{var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:(populate,callback)=>{if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:(type,opts,mountpoint)=>{var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:mountpoint=>{var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:(parent,name)=>{return parent.node_ops.lookup(parent,name)},mknod:(path,mode,dev)=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:(path,mode)=>{mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:(path,mode)=>{mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:(path,mode)=>{var dirs=path.split("/");var d="";for(var i=0;i{if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:(oldpath,newpath)=>{if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:(old_path,new_path)=>{var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir:path=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink:path=>{var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:(path,dontFollow)=>{var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat:path=>{return FS.stat(path,true)},chmod:(path,mode,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:(path,mode)=>{FS.chmod(path,mode,true)},fchmod:(fd,mode)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chmod(stream.node,mode)},chown:(path,uid,gid,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:(path,uid,gid)=>{FS.chown(path,uid,gid,true)},fchown:(fd,uid,gid)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chown(stream.node,uid,gid)},truncate:(path,len)=>{if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:(fd,len)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime:(path,atime,mtime)=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:(path,flags,mode,fd_start,fd_end)=>{if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode=="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path=="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close:stream=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:stream=>{return stream.fd===null},llseek:(stream,offset,whence)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:(stream,buffer,offset,length,position)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:(stream,buffer,offset,length,position,canOwn)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},allocate:(stream,offset,length)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap:(stream,address,length,position,prot,flags)=>{if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,address,length,position,prot,flags)},msync:(stream,buffer,offset,length,mmapFlags)=>{if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:stream=>0,ioctl:(stream,cmd,arg)=>{if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:(path,opts={})=>{opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile:(path,data,opts={})=>{opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir:path=>{var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories:()=>{FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices:()=>{FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device=getRandomDevice();FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:()=>{var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup:(parent,name)=>{var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams:()=>{if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},ensureErrnoError:()=>{if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message="FS error"};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""})},staticInit:()=>{FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS}},init:(input,output,error)=>{FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit:()=>{FS.init.initialized=false;for(var i=0;i{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode},findObject:(path,dontResolveLastLink)=>{var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object}else{return null}},analyzePath:(path,dontResolveLastLink)=>{try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath:(parent,path,canRead,canWrite)=>{parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:(parent,name,properties,canRead,canWrite)=>{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:(parent,name,data,canRead,canWrite,canOwn)=>{var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:stream=>{stream.seekable=false},close:stream=>{if(output&&output.buffer&&output.buffer.length){output(10)}},read:(stream,buffer,offset,length,pos)=>{var bytesRead=0;for(var i=0;i{for(var i=0;i{if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}},createLazyFile:(parent,name,url,canRead,canWrite)=>{function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=((stream,buffer,offset,length,position)=>{FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}if(Browser.handledByPreloadPlugin(byteArray,fullname,finish,()=>{if(onerror)onerror();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,byteArray=>processData(byteArray),onerror)}else{processData(url)}},indexedDB:()=>{return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:()=>{return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=(()=>{out("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)});openRequest.onsuccess=(()=>{var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=(()=>{ok++;if(ok+fail==total)finish()});putRequest.onerror=(()=>{fail++;if(ok+fail==total)finish()})});transaction.onerror=onerror});openRequest.onerror=onerror},loadFilesFromDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=(()=>{var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var getRequest=files.get(path);getRequest.onsuccess=(()=>{if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()});getRequest.onerror=(()=>{fail++;if(ok+fail==total)finish()})});transaction.onerror=onerror});openRequest.onerror=onerror}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt:function(dirfd,path,allowEmpty){if(path[0]==="/"){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(8);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4;HEAP8[pbuf>>0]=type;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function _getTempRet0(){return getTempRet0()}function _llvm_eh_typeid_for(type){return type}function _setTempRet0(val){setTempRet0(val)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value=="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};pattern=pattern.replace(/%%/g,"\0\0");for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}pattern=pattern.replace(/\0\0/g,"%");var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}InternalError=Module["InternalError"]=extendError(Error,"InternalError");embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");init_ClassHandle();init_embind();init_RegisteredPointer();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");init_emval();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"m":___cxa_allocate_exception,"s":___cxa_begin_catch,"v":___cxa_end_catch,"b":___cxa_find_matching_catch_2,"i":___cxa_find_matching_catch_3,"t":___cxa_find_matching_catch_4,"l":___cxa_free_exception,"aa":___cxa_rethrow,"z":___cxa_throw,"ja":___cxa_uncaught_exceptions,"g":___resumeException,"ia":__embind_finalize_value_object,"fa":__embind_register_bigint,"va":__embind_register_bool,"H":__embind_register_class,"L":__embind_register_class_constructor,"w":__embind_register_class_function,"ua":__embind_register_emval,"La":__embind_register_enum,"Q":__embind_register_enum_value,"Z":__embind_register_float,"D":__embind_register_integer,"B":__embind_register_memory_view,"U":__embind_register_smart_ptr,"Y":__embind_register_std_string,"S":__embind_register_std_wstring,"$":__embind_register_value_object,"wa":__embind_register_value_object_field,"xa":__embind_register_void,"Ca":__emval_as,"Ha":__emval_call,"Aa":__emval_call_method,"Fa":__emval_call_void_method,"Ia":__emval_decref,"Ga":__emval_get_method_caller,"Da":__emval_get_property,"Ja":__emval_incref,"T":__emval_new_array,"E":__emval_new_cstring,"J":__emval_new_object,"Ba":__emval_run_destructors,"Ea":__emval_set_property,"G":__emval_take_value,"qa":__gmtime_js,"ra":__localtime_js,"sa":__tzset_js,"R":_abort,"ka":_clock_gettime,"ta":_emscripten_memcpy_big,"la":_emscripten_resize_heap,"oa":_environ_get,"pa":_environ_sizes_get,"ma":_fd_close,"na":_fd_fdstat_get,"ea":_fd_seek,"X":_fd_write,"a":_getTempRet0,"K":invoke_diii,"za":invoke_diiiii,"ya":invoke_fiff,"V":invoke_fiii,"p":invoke_i,"P":invoke_idiii,"c":invoke_ii,"e":invoke_iii,"k":invoke_iiii,"u":invoke_iiiii,"r":invoke_iiiiii,"A":invoke_iiiiiii,"W":invoke_iiiiiiii,"_":invoke_iiiiiiiii,"O":invoke_iiiiiiiiiiii,"ga":invoke_ijjiii,"da":invoke_j,"ca":invoke_ji,"ba":invoke_jiiii,"n":invoke_v,"h":invoke_vi,"d":invoke_vii,"f":invoke_viii,"j":invoke_viiii,"q":invoke_viiiii,"o":invoke_viiiiii,"x":invoke_viiiiiii,"F":invoke_viiiiiiii,"I":invoke_viiiiiiiii,"C":invoke_viiiiiiiiii,"N":invoke_viiiiiiiiiiiiiii,"y":_llvm_eh_typeid_for,"M":_setTempRet0,"Ka":_strftime,"ha":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["Na"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Oa"]).apply(null,arguments)};var ___getTypeName=Module["___getTypeName"]=function(){return(___getTypeName=Module["___getTypeName"]=Module["asm"]["Qa"]).apply(null,arguments)};var ___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=function(){return(___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=Module["asm"]["Ra"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["Sa"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["Ta"]).apply(null,arguments)};var _setThrew=Module["_setThrew"]=function(){return(_setThrew=Module["_setThrew"]=Module["asm"]["Ua"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["Va"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["Wa"]).apply(null,arguments)};var ___cxa_can_catch=Module["___cxa_can_catch"]=function(){return(___cxa_can_catch=Module["___cxa_can_catch"]=Module["asm"]["Xa"]).apply(null,arguments)};var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=function(){return(___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=Module["asm"]["Ya"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["Za"]).apply(null,arguments)};var dynCall_ii=Module["dynCall_ii"]=function(){return(dynCall_ii=Module["dynCall_ii"]=Module["asm"]["_a"]).apply(null,arguments)};var dynCall_i=Module["dynCall_i"]=function(){return(dynCall_i=Module["dynCall_i"]=Module["asm"]["$a"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["ab"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["bb"]).apply(null,arguments)};var dynCall_iii=Module["dynCall_iii"]=function(){return(dynCall_iii=Module["dynCall_iii"]=Module["asm"]["cb"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["db"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["eb"]).apply(null,arguments)};var dynCall_iiiii=Module["dynCall_iiiii"]=function(){return(dynCall_iiiii=Module["dynCall_iiiii"]=Module["asm"]["fb"]).apply(null,arguments)};var dynCall_viiiiiiiiii=Module["dynCall_viiiiiiiiii"]=function(){return(dynCall_viiiiiiiiii=Module["dynCall_viiiiiiiiii"]=Module["asm"]["gb"]).apply(null,arguments)};var dynCall_viif=Module["dynCall_viif"]=function(){return(dynCall_viif=Module["dynCall_viif"]=Module["asm"]["hb"]).apply(null,arguments)};var dynCall_fii=Module["dynCall_fii"]=function(){return(dynCall_fii=Module["dynCall_fii"]=Module["asm"]["ib"]).apply(null,arguments)};var dynCall_viiiiii=Module["dynCall_viiiiii"]=function(){return(dynCall_viiiiii=Module["dynCall_viiiiii"]=Module["asm"]["jb"]).apply(null,arguments)};var dynCall_idiii=Module["dynCall_idiii"]=function(){return(dynCall_idiii=Module["dynCall_idiii"]=Module["asm"]["kb"]).apply(null,arguments)};var dynCall_ijjiii=Module["dynCall_ijjiii"]=function(){return(dynCall_ijjiii=Module["dynCall_ijjiii"]=Module["asm"]["lb"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["mb"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["nb"]).apply(null,arguments)};var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=function(){return(dynCall_iiiiiii=Module["dynCall_iiiiiii"]=Module["asm"]["ob"]).apply(null,arguments)};var dynCall_diii=Module["dynCall_diii"]=function(){return(dynCall_diii=Module["dynCall_diii"]=Module["asm"]["pb"]).apply(null,arguments)};var dynCall_diiiii=Module["dynCall_diiiii"]=function(){return(dynCall_diiiii=Module["dynCall_diiiii"]=Module["asm"]["qb"]).apply(null,arguments)};var dynCall_viiiiiii=Module["dynCall_viiiiiii"]=function(){return(dynCall_viiiiiii=Module["dynCall_viiiiiii"]=Module["asm"]["rb"]).apply(null,arguments)};var dynCall_iiiiii=Module["dynCall_iiiiii"]=function(){return(dynCall_iiiiii=Module["dynCall_iiiiii"]=Module["asm"]["sb"]).apply(null,arguments)};var dynCall_viiiiiiii=Module["dynCall_viiiiiiii"]=function(){return(dynCall_viiiiiiii=Module["dynCall_viiiiiiii"]=Module["asm"]["tb"]).apply(null,arguments)};var dynCall_viiiiiiiii=Module["dynCall_viiiiiiiii"]=function(){return(dynCall_viiiiiiiii=Module["dynCall_viiiiiiiii"]=Module["asm"]["ub"]).apply(null,arguments)};var dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=function(){return(dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=Module["asm"]["vb"]).apply(null,arguments)};var dynCall_fiff=Module["dynCall_fiff"]=function(){return(dynCall_fiff=Module["dynCall_fiff"]=Module["asm"]["wb"]).apply(null,arguments)};var dynCall_jiji=Module["dynCall_jiji"]=function(){return(dynCall_jiji=Module["dynCall_jiji"]=Module["asm"]["xb"]).apply(null,arguments)};var dynCall_iidiiii=Module["dynCall_iidiiii"]=function(){return(dynCall_iidiiii=Module["dynCall_iidiiii"]=Module["asm"]["yb"]).apply(null,arguments)};var dynCall_j=Module["dynCall_j"]=function(){return(dynCall_j=Module["dynCall_j"]=Module["asm"]["zb"]).apply(null,arguments)};var dynCall_ji=Module["dynCall_ji"]=function(){return(dynCall_ji=Module["dynCall_ji"]=Module["asm"]["Ab"]).apply(null,arguments)};var dynCall_viijii=Module["dynCall_viijii"]=function(){return(dynCall_viijii=Module["dynCall_viijii"]=Module["asm"]["Bb"]).apply(null,arguments)};var dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=function(){return(dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=Module["asm"]["Cb"]).apply(null,arguments)};var dynCall_iiiiiiiiiii=Module["dynCall_iiiiiiiiiii"]=function(){return(dynCall_iiiiiiiiiii=Module["dynCall_iiiiiiiiiii"]=Module["asm"]["Db"]).apply(null,arguments)};var dynCall_jiiii=Module["dynCall_jiiii"]=function(){return(dynCall_jiiii=Module["dynCall_jiiii"]=Module["asm"]["Eb"]).apply(null,arguments)};var dynCall_iiiiiiiiiiiii=Module["dynCall_iiiiiiiiiiiii"]=function(){return(dynCall_iiiiiiiiiiiii=Module["dynCall_iiiiiiiiiiiii"]=Module["asm"]["Fb"]).apply(null,arguments)};var dynCall_fiii=Module["dynCall_fiii"]=function(){return(dynCall_fiii=Module["dynCall_fiii"]=Module["asm"]["Gb"]).apply(null,arguments)};var dynCall_iiiiiiiiiiii=Module["dynCall_iiiiiiiiiiii"]=function(){return(dynCall_iiiiiiiiiiii=Module["dynCall_iiiiiiiiiiii"]=Module["asm"]["Hb"]).apply(null,arguments)};var dynCall_viiiiiiiiiiiiiii=Module["dynCall_viiiiiiiiiiiiiii"]=function(){return(dynCall_viiiiiiiiiiiiiii=Module["dynCall_viiiiiiiiiiiiiii"]=Module["asm"]["Ib"]).apply(null,arguments)};var dynCall_iiiiij=Module["dynCall_iiiiij"]=function(){return(dynCall_iiiiij=Module["dynCall_iiiiij"]=Module["asm"]["Jb"]).apply(null,arguments)};var dynCall_iiiiid=Module["dynCall_iiiiid"]=function(){return(dynCall_iiiiid=Module["dynCall_iiiiid"]=Module["asm"]["Kb"]).apply(null,arguments)};var dynCall_iiiiijj=Module["dynCall_iiiiijj"]=function(){return(dynCall_iiiiijj=Module["dynCall_iiiiijj"]=Module["asm"]["Lb"]).apply(null,arguments)};var dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=function(){return(dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=Module["asm"]["Mb"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["Nb"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["Ob"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["Pb"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["Qb"]).apply(null,arguments)};function invoke_ii(index,a1){var sp=stackSave();try{return dynCall_ii(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{dynCall_vi(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{dynCall_viii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return dynCall_iii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{dynCall_vii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_idiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_idiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_i(index){var sp=stackSave();try{return dynCall_i(index)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_v(index){var sp=stackSave();try{dynCall_v(index)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_diii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_diii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_diiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_diiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_fiff(index,a1,a2,a3){var sp=stackSave();try{return dynCall_fiff(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_fiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_fiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return dynCall_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){var sp=stackSave();try{dynCall_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ijjiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_ijjiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_j(index){var sp=stackSave();try{return dynCall_j(index)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ji(index,a1){var sp=stackSave();try{return dynCall_ji(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_jiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run(); + + + return Module.ready +} +); +})(); +if (typeof exports === 'object' && typeof module === 'object') + module.exports = Module; +else if (typeof define === 'function' && define['amd']) + define([], function() { return Module; }); +else if (typeof exports === 'object') + exports["Module"] = Module; diff --git a/js/jiddly-app/README.md b/js/jiddly-app/README.md deleted file mode 100644 index 58beeaccd..000000000 --- a/js/jiddly-app/README.md +++ /dev/null @@ -1,70 +0,0 @@ -# Getting Started with Create React App - -This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). - -## Available Scripts - -In the project directory, you can run: - -### `npm start` - -Runs the app in the development mode.\ -Open [http://localhost:3000](http://localhost:3000) to view it in your browser. - -The page will reload when you make changes.\ -You may also see any lint errors in the console. - -### `npm test` - -Launches the test runner in the interactive watch mode.\ -See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. - -### `npm run build` - -Builds the app for production to the `build` folder.\ -It correctly bundles React in production mode and optimizes the build for the best performance. - -The build is minified and the filenames include the hashes.\ -Your app is ready to be deployed! - -See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. - -### `npm run eject` - -**Note: this is a one-way operation. Once you `eject`, you can't go back!** - -If you aren't satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. - -Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own. - -You don't have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it. - -## Learn More - -You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). - -To learn React, check out the [React documentation](https://reactjs.org/). - -### Code Splitting - -This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting) - -### Analyzing the Bundle Size - -This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size) - -### Making a Progressive Web App - -This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app) - -### Advanced Configuration - -This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration) - -### Deployment - -This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment) - -### `npm run build` fails to minify - -This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify) diff --git a/js/jiddly-app/public/favicon.ico b/js/jiddly-app/public/favicon.ico deleted file mode 100644 index a11777cc4..000000000 Binary files a/js/jiddly-app/public/favicon.ico and /dev/null differ diff --git a/js/jiddly-app/public/js/jiddly.wasm b/js/jiddly-app/public/js/jiddly.wasm deleted file mode 100755 index c903ae2c8..000000000 Binary files a/js/jiddly-app/public/js/jiddly.wasm and /dev/null differ diff --git a/js/jiddly-app/public/logo192.png b/js/jiddly-app/public/logo192.png deleted file mode 100644 index fc44b0a37..000000000 Binary files a/js/jiddly-app/public/logo192.png and /dev/null differ diff --git a/js/jiddly-app/public/logo512.png b/js/jiddly-app/public/logo512.png deleted file mode 100644 index a4e47a654..000000000 Binary files a/js/jiddly-app/public/logo512.png and /dev/null differ diff --git a/js/jiddly-app/src/App.js b/js/jiddly-app/src/App.js deleted file mode 100644 index 377ecb07e..000000000 --- a/js/jiddly-app/src/App.js +++ /dev/null @@ -1,178 +0,0 @@ -// import logo from './logo.svg'; -import yaml from "js-yaml"; -import React, { Component } from "react"; -import "./App.scss"; -import JiddlyCore from "./JiddlyCore"; -import Player from "./renderer/Player"; -import LevelEditor from "./level_editor/LevelEditor"; -import { Col, Container, Row, Tabs, Tab } from "react-bootstrap"; - -import GDYEditor from "./GDYEditor"; -import GDYHistory from "./GDYHistory"; - -class App extends Component { - constructor() { - super(); - - this.state = { - phaserWidth: 500, - phaserHeight: 500, - gdyHash: 0, - gdyString: "", - }; - - this.jiddly = new JiddlyCore(); - - this.gdyHistory = new GDYHistory(10); - } - - hashGDYString = (gdyString) => { - let hash = 0, - i, - chr; - if (gdyString.length === 0) return hash; - for (i = 0; i < gdyString.length; i++) { - chr = gdyString.charCodeAt(i); - hash = (hash << 5) - hash + chr; - hash |= 0; // Convert to 32bit integer - } - return hash; - }; - - loadGDYURL = (url) => { - return fetch(url).then((response) => response.text()); - }; - - loadGDY = async (yamlString) => { - const gdyString = yamlString; - try { - const gdy = yaml.load(yamlString); - - return await this.jiddly.init().then(() => { - this.jiddly.loadGDY(yamlString); - - }).catch(reason => { - console.log(reason); - }).finally(() => { - this.setState((state) => { - return { - ...state, - gdyHash: this.hashGDYString(gdyString), - gdyString: gdyString, - gdy: gdy, - jiddly: this.jiddly, - }; - }); - }); - } catch (e) { - console.log(e); - this.setState((state) => { - return { - ...state, - gdyString: gdyString, - }; - }); - } - }; - - updateGDY = (gdyString) => { - - const gdy = yaml.load(gdyString); - this.gdyHistory.saveGDY(gdy.Environment.Name, gdyString); - - this.jiddly.unloadGDY(); - this.jiddly.loadGDY(gdyString); - - this.setState((state) => { - return { - ...state, - gdyHash: this.hashGDYString(gdyString), - gdyString: gdyString, - gdy: gdy, - jiddly: this.jiddly, - }; - }); - }; - - updatePhaserCanvasSize = () => { - this.setState((state) => { - return { - ...state, - phaserWidth: this.tabContentElement.offsetWidth, - phaserHeight: (4 * window.innerHeight) / 5, - }; - }); - }; - - async componentDidMount() { - this.updatePhaserCanvasSize(); - - window.addEventListener("resize", this.updatePhaserCanvasSize, false); - const currentGDY = this.gdyHistory.loadGDY("Grafter"); - if (!currentGDY) { - await this.loadGDYURL( - "resources/games/Single-Player/GVGAI/sokoban.yaml" - ).then(this.loadGDY); - } else { - await this.loadGDY(currentGDY); - } - } - - setKey = (k) => { - this.setState((state) => { - return { - ...state, - key: k, - }; - }); - }; - - render() { - return ( - - - -
{ - this.tabContentElement = tabContentElement; - }} - > - this.setKey(k)} - className="mb-3" - > - - - - - - - -
- - - - -
-
- ); - } -} - -export default App; diff --git a/js/jiddly-app/src/App.scss b/js/jiddly-app/src/App.scss deleted file mode 100644 index e7f765d77..000000000 --- a/js/jiddly-app/src/App.scss +++ /dev/null @@ -1,13 +0,0 @@ - -@import "~bootswatch/dist/slate/variables"; -@import "~bootstrap/scss/bootstrap"; -@import "~bootswatch/dist/slate/bootswatch"; - -.App { - text-align: center; -} - - -.jiddly-ide-container { - text-align: center; -} diff --git a/js/jiddly-app/src/GDYEditor.js b/js/jiddly-app/src/GDYEditor.js deleted file mode 100644 index 6b88f71ce..000000000 --- a/js/jiddly-app/src/GDYEditor.js +++ /dev/null @@ -1,39 +0,0 @@ -import { React, Component } from "react"; -import Editor from "@monaco-editor/react"; - -class GDYEditor extends Component { - constructor(props) { - super(props); - - this.state = {}; - } - - handleEditorDidMount = (editor, monaco) => { - - if(editor) { - this.editor = editor; - - this.editor.addCommand(monaco.KeyMod.CtrlCmd | monaco.KeyCode.KeyS, () => { - const updatedGDY = editor.getValue(); - - // Also want to validate the GDY first? - this.props.updateGDY(updatedGDY); - }); - } - }; - - render() { - return ( - - ); - } -} - -export default GDYEditor; diff --git a/js/jiddly-app/src/GDYHistory.js b/js/jiddly-app/src/GDYHistory.js deleted file mode 100644 index b7fda89a5..000000000 --- a/js/jiddly-app/src/GDYHistory.js +++ /dev/null @@ -1,39 +0,0 @@ -class GDYHistory { - constructor(maxHistory) { - this.maxHistory = maxHistory; - } - - saveGDY(envName, gdyString) { - let envDataString = window.localStorage.getItem(envName); - - let envData; - if (!envDataString) { - envData = { - history: [], - }; - } else { - envData = JSON.parse(envDataString); - } - - envData.history.push(gdyString); - - if (envData.history.length >= this.maxHistory) { - envData.history.shift(); - } - - window.localStorage.setItem(envName, JSON.stringify(envData)); - } - - loadGDY(envName) { - const envDataString = window.localStorage.getItem(envName); - if (!envDataString) { - return undefined; - } - - const envData = JSON.parse(envDataString); - - return envData.history[envData.history.length-1]; - } -} - -export default GDYHistory; diff --git a/js/jiddly-app/src/JiddlyCore.js b/js/jiddly-app/src/JiddlyCore.js deleted file mode 100644 index 551cdea6d..000000000 --- a/js/jiddly-app/src/JiddlyCore.js +++ /dev/null @@ -1,114 +0,0 @@ -import Module from "./wasm/jiddly.js"; - -/** - * Contains all the code for loading and interfacing with Jiddly - */ -class JiddlyCore { - constructor() { - this.moduleOverrides = { - locateFile: (file, prefix) => { - if (file === "jiddly.wasm") { - const newPath = prefix + "../../js/" + file; - console.log("new path:", newPath); - return newPath; - } - }, - }; - } - - init = async () => { - try { - this.module = await new Module(this.moduleOverrides); - this.jiddly = new this.module.Jiddly(); - } catch (error) { - console.error(error); - } - }; - - loadGDY = (gdyString) => { - try { - this.gdy = this.jiddly.loadString(gdyString); - this.game = this.gdy.createGame("Vector"); - - this.playerCount = this.gdy.getPlayerCount(); - - for (let p = 0; p < this.playerCount; p++) { - this.game.registerPlayer("Player " + p, "Vector"); - } - - this.game.init(); - this.game.reset(); - } catch (e) { - console.log("Error loading GDY", e); - } - }; - - unloadGDY = () => { - this.game.release(); - this.gdy.delete(); - this.game.delete(); - }; - - getPlayerObservations = () => {}; - - getActionInputMappings = () => { - return this.gdy.getActionInputMappings(); - }; - - getActionNames = () => { - return this.gdy.getExternalActionNames(); - }; - - getGlobalVariables = () => { - const globalVariableNames = this.game.getGlobalVariableNames(); - return this.game.getGlobalVariables(globalVariableNames); - }; - - getState = () => { - try { - return this.game.getState(); - } catch (error) { - console.error(error); - } - }; - - getHeight = () => { - return this.game.getHeight(); - }; - - getWidth = () => { - return this.game.getWidth(); - }; - - step = (action) => { - try { - - const playerActions = []; - if (!Array.isArray(action)) { - playerActions.push([action]); - } else if (!Array.isArray(action[0])) { - playerActions.push(action); - } - - const actionLength = playerActions[0].length; - - for(let p=1; p { - try { - return this.game.reset(); - } catch (error) { - console.error(error); - } - }; -} - -export default JiddlyCore; diff --git a/js/jiddly-app/src/level_editor/EditorState.js b/js/jiddly-app/src/level_editor/EditorState.js deleted file mode 100644 index ea9720dab..000000000 --- a/js/jiddly-app/src/level_editor/EditorState.js +++ /dev/null @@ -1,111 +0,0 @@ -class EditorState { - constructor() { - this.defaultTileSize = 24; - this.objectTemplates = {}; - - this.characterToObject = {}; - } - - loadTemplates(gdy, rendererName, rendererConfig) { - - this.objectTemplates[rendererName] = {}; - - if (rendererName in rendererConfig && "BackgroundTile" in rendererConfig[rendererName]) { - - const objectTemplate = { - name: "background", - id: "background", - tilingMode: "NONE", - scale: 1.0, - color: { r: 1, g: 1, b: 1 }, - zIdx: 0, - images: [rendererConfig[rendererName]["BackgroundTile"]] - }; - - this.objectTemplates[rendererName]["background"] = objectTemplate; - this.characterToObject["."] = "background"; - - } - - gdy.Objects.forEach((object) => { - const rendererConfig = object.Observers[rendererName]; - - for (let idx = 0; idx < rendererConfig.length; idx++) { - const config = rendererConfig[idx]; - - let images = []; - if (Array.isArray(config.Image)) { - images = config.Image; - } else { - images.push(config.Image); - } - - const objectTemplate = { - name: object.Name, - id: object.Name + idx, - tilingMode: config.TilingMode || "NONE", - scale: config.Scale || 1.0, - color: config.Color - ? { - r: config.Color[0], - g: config.Color[1], - b: config.Color[2], - } - : { r: 1, g: 1, b: 1 }, - zIdx: object.Z || 0, - images, - }; - - this.objectTemplates[rendererName][objectTemplate.id] = objectTemplate; - this.characterToObject[object.MapCharacter] = objectTemplate.id; - } - }); - } - - loadRenderers(gdy) { - const observers = gdy.Environment.Observers; - - this.rendererConfigs = []; - - for (const rendererName in observers) { - const rendererConfig = observers[rendererName]; - - if (!("TileSize" in rendererConfig)) { - rendererConfig["TileSize"] = this.defaultTileSize; - } - - if (!("Type" in rendererConfig)) { - if (rendererName === "SPRITE_2D" || rendererName === "Sprite2D") { - rendererConfig["Type"] = "SPRITE_2D"; - } else if (rendererName === "BLOCK_2D" || rendererName === "Block2D") { - rendererConfig["Type"] = "BLOCK_2D"; - } else { - this.displayError( - "Only Block2D and Sprite2D renderers can be used to view Jiddly environments" - ); - } - - this.loadTemplates(gdy, rendererName, rendererConfig); - - this.rendererConfigs[rendererName] = rendererConfig; - } - } - } - - loadGDY(gdy) { - this.loadRenderers(gdy); - } - - loadLevelString(levelString) { - - - } - - addTile() {} - - removeTile() {} - - toLevelString() {} -} - -export default EditorState; diff --git a/js/jiddly-app/src/level_editor/scenes/EditorScene.js b/js/jiddly-app/src/level_editor/scenes/EditorScene.js deleted file mode 100644 index 2407df054..000000000 --- a/js/jiddly-app/src/level_editor/scenes/EditorScene.js +++ /dev/null @@ -1,276 +0,0 @@ -import Phaser from "phaser"; - -const COLOR_PRIMARY = 0x4e342e; -const COLOR_LIGHT = 0x7b5e57; -const COLOR_DARK = 0x260e04; - -class EditorScene extends Phaser.Scene { - constructor() { - super("EditorScene"); - } - - - - loadTemplates = () => { - this.load.baseURL = "resources/images/"; - - // this.renderConfig = getRendererConfig("Sprite2D"); - - // this.objectTemplates - - }; - - createTileMenu() { - this.print = this.add.text(0, 0, ""); - - var tabs = this.rexUI.add.tabs({ - x: 0, - y: 300, - - panel: this.rexUI.add.gridTable({ - background: this.rexUI.add.roundRectangle( - 0, - 0, - 20, - 10, - 10, - COLOR_PRIMARY - ), - - table: { - width: 250, - height: 400, - - cellWidth: 120, - cellHeight: 60, - columns: 2, - mask: { - padding: 2, - }, - }, - - slider: { - track: this.rexUI.add.rectangle(0, 0, 20, 10, 10, COLOR_DARK), - thumb: this.rexUI.add.rectangle(0, 0, 0, 0, 9, COLOR_LIGHT), - }, - - //scroller: true, - - createCellContainerCallback: function (cell) { - var scene = cell.scene, - width = cell.width, - height = cell.height, - item = cell.item, - index = cell.index; - return scene.rexUI.add.label({ - width: width, - height: height, - - background: scene.rexUI.add - .roundRectangle(0, 0, 20, 20, 0) - .setStrokeStyle(2, COLOR_DARK), - icon: scene.rexUI.add.roundRectangle( - 0, - 0, - 20, - 20, - 10, - item.color - ), - text: scene.add.text(0, 0, item.id), - - space: { - icon: 10, - left: 15, - }, - }); - }, - }), - - // leftButtons: [ - // this.createButton(this, 2, "AA"), - // this.createButton(this, 2, "BB"), - // this.createButton(this, 2, "CC"), - // this.createButton(this, 2, "DD"), - // ], - - rightButtons: [this.createButton(this, 0, "+"), this.createButton(this, 0, "-")], - - space: { - leftButtonsOffset: 20, - rightButtonsOffset: 30, - - leftButton: 1, - }, - }) - .layout(); - //.drawBounds(this.add.graphics(), 0xff0000); - const items = this.createItems(); - tabs.on( - "button.click", - function (button, groupName, index) { - switch (groupName) { - case "left": - // Highlight button - if (this._prevTypeButton) { - this._prevTypeButton - .getElement("background") - .setFillStyle(COLOR_DARK); - } - button.getElement("background").setFillStyle(COLOR_PRIMARY); - this._prevTypeButton = button; - if (this._prevSortButton === undefined) { - return; - } - break; - - case "right": - // Highlight button - if (this._prevSortButton) { - this._prevSortButton - .getElement("background") - .setFillStyle(COLOR_DARK); - } - button.getElement("background").setFillStyle(COLOR_PRIMARY); - this._prevSortButton = button; - if (this._prevTypeButton === undefined) { - return; - } - break; - } - - // Load items into grid table - this.getElement("panel").setItems(items).scrollToTop(); - }, - tabs - ); - - // Grid table - tabs - .getElement("panel") - .on( - "cell.click", - function (cellContainer, cellIndex) { - this.print.text += cellIndex + ": " + cellContainer.text + "\n"; - }, - this - ) - .on( - "cell.over", - function (cellContainer, cellIndex) { - cellContainer - .getElement("background") - .setStrokeStyle(2, COLOR_LIGHT) - .setDepth(1); - }, - this - ) - .on( - "cell.out", - function (cellContainer, cellIndex) { - cellContainer - .getElement("background") - .setStrokeStyle(2, COLOR_DARK) - .setDepth(0); - }, - this - ); - - tabs.emitButtonClick("left", 0).emitButtonClick("right", 0); - } - - createItems(count) { - var TYPE = ["AA", "BB", "CC", "DD"]; - - const items = []; - // Create a collection - for (var i = 0; i < count; i++) { - items.push({ - type: TYPE[i % 4], - id: i, - color: 0xffffff, - }); - } - return items; - } - - createButton(scene, direction, text) { - var radius; - switch (direction) { - case 0: // Right - radius = { - tr: 20, - br: 20, - }; - break; - case 2: // Left - radius = { - tl: 20, - bl: 20, - }; - break; - } - return scene.rexUI.add.label({ - width: 50, - height: 40, - background: scene.rexUI.add.roundRectangle( - 0, - 0, - 50, - 50, - radius, - COLOR_DARK - ), - text: scene.add.text(0, 0, text, { - fontSize: "18pt", - }), - space: { - left: 10, - }, - }); - } - - init = (data) => { - - this.editorState = data.editorState; - - } - - preload() { - console.log("Editor Scene - Preload"); - - // load object images - this.load.scenePlugin({ - key: "rexuiplugin", - url: "https://raw.githubusercontent.com/rexrainbow/phaser3-rex-notes/master/dist/rexuiplugin.min.js", - sceneKey: "rexUI", - }); - - this.loadTemplates(this.editorState.objectTemplates); - } - - create() { - console.log("Editor Scene - Create"); - - this.text = this.add.text( - this.cameras.main.width / 2, - this.cameras.main.height / 2, - "Loading Level Editor", - { - font: "32px Arial", - fill: "#ff0044", - align: "center", - } - ); - - //this.createTileMenu(); - } - - update() { - this.text.setX(this.cameras.main.width / 2); - this.text.setY(this.cameras.main.height / 2); - this.text.setOrigin(0.5, 0.5); - } -} - -export default EditorScene; diff --git a/js/jiddly-app/src/level_editor/scenes/LoadingScene.js b/js/jiddly-app/src/level_editor/scenes/LoadingScene.js deleted file mode 100644 index bfbe80aec..000000000 --- a/js/jiddly-app/src/level_editor/scenes/LoadingScene.js +++ /dev/null @@ -1,34 +0,0 @@ -import Phaser from "phaser"; - -class LoadingScene extends Phaser.Scene { - constructor() { - super("LoadingScene"); - } - - preload() { - console.log("Loading Scene - Preload"); - } - - create() { - console.log("Loading Scene - Create"); - - this.text = this.add.text( - this.cameras.main.width / 2, - this.cameras.main.height / 2, - "Loading Griddly GDY", - { - font: "32px Arial", - fill: "#ff0044", - align: "center", - } - ); - } - - update() { - this.text.setX(this.cameras.main.width / 2); - this.text.setY(this.cameras.main.height / 2); - this.text.setOrigin(0.5, 0.5); - } -} - -export default LoadingScene; diff --git a/js/jiddly-app/src/renderer/Player.js b/js/jiddly-app/src/renderer/Player.js deleted file mode 100644 index 4758c5101..000000000 --- a/js/jiddly-app/src/renderer/Player.js +++ /dev/null @@ -1,59 +0,0 @@ -import { React, Component } from "react"; -import Phaser from "phaser"; - -import HumanPlayerScene from "./scenes/HumanPlayerScene"; -import LoadingScene from "./scenes/LoadingScene"; - -class Player extends Component { - - updateCanvasSize = () => { - this.game.scale.resize(this.props.width, this.props.height); - }; - - componentDidMount() { - const config = { - type: Phaser.AUTO, - parent: this.divElement, - backgroundColor: "#000000", - scale: { - expandParent: false, - }, - scene: [LoadingScene, HumanPlayerScene], - }; - - this.game = new Phaser.Game(config); - - this.updateCanvasSize(); - } - - componentDidUpdate(prevProps) { - this.updateCanvasSize(); - - if (prevProps.gdyHash === 0 && this.props.gdy) { - this.game.scene.remove("LoadingScene"); - this.game.scene.start("HumanPlayerScene", { - gdy: this.props.gdy, - rendererName: "Sprite2D", - jiddly: this.props.jiddly, - }); - } else if (prevProps.gdyHash !== this.props.gdyHash) { - this.game.scene.getScene("HumanPlayerScene").scene.restart({ - gdy: this.props.gdy, - rendererName: "Sprite2D", - jiddly: this.props.jiddly, - }); - } - } - - render() { - return ( -
{ - this.divElement = divElement; - }} - >
- ); - } -} - -export default Player; diff --git a/js/jiddly-app/src/renderer/scenes/HumanPlayerScene.js b/js/jiddly-app/src/renderer/scenes/HumanPlayerScene.js deleted file mode 100644 index 330ffc50c..000000000 --- a/js/jiddly-app/src/renderer/scenes/HumanPlayerScene.js +++ /dev/null @@ -1,473 +0,0 @@ -import Phaser from "phaser"; -import Block2DRenderer from "./Block2DRenderer"; -import Sprite2DRenderer from "./Sprite2DRenderer"; - -class HumanPlayerScene extends Phaser.Scene { - constructor() { - super("HumanPlayerScene"); - - this.stateHash = 0; - this.loaded = false; - this.defaultTileSize = 24; - } - - getRendererConfig = (rendererName) => { - let rendererConfig = {}; - const observers = this.gdy.Environment.Observers; - if (rendererName in observers) { - rendererConfig = observers[rendererName]; - } - - if (!("TileSize" in rendererConfig)) { - rendererConfig["TileSize"] = this.defaultTileSize; - } - - if (!("Type" in rendererConfig)) { - if (rendererName === "SPRITE_2D" || rendererName === "Sprite2D") { - rendererConfig["Type"] = "SPRITE_2D"; - } else if (rendererName === "BLOCK_2D" || rendererName === "Block2D") { - rendererConfig["Type"] = "BLOCK_2D"; - } else { - this.displayError( - "Only Block2D and Sprite2D renderers can be used to view Jiddly environments" - ); - } - } - - return rendererConfig; - }; - - initModals = () => { - // Set the modals to invisible - this.variableDebugModalActive = false; - this.controlsModalActive = false; - - // Get all the global variables - - this.globalVariableDebugText = this.getGlobalVariableDebugText(); - - this.variableDebugModal = this.add.text( - this.cameras.main.width / 2, - this.cameras.main.height / 5, - this.globalVariableDebugText - ); - this.variableDebugModal.setBackgroundColor("#000000AA"); - this.variableDebugModal.setDepth(100); - this.variableDebugModal.setOrigin(0, 0); - this.variableDebugModal.setVisible(false); - - const actionDescription = []; - const actionNames = this.jiddly.getActionNames(); - actionNames.forEach((actionName) => { - actionDescription.push(actionName + ": "); - this.keyMap.forEach((actionMapping, key) => { - if (actionMapping.actionName === actionName) - actionDescription.push( - " " + String.fromCharCode(key) + ": " + actionMapping.description - ); - }); - actionDescription.push(""); - }); - - this.controlsModal = this.add.text( - this.cameras.main.width / 2, - this.cameras.main.height / 5, - [ - "Name: " + this.gdy.Environment.Name, - "Description: " + this.gdy.Environment.Description, - "", - "Actions:", - "", - ...actionDescription, - ] - ); - this.controlsModal.setWordWrapWidth(this.cameras.main.width / 2); - this.controlsModal.setBackgroundColor("#000000AA"); - this.controlsModal.setDepth(100); - this.controlsModal.setOrigin(0.5, 0); - this.controlsModal.setVisible(false); - }; - - init = (data) => { - try { - this.data = data; - - // Functions to interact with the environment - this.jiddly = this.data.jiddly; - - // Data about the environment - this.gdy = this.data.gdy; - - this.gridHeight = this.jiddly.getHeight(); - this.gridWidth = this.jiddly.getWidth(); - - this.levelRendererName = this.data.rendererName; - - this.renderConfig = this.getRendererConfig(this.levelRendererName); - this.avatarObject = this.gdy.Environment.Player.AvatarObject; - - if (this.renderConfig.Type === "BLOCK_2D") { - this.levelRenderer = new Block2DRenderer( - this, - this.renderConfig, - this.avatarObject - ); - } else if (this.renderConfig.Type === "SPRITE_2D") { - this.levelRenderer = new Sprite2DRenderer( - this, - this.renderConfig, - this.avatarObject - ); - } - } catch (e) { - this.displayError("Cannot load GDY file." + e); - } - - this.renderData = { - objects: {}, - }; - }; - - displayError = (error) => { - console.log("Display Error: ", error); - }; - - updateState = (state) => { - const newObjectIds = state.objects.map((object) => { - return object.id; - }); - - this.levelRenderer.beginUpdate(state.objects); - - state.objects.forEach((object) => { - const objectTemplateName = object.name + object.renderTileId; - if (object.id in this.renderData.objects) { - const currentObjectData = this.renderData.objects[object.id]; - this.levelRenderer.updateObject( - currentObjectData.sprite, - object.name, - objectTemplateName, - object.location.x, - object.location.y, - object.orientation - ); - - this.renderData.objects[object.id] = { - ...currentObjectData, - object, - }; - } else { - const sprite = this.levelRenderer.addObject( - object.name, - objectTemplateName, - object.location.x, - object.location.y, - object.orientation - ); - - this.renderData.objects[object.id] = { - object, - sprite, - }; - } - }); - - for (const k in this.renderData.objects) { - const id = this.renderData.objects[k].object.id; - if (!newObjectIds.includes(id)) { - this.renderData.objects[k].sprite.destroy(); - delete this.renderData.objects[k]; - } - } - }; - - toMovementKey(vector) { - return `${vector.x},${vector.y}`; - } - - getGlobalVariableDebugText() { - const globalVariables = this.jiddly.getGlobalVariables(); - - const globalVariableDescription = []; - const playerVariableDescription = []; - for (const variableName in globalVariables) { - const variableData = globalVariables[variableName]; - if (Object.keys(variableData).length === 1) { - // We have a global variable - const variableValue = variableData[0]; - globalVariableDescription.push(variableName + ": " + variableValue); - } else { - // We have a player variable - if (this.jiddly.playerCount === 1) { - const variableValue = variableData[1]; - playerVariableDescription.push(variableName + ": " + variableValue); - } else { - let variableValues = ""; - for (let p = 0; p < this.jiddly.playerCount; p++) { - const variableValue = variableData[p + 1]; - variableValues += "\t" + (p + 1) + ": " + variableValue; - } - - playerVariableDescription.push(variableName + ":" + variableValues); - } - } - } - - return [ - "Global Variables:", - ...globalVariableDescription, - "", - "Player Variables:", - ...playerVariableDescription, - ]; - } - - updateModals() { - if (this.variableDebugModalActive) { - this.variableDebugModal.setText(this.globalVariableDebugText); - this.variableDebugModal.setPosition(0, 0); - this.variableDebugModal.setWordWrapWidth(this.cameras.main.width / 2); - } - - if (this.controlsModalActive) { - this.controlsModal.setWordWrapWidth(this.cameras.main.width / 2); - this.controlsModal.setPosition( - this.cameras.main.width / 2, - this.cameras.main.height / 5 - ); - } - } - - toggleVariableDebugModal() { - this.variableDebugModalActive = !this.variableDebugModalActive; - this.variableDebugModal.setVisible(this.variableDebugModalActive); - } - - toggleControlsModal() { - this.controlsModalActive = !this.controlsModalActive; - this.controlsModal.setVisible(this.controlsModalActive); - } - - setupKeyboardMapping = () => { - const actionInputMappings = this.jiddly.getActionInputMappings(); - const actionNames = this.jiddly.getActionNames(); - - const actionKeyOrder = [ - Phaser.Input.Keyboard.KeyCodes.THREE, - Phaser.Input.Keyboard.KeyCodes.TWO, - Phaser.Input.Keyboard.KeyCodes.ONE, - Phaser.Input.Keyboard.KeyCodes.L, - Phaser.Input.Keyboard.KeyCodes.O, - Phaser.Input.Keyboard.KeyCodes.M, - Phaser.Input.Keyboard.KeyCodes.K, - Phaser.Input.Keyboard.KeyCodes.N, - Phaser.Input.Keyboard.KeyCodes.J, - Phaser.Input.Keyboard.KeyCodes.U, - Phaser.Input.Keyboard.KeyCodes.B, - Phaser.Input.Keyboard.KeyCodes.H, - Phaser.Input.Keyboard.KeyCodes.Y, - Phaser.Input.Keyboard.KeyCodes.V, - Phaser.Input.Keyboard.KeyCodes.G, - Phaser.Input.Keyboard.KeyCodes.T, - Phaser.Input.Keyboard.KeyCodes.C, - Phaser.Input.Keyboard.KeyCodes.F, - Phaser.Input.Keyboard.KeyCodes.R, - Phaser.Input.Keyboard.KeyCodes.Q, - Phaser.Input.Keyboard.KeyCodes.E, - ]; - - const movementKeySets = [ - { - "0,-1": Phaser.Input.Keyboard.KeyCodes.UP, - "-1,0": Phaser.Input.Keyboard.KeyCodes.LEFT, - "0,1": Phaser.Input.Keyboard.KeyCodes.DOWN, - "1,0": Phaser.Input.Keyboard.KeyCodes.RIGHT, - }, - { - "0,-1": Phaser.Input.Keyboard.KeyCodes.W, - "-1,0": Phaser.Input.Keyboard.KeyCodes.A, - "0,1": Phaser.Input.Keyboard.KeyCodes.S, - "1,0": Phaser.Input.Keyboard.KeyCodes.D, - }, - ]; - - this.input.keyboard.on("keydown-P", (event) => { - this.toggleControlsModal(); - }); - - this.input.keyboard.on("keydown-I", (event) => { - this.toggleVariableDebugModal(); - }); - - this.keyMap = new Map(); - - actionNames.forEach((actionName, actionTypeId) => { - const actionMapping = actionInputMappings[actionName]; - if (!actionMapping.internal) { - const inputMappings = Object.entries(actionMapping.inputMappings); - console.log(inputMappings); - - const actionDirections = new Set(); - inputMappings.forEach((inputMapping) => { - // check that all the vectorToDest are different - const mapping = inputMapping[1]; - actionDirections.add(this.toMovementKey(mapping.vectorToDest)); - }); - - const directional = actionDirections.size !== 1; - - if (directional) { - // pop movement keys - const movementKeys = movementKeySets.pop(); - inputMappings.forEach((inputMapping) => { - const actionId = Number(inputMapping[0]); - const mapping = inputMapping[1]; - - let key; - if (this.toMovementKey(mapping.vectorToDest) in movementKeys) { - key = movementKeys[this.toMovementKey(mapping.vectorToDest)]; - } else if ( - this.toMovementKey(mapping.orientationVector) in movementKeys - ) { - key = movementKeys[this.toMovementKey(mapping.orientationVector)]; - } - this.keyMap.set(key, { - actionName, - actionTypeId, - actionId, - description: mapping.description, - }); - }); - } else { - // We have an action Key - - inputMappings.forEach((inputMapping) => { - const key = actionKeyOrder.pop(); - - const actionId = Number(inputMapping[0]); - const mapping = inputMapping[1]; - - this.keyMap.set(key, { - actionName, - actionTypeId, - actionId, - description: mapping.description, - }); - }); - } - } - }); - - const allKeys = {}; - - this.keyMap.forEach((actionMapping, key) => { - allKeys[key] = key; - }); - - this.keyboardMapping = this.input.keyboard.addKeys(allKeys, false); - - // When the mouse leaves the window we stop collecting keys - this.input.on(Phaser.Input.Events.POINTER_DOWN_OUTSIDE, () => { - this.input.keyboard.enabled = false; - }); - - // When we click back in the scene we collect keys - this.input.on(Phaser.Input.Events.POINTER_DOWN, () => { - document.activeElement.blur(); - this.input.keyboard.enabled = true; - }); - }; - - processUserAction = () => { - if (!this.cooldown) { - this.cooldown = true; - setTimeout(() => { - this.cooldown = false; - }, 50); - - let action = []; - this.keyMap.forEach((actionMapping, key) => { - if (this.keyboardMapping[key].isDown) { - action.push(actionMapping.actionTypeId); - action.push(actionMapping.actionId); - } - }); - - if (action.length) { - console.log("Action: ", action); - const stepResult = this.jiddly.step(action); - console.log("Step Result", stepResult); - - this.globalVariableDebugText = this.getGlobalVariableDebugText(); - - if (stepResult.terminated) { - this.jiddly.reset(); - } - - return this.jiddly.getState(); - } - } else { - return false; - } - }; - - preload = () => { - const envName = this.gdy.Environment.Name; - - this.loadingText = this.add.text( - this.cameras.main.width / 2, - this.cameras.main.height / 2, - "Loading assets for " + envName, - { - font: "32px Arial", - fill: "#ff0044", - align: "center", - } - ); - - this.loadingText.setX(this.cameras.main.width / 2); - this.loadingText.setY(this.cameras.main.height / 2); - this.loadingText.setOrigin(0.5, 0.5); - if (this.levelRenderer) { - this.levelRenderer.loadTemplates(this.gdy.Objects); - } - }; - - create = () => { - console.log("Create"); - - this.loadingText.destroy(); - this.loaded = true; - - if (this.levelRenderer) { - this.mapping = this.setupKeyboardMapping(); - this.levelRenderer.init(this.gridWidth, this.gridHeight); - this.initModals(); - this.updateState(this.jiddly.getState()); - this.updateModals(); - } - }; - - update = () => { - if (!this.loaded) { - this.loadingText.setX(this.cameras.main.width / 2); - this.loadingText.setY(this.cameras.main.height / 2); - this.loadingText.setOrigin(0.5, 0.5); - } else { - if (this.levelRenderer) { - const state = this.processUserAction(); - - if (state && this.stateHash !== state.hash) { - this.stateHash = state.hash; - this.updateState(state); - } - - this.updateModals(); - - - } - } - }; -} - -export default HumanPlayerScene; diff --git a/js/jiddly-app/src/wasm/jiddly.js b/js/jiddly-app/src/wasm/jiddly.js deleted file mode 100644 index 856c980a2..000000000 --- a/js/jiddly-app/src/wasm/jiddly.js +++ /dev/null @@ -1,21 +0,0 @@ - -var Module = (() => { - var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; - - return ( -function(Module) { - Module = Module || {}; - -var Module=typeof Module!="undefined"?Module:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=true;var ENVIRONMENT_IS_WORKER=false;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=(url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText});if(ENVIRONMENT_IS_WORKER){readBinary=(url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)})}readAsync=((url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=(()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()});xhr.onerror=onerror;xhr.send(null)})}setWindowTitle=(title=>document.title=title)}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var tempRet0=0;var setTempRet0=value=>{tempRet0=value};var getTempRet0=()=>tempRet0;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):undefined;function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder){return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))}else{var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str}}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}var wasmBinaryFile;wasmBinaryFile="jiddly.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;exports=Asyncify.instrumentWasmExports(exports);Module["asm"]=exports;wasmMemory=Module["asm"]["Na"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["Qa"];addOnInit(Module["asm"]["Oa"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);exports=Asyncify.instrumentWasmExports(exports);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}var tempDouble;var tempI64;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func=="number"){if(callback.arg===undefined){(function(){dynCall_v.call(null,func)})()}else{(function(a1){dynCall_vi.apply(null,[func,a1])})(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function ___cxa_allocate_exception(size){return _malloc(size+16)+16}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-16;this.set_type=function(type){HEAP32[this.ptr+4>>2]=type};this.get_type=function(){return HEAP32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1}}function CatchInfo(ptr){this.free=function(){_free(this.ptr);this.ptr=0};this.set_base_ptr=function(basePtr){HEAP32[this.ptr>>2]=basePtr};this.get_base_ptr=function(){return HEAP32[this.ptr>>2]};this.set_adjusted_ptr=function(adjustedPtr){HEAP32[this.ptr+4>>2]=adjustedPtr};this.get_adjusted_ptr_addr=function(){return this.ptr+4};this.get_adjusted_ptr=function(){return HEAP32[this.ptr+4>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_exception_info().get_type());if(isPointer){return HEAP32[this.get_base_ptr()>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.get_base_ptr()};this.get_exception_info=function(){return new ExceptionInfo(this.get_base_ptr())};if(ptr===undefined){this.ptr=_malloc(8);this.set_adjusted_ptr(0)}else{this.ptr=ptr}}var exceptionCaught=[];function exception_addRef(info){info.add_ref()}var uncaughtExceptionCount=0;function ___cxa_begin_catch(ptr){var catchInfo=new CatchInfo(ptr);var info=catchInfo.get_exception_info();if(!info.get_caught()){info.set_caught(true);uncaughtExceptionCount--}info.set_rethrown(false);exceptionCaught.push(catchInfo);exception_addRef(info);return catchInfo.get_exception_ptr()}var exceptionLast=0;function ___cxa_free_exception(ptr){return _free(new ExceptionInfo(ptr).ptr)}function exception_decRef(info){if(info.release_ref()&&!info.get_rethrown()){var destructor=info.get_destructor();if(destructor){(function(a1){return dynCall_ii.apply(null,[destructor,a1])})(info.excPtr)}___cxa_free_exception(info.excPtr)}}function ___cxa_end_catch(){_setThrew(0);var catchInfo=exceptionCaught.pop();exception_decRef(catchInfo.get_exception_info());catchInfo.free();exceptionLast=0}function ___resumeException(catchInfoPtr){var catchInfo=new CatchInfo(catchInfoPtr);var ptr=catchInfo.get_base_ptr();if(!exceptionLast){exceptionLast=ptr}catchInfo.free();throw ptr}function ___cxa_find_matching_catch_2(){var thrown=exceptionLast;if(!thrown){setTempRet0(0);return 0|0}var info=new ExceptionInfo(thrown);var thrownType=info.get_type();var catchInfo=new CatchInfo;catchInfo.set_base_ptr(thrown);catchInfo.set_adjusted_ptr(thrown);if(!thrownType){setTempRet0(0);return catchInfo.ptr|0}var typeArray=Array.prototype.slice.call(arguments);for(var i=0;i>2])}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}return name}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}};return errorClass}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i{if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(()=>{typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}}function __embind_finalize_value_object(structType){var reg=structRegistrations[structType];delete structRegistrations[structType];var rawConstructor=reg.rawConstructor;var rawDestructor=reg.rawDestructor;var fieldRecords=reg.fields;var fieldTypes=fieldRecords.map(field=>field.getterReturnType).concat(fieldRecords.map(field=>field.setterArgumentType));whenDependentTypesAreResolved([structType],fieldTypes,fieldTypes=>{var fields={};fieldRecords.forEach((field,i)=>{var fieldName=field.fieldName;var getterReturnType=fieldTypes[i];var getter=field.getter;var getterContext=field.getterContext;var setterArgumentType=fieldTypes[i+fieldRecords.length];var setter=field.setter;var setterContext=field.setterContext;fields[fieldName]={read:ptr=>{return getterReturnType["fromWireType"](getter(getterContext,ptr))},write:(ptr,o)=>{var destructors=[];setter(setterContext,ptr,setterArgumentType["toWireType"](destructors,o));runDestructors(destructors)}}});return[{name:reg.name,"fromWireType":function(ptr){var rv={};for(var i in fields){rv[i]=fields[i].read(ptr)}rawDestructor(ptr);return rv},"toWireType":function(destructors,o){for(var fieldName in fields){if(!(fieldName in o)){throw new TypeError('Missing field: "'+fieldName+'"')}}var ptr=rawConstructor();for(fieldName in fields){fields[fieldName].write(ptr,o[fieldName])}if(destructors!==null){destructors.push(rawDestructor,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:rawDestructor}]})}function __embind_register_bigint(primitiveType,name,size,minRange,maxRange){}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+size)}}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}function registerType(rawType,registeredInstance,options={}){if(!("argPackAdvance"in registeredInstance)){throw new TypeError("registerType registeredInstance requires argPackAdvance")}var name=registeredInstance.name;if(!rawType){throwBindingError('type "'+name+'" must have a positive integer typeid pointer')}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError("Cannot register type '"+name+"' twice")}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(wt){return!!wt},"toWireType":function(destructors,o){return o?trueValue:falseValue},"argPackAdvance":8,"readValueFromPointer":function(pointer){var heap;if(size===1){heap=HEAP8}else if(size===2){heap=HEAP16}else if(size===4){heap=HEAP32}else{throw new TypeError("Unknown boolean type size: "+name)}return this["fromWireType"](heap[pointer>>shift])},destructorFunction:null})}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted")}var finalizationRegistry=false;function detachFinalizer(handle){}function runDestructor($$){if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function releaseClassHandle($$){$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}var registeredPointers={};function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}}var delayFunction=undefined;function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module["getInheritedInstanceCount"]=getInheritedInstanceCount;Module["getLiveInheritedInstances"]=getLiveInheritedInstances;Module["flushPendingDeletes"]=flushPendingDeletes;Module["setDelayFunction"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError("ptr should not be undefined")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record}}))}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]()}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}function attachFinalizer(handle){if("undefined"===typeof FinalizationRegistry){attachFinalizer=(handle=>handle);return handle}finalizationRegistry=new FinalizationRegistry(info=>{releaseClassHandle(info.$$)});attachFinalizer=(handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$:$$};finalizationRegistry.register(handle,info,handle)}return handle});detachFinalizer=(handle=>finalizationRegistry.unregister(handle));return attachFinalizer(handle)}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}}function ClassHandle_isDeleted(){return!this.$$.ptr}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}function init_ClassHandle(){ClassHandle.prototype["isAliasOf"]=ClassHandle_isAliasOf;ClassHandle.prototype["clone"]=ClassHandle_clone;ClassHandle.prototype["delete"]=ClassHandle_delete;ClassHandle.prototype["isDeleted"]=ClassHandle_isDeleted;ClassHandle.prototype["deleteLater"]=ClassHandle_deleteLater}function ClassHandle(){}function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError("Function '"+humanName+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+proto[methodName].overloadTable+")!")}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError("Cannot register public name '"+name+"' twice")}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError("Cannot register multiple overloads of a function with the same number of arguments ("+numArguments+")!")}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError("Expected null or instance of "+desiredClass.name+", got an instance of "+ptrClass.name)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,Emval.toHandle(function(){clonedHandle["delete"]()}));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError("Unsupporting sharing policy")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+handle.$$.ptrType.name+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle["delete"]()}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype["argPackAdvance"]=8;RegisteredPointer.prototype["readValueFromPointer"]=simpleReadValueFromPointer;RegisteredPointer.prototype["deleteObject"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype["fromWireType"]=RegisteredPointer_fromWireType}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this["toWireType"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this["toWireType"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this["toWireType"]=genericPointerToWireType}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function dynCallLegacy(sig,ptr,args){var f=Module["dynCall_"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}function dynCall(sig,ptr,args){return dynCallLegacy(sig,ptr,args)}function getDynCaller(sig,ptr){var argCache=[];return function(){argCache.length=0;Object.assign(argCache,arguments);return dynCall(sig,ptr,argCache)}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(){return getDynCaller(signature,rawFunction)}var fp=makeDynCaller();if(typeof fp!="function"){throwBindingError("unknown function pointer with signature "+signature+": "+rawFunction)}return fp}var UnboundTypeError=undefined;function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(message+": "+unboundTypes.map(getTypeName).join([", "]))}function __embind_register_class(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor){name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);if(upcast){upcast=embind__requireFunction(upcastSignature,upcast)}if(downcast){downcast=embind__requireFunction(downcastSignature,downcast)}rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError("Cannot construct "+name+" due to unbound types",[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(legalFunctionName,function(){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError("Use 'new' to construct "+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+" has no accessible constructor")}var body=registeredClass.constructor_body[arguments.length];if(undefined===body){throw new BindingError("Tried to invoke ctor of "+name+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(registeredClass.constructor_body).toString()+") parameters instead!")}return body.apply(this,arguments)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+"*",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+" const*",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})}function heap32VectorToArray(count,firstElement){var array=[];for(var i=0;i>2)+i])}return array}function __embind_register_class_constructor(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor){assert(argCount>0);var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName="constructor "+classType.name;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError("Cannot register multiple constructors with identical number of parameters ("+(argCount-1)+") for class '"+classType.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!")}classType.registeredClass.constructor_body[argCount-1]=(()=>{throwUnboundTypeError("Cannot construct "+classType.name+" due to unbound types",rawArgTypes)});whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return[]});return[]})}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError("new_ called with constructor type "+typeof constructor+" which is not a function")}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function runAndAbortIfError(func){try{return func()}catch(e){abort(e)}}function callUserCallback(func,synchronous){if(ABORT){return}if(synchronous){func();return}try{func()}catch(e){handleException(e)}}var Asyncify={State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId:function(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},instrumentWasmExports:function(exports){var ret={};for(var x in exports){(function(x){var original=exports[x];if(typeof original=="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(null,arguments)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();assert(y===x);Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}})(x)}return ret},maybeStopUnwind:function(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_unwind"]);if(typeof Fibers!="undefined"){Fibers.trampoline()}}},whenDone:function(){return new Promise((resolve,reject)=>{Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData:function(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader:function(ptr,stack,stackSize){HEAP32[ptr>>2]=stack;HEAP32[ptr+4>>2]=stack+stackSize},setDataRewindFunc:function(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFunc:function(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];var func=Module["asm"][name];return func},doRewind:function(ptr){var start=Asyncify.getDataRewindFunc(ptr);return start()},handleSleep:function(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync(handleSleepReturnValue=>{if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue||0;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(()=>Module["_asyncify_start_rewind"](Asyncify.currData));if(typeof Browser!="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();runAndAbortIfError(()=>Module["_asyncify_start_unwind"](Asyncify.currData));if(typeof Browser!="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_rewind"]);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(func=>callUserCallback(func))}else{abort("invalid state: "+Asyncify.state)}return Asyncify.handleSleepReturnValue},handleAsync:function(startAsync){return Asyncify.handleSleep(wakeUp=>{startAsync().then(wakeUp)})}};function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i0?", ":"")+argsListWired}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";args1.push("Asyncify");args2.push(Asyncify);invokerFnBody+="function onDone("+(returns?"rv":"")+") {\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i{if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle)}return emval_handle_array[handle].value},toHandle:value=>{switch(value){case undefined:return 1;case null:return 2;case true:return 3;case false:return 4;default:{var handle=emval_free_list.length?emval_free_list.pop():emval_handle_array.length;emval_handle_array[handle]={refcount:1,value:value};return handle}}}};function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(handle){var rv=Emval.toValue(handle);__emval_decref(handle);return rv},"toWireType":function(destructors,value){return Emval.toHandle(value)},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:null})}function enumReadValueFromPointer(name,shift,signed){switch(shift){case 0:return function(pointer){var heap=signed?HEAP8:HEAPU8;return this["fromWireType"](heap[pointer])};case 1:return function(pointer){var heap=signed?HEAP16:HEAPU16;return this["fromWireType"](heap[pointer>>1])};case 2:return function(pointer){var heap=signed?HEAP32:HEAPU32;return this["fromWireType"](heap[pointer>>2])};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_enum(rawType,name,size,isSigned){var shift=getShiftFromSize(size);name=readLatin1String(name);function ctor(){}ctor.values={};registerType(rawType,{name:name,constructor:ctor,"fromWireType":function(c){return this.constructor.values[c]},"toWireType":function(destructors,c){return c.value},"argPackAdvance":8,"readValueFromPointer":enumReadValueFromPointer(name,shift,isSigned),destructorFunction:null});exposePublicSymbol(name,ctor)}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl}function __embind_register_enum_value(rawEnumType,name,enumValue){var enumType=requireRegisteredType(rawEnumType,"enum");name=readLatin1String(name);var Enum=enumType.constructor;var Value=Object.create(enumType.constructor.prototype,{value:{value:enumValue},constructor:{value:createNamedFunction(enumType.name+"_"+name,function(){})}});Enum.values[enumValue]=Value;Enum[name]=Value}function _embind_repr(v){if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(value){return value},"toWireType":function(destructors,value){return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=(value=>value<>>bitshift)}var isUnsignedType=name.includes("unsigned");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":toWireType,"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_smart_ptr(rawType,rawPointeeType,name,sharingPolicy,getPointeeSignature,rawGetPointee,constructorSignature,rawConstructor,shareSignature,rawShare,destructorSignature,rawDestructor){name=readLatin1String(name);rawGetPointee=embind__requireFunction(getPointeeSignature,rawGetPointee);rawConstructor=embind__requireFunction(constructorSignature,rawConstructor);rawShare=embind__requireFunction(shareSignature,rawShare);rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);whenDependentTypesAreResolved([rawType],[rawPointeeType],function(pointeeType){pointeeType=pointeeType[0];var registeredPointer=new RegisteredPointer(name,pointeeType.registeredClass,false,false,true,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor);return[registeredPointer]})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;ilengthBytesUTF8(value))}else{getLength=(()=>value.length)}var length=getLength();var ptr=_malloc(4+length+1);HEAPU32[ptr>>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;iHEAPU16);shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=(()=>HEAPU32);shift=2}registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},"toWireType":function(destructors,value){if(!(typeof value=="string")){throwBindingError("Cannot pass non-string to C++ string type "+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_value_object(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor){structRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),fields:[]}}function __embind_register_value_object_field(structType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){structRegistrations[structType].fields.push({fieldName:readLatin1String(fieldName),getterReturnType:getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext:getterContext,setterArgumentType:setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext:setterContext})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":function(){return undefined},"toWireType":function(destructors,o){return undefined}})}function __emscripten_date_now(){return Date.now()}var nowIsMonotonic=true;function __emscripten_get_now_is_monotonic(){return nowIsMonotonic}function __emval_as(handle,returnType,destructorsRef){handle=Emval.toValue(handle);returnType=requireRegisteredType(returnType,"emval::as");var destructors=[];var rd=Emval.toHandle(destructors);HEAP32[destructorsRef>>2]=rd;return returnType["toWireType"](destructors,handle)}function __emval_lookupTypes(argCount,argTypes){var a=new Array(argCount);for(var i=0;i>2)+i],"parameter "+i)}return a}function __emval_call(handle,argCount,argTypes,argv){handle=Emval.toValue(handle);var types=__emval_lookupTypes(argCount,argTypes);var args=new Array(argCount);for(var i=0;i>2]=Emval.toHandle(destructors);return destructors}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}return symbol}var emval_methodCallers=[];function __emval_call_method(caller,handle,methodName,destructorsRef,args){caller=emval_methodCallers[caller];handle=Emval.toValue(handle);methodName=getStringOrSymbol(methodName);return caller(handle,methodName,__emval_allocateDestructors(destructorsRef),args)}function __emval_call_void_method(caller,handle,methodName,args){caller=emval_methodCallers[caller];handle=Emval.toValue(handle);methodName=getStringOrSymbol(methodName);caller(handle,methodName,null,args)}function __emval_addMethodCaller(caller){var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id}var emval_registeredMethods=[];function __emval_get_method_caller(argCount,argTypes){var types=__emval_lookupTypes(argCount,argTypes);var retType=types[0];var signatureName=retType.name+"_$"+types.slice(1).map(function(t){return t.name}).join("_")+"$";var returnId=emval_registeredMethods[signatureName];if(returnId!==undefined){return returnId}var params=["retType"];var args=[retType];var argsList="";for(var i=0;i4){emval_handle_array[handle].refcount+=1}}function __emval_new_array(){return Emval.toHandle([])}function __emval_new_cstring(v){return Emval.toHandle(getStringOrSymbol(v))}function __emval_new_object(){return Emval.toHandle({})}function __emval_run_destructors(handle){var destructors=Emval.toValue(handle);runDestructors(destructors);__emval_decref(handle)}function __emval_set_property(handle,key,value){handle=Emval.toValue(handle);key=Emval.toValue(key);value=Emval.toValue(value);handle[key]=value}function __emval_take_value(type,argv){type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](argv);return Emval.toHandle(v)}function __gmtime_js(time,tmPtr){var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getUTCSeconds();HEAP32[tmPtr+4>>2]=date.getUTCMinutes();HEAP32[tmPtr+8>>2]=date.getUTCHours();HEAP32[tmPtr+12>>2]=date.getUTCDate();HEAP32[tmPtr+16>>2]=date.getUTCMonth();HEAP32[tmPtr+20>>2]=date.getUTCFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getUTCDay();var start=Date.UTC(date.getUTCFullYear(),0,1,0,0,0,0);var yday=(date.getTime()-start)/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday}function __localtime_js(time,tmPtr){var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var start=new Date(date.getFullYear(),0,1);var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst}function _tzset_impl(timezone,daylight,tzname){var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAP32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);function extractZone(date){var match=date.toTimeString().match(/\(([A-Za-z ]+)\)$/);return match?match[1]:"GMT"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=allocateUTF8(winterName);var summerNamePtr=allocateUTF8(summerName);if(summerOffset>2]=winterNamePtr;HEAP32[tzname+4>>2]=summerNamePtr}else{HEAP32[tzname>>2]=summerNamePtr;HEAP32[tzname+4>>2]=winterNamePtr}}function __tzset_js(timezone,daylight,tzname){if(__tzset_js.called)return;__tzset_js.called=true;_tzset_impl(timezone,daylight,tzname)}function _abort(){abort("")}var _emscripten_get_now;_emscripten_get_now=(()=>performance.now());function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_get_heap_max(){return 2147483648}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=_emscripten_get_heap_max();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{path=PATH_FS.resolve(FS.cwd(),path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(p=>!!p),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:node=>{var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:(parentid,name)=>{var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:node=>{var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:node=>{var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:(parent,name)=>{var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:(parent,name,mode,rdev)=>{var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:node=>{FS.hashRemoveNode(node)},isRoot:node=>{return node===node.parent},isMountpoint:node=>{return!!node.mounted},isFile:mode=>{return(mode&61440)===32768},isDir:mode=>{return(mode&61440)===16384},isLink:mode=>{return(mode&61440)===40960},isChrdev:mode=>{return(mode&61440)===8192},isBlkdev:mode=>{return(mode&61440)===24576},isFIFO:mode=>{return(mode&61440)===4096},isSocket:mode=>{return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:str=>{var flags=FS.flagModes[str];if(typeof flags=="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:flag=>{var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:(node,perms)=>{if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:dir=>{var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:(dir,name)=>{try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:(dir,name,isdir)=>{var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:(node,flags)=>{if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:(fd_start=0,fd_end=FS.MAX_OPEN_FDS)=>{for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:fd=>FS.streams[fd],createStream:(stream,fd_start,fd_end)=>{if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}stream=Object.assign(new FS.FSStream,stream);var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:fd=>{FS.streams[fd]=null},chrdev_stream_ops:{open:stream=>{var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:()=>{throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice:(dev,ops)=>{FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts:mount=>{var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:(populate,callback)=>{if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:(type,opts,mountpoint)=>{var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:mountpoint=>{var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:(parent,name)=>{return parent.node_ops.lookup(parent,name)},mknod:(path,mode,dev)=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:(path,mode)=>{mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:(path,mode)=>{mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:(path,mode)=>{var dirs=path.split("/");var d="";for(var i=0;i{if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:(oldpath,newpath)=>{if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:(old_path,new_path)=>{var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir:path=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink:path=>{var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:(path,dontFollow)=>{var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat:path=>{return FS.stat(path,true)},chmod:(path,mode,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:(path,mode)=>{FS.chmod(path,mode,true)},fchmod:(fd,mode)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chmod(stream.node,mode)},chown:(path,uid,gid,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:(path,uid,gid)=>{FS.chown(path,uid,gid,true)},fchown:(fd,uid,gid)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chown(stream.node,uid,gid)},truncate:(path,len)=>{if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:(fd,len)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime:(path,atime,mtime)=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:(path,flags,mode,fd_start,fd_end)=>{if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode=="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path=="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close:stream=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:stream=>{return stream.fd===null},llseek:(stream,offset,whence)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:(stream,buffer,offset,length,position)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:(stream,buffer,offset,length,position,canOwn)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},allocate:(stream,offset,length)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap:(stream,address,length,position,prot,flags)=>{if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,address,length,position,prot,flags)},msync:(stream,buffer,offset,length,mmapFlags)=>{if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:stream=>0,ioctl:(stream,cmd,arg)=>{if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:(path,opts={})=>{opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile:(path,data,opts={})=>{opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir:path=>{var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories:()=>{FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices:()=>{FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device=getRandomDevice();FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:()=>{var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup:(parent,name)=>{var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams:()=>{if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},ensureErrnoError:()=>{if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message="FS error"};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""})},staticInit:()=>{FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS}},init:(input,output,error)=>{FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit:()=>{FS.init.initialized=false;for(var i=0;i{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode},findObject:(path,dontResolveLastLink)=>{var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object}else{return null}},analyzePath:(path,dontResolveLastLink)=>{try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath:(parent,path,canRead,canWrite)=>{parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:(parent,name,properties,canRead,canWrite)=>{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:(parent,name,data,canRead,canWrite,canOwn)=>{var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:stream=>{stream.seekable=false},close:stream=>{if(output&&output.buffer&&output.buffer.length){output(10)}},read:(stream,buffer,offset,length,pos)=>{var bytesRead=0;for(var i=0;i{for(var i=0;i{if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}},createLazyFile:(parent,name,url,canRead,canWrite)=>{function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=((stream,buffer,offset,length,position)=>{FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}if(Browser.handledByPreloadPlugin(byteArray,fullname,finish,()=>{if(onerror)onerror();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,byteArray=>processData(byteArray),onerror)}else{processData(url)}},indexedDB:()=>{return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:()=>{return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=(()=>{out("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)});openRequest.onsuccess=(()=>{var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=(()=>{ok++;if(ok+fail==total)finish()});putRequest.onerror=(()=>{fail++;if(ok+fail==total)finish()})});transaction.onerror=onerror});openRequest.onerror=onerror},loadFilesFromDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=(()=>{var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var getRequest=files.get(path);getRequest.onsuccess=(()=>{if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()});getRequest.onerror=(()=>{fail++;if(ok+fail==total)finish()})});transaction.onerror=onerror});openRequest.onerror=onerror}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt:function(dirfd,path,allowEmpty){if(path[0]==="/"){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(8);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4;HEAP8[pbuf>>0]=type;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function _getTempRet0(){return getTempRet0()}function _llvm_eh_typeid_for(type){return type}function _setTempRet0(val){setTempRet0(val)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value=="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":function(date){var val=Math.floor((date.tm_yday+7-(date.tm_wday+6)%7)/7);if((date.tm_wday+371-date.tm_yday-2)%7<=2){val++}if(!val){val=52;var dec31=(date.tm_wday+7-date.tm_yday-1)%7;if(dec31==4||dec31==5&&__isLeapYear(date.tm_year%400-1)){val++}}else if(val==53){var jan1=(date.tm_wday+371-date.tm_yday)%7;if(jan1!=4&&(jan1!=3||!__isLeapYear(date.tm_year)))val=1}return leadingNulls(val,2)},"%w":function(date){return date.tm_wday},"%W":function(date){var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":function(date){return(date.tm_year+1900).toString().substring(2)},"%Y":function(date){return date.tm_year+1900},"%z":function(date){var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};pattern=pattern.replace(/%%/g,"\0\0");for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}pattern=pattern.replace(/\0\0/g,"%");var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}InternalError=Module["InternalError"]=extendError(Error,"InternalError");embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");init_ClassHandle();init_embind();init_RegisteredPointer();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");init_emval();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"m":___cxa_allocate_exception,"s":___cxa_begin_catch,"v":___cxa_end_catch,"b":___cxa_find_matching_catch_2,"i":___cxa_find_matching_catch_3,"t":___cxa_find_matching_catch_4,"l":___cxa_free_exception,"aa":___cxa_rethrow,"z":___cxa_throw,"ja":___cxa_uncaught_exceptions,"g":___resumeException,"ia":__embind_finalize_value_object,"fa":__embind_register_bigint,"wa":__embind_register_bool,"H":__embind_register_class,"L":__embind_register_class_constructor,"w":__embind_register_class_function,"va":__embind_register_emval,"Ma":__embind_register_enum,"Q":__embind_register_enum_value,"Z":__embind_register_float,"E":__embind_register_integer,"B":__embind_register_memory_view,"U":__embind_register_smart_ptr,"Y":__embind_register_std_string,"S":__embind_register_std_wstring,"$":__embind_register_value_object,"xa":__embind_register_value_object_field,"ya":__embind_register_void,"qa":__emscripten_date_now,"pa":__emscripten_get_now_is_monotonic,"Da":__emval_as,"Ia":__emval_call,"Ba":__emval_call_method,"Ga":__emval_call_void_method,"Ja":__emval_decref,"Ha":__emval_get_method_caller,"Ea":__emval_get_property,"Ka":__emval_incref,"T":__emval_new_array,"D":__emval_new_cstring,"J":__emval_new_object,"Ca":__emval_run_destructors,"Fa":__emval_set_property,"G":__emval_take_value,"ra":__gmtime_js,"sa":__localtime_js,"ta":__tzset_js,"R":_abort,"ua":_emscripten_memcpy_big,"ka":_emscripten_resize_heap,"na":_environ_get,"oa":_environ_sizes_get,"la":_fd_close,"ma":_fd_fdstat_get,"ea":_fd_seek,"X":_fd_write,"a":_getTempRet0,"K":invoke_diii,"Aa":invoke_diiiii,"za":invoke_fiff,"V":invoke_fiii,"p":invoke_i,"P":invoke_idiii,"d":invoke_ii,"e":invoke_iii,"k":invoke_iiii,"u":invoke_iiiii,"q":invoke_iiiiii,"A":invoke_iiiiiii,"W":invoke_iiiiiiii,"_":invoke_iiiiiiiii,"O":invoke_iiiiiiiiiiii,"ga":invoke_ijjiii,"da":invoke_j,"ca":invoke_ji,"ba":invoke_jiiii,"n":invoke_v,"h":invoke_vi,"c":invoke_vii,"f":invoke_viii,"j":invoke_viiii,"r":invoke_viiiii,"o":invoke_viiiiii,"x":invoke_viiiiiii,"F":invoke_viiiiiiii,"I":invoke_viiiiiiiii,"C":invoke_viiiiiiiiii,"N":invoke_viiiiiiiiiiiiiii,"y":_llvm_eh_typeid_for,"M":_setTempRet0,"La":_strftime,"ha":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["Oa"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Pa"]).apply(null,arguments)};var ___getTypeName=Module["___getTypeName"]=function(){return(___getTypeName=Module["___getTypeName"]=Module["asm"]["Ra"]).apply(null,arguments)};var ___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=function(){return(___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=Module["asm"]["Sa"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["Ta"]).apply(null,arguments)};var _setThrew=Module["_setThrew"]=function(){return(_setThrew=Module["_setThrew"]=Module["asm"]["Ua"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["Va"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["Wa"]).apply(null,arguments)};var ___cxa_can_catch=Module["___cxa_can_catch"]=function(){return(___cxa_can_catch=Module["___cxa_can_catch"]=Module["asm"]["Xa"]).apply(null,arguments)};var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=function(){return(___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=Module["asm"]["Ya"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["Za"]).apply(null,arguments)};var dynCall_ii=Module["dynCall_ii"]=function(){return(dynCall_ii=Module["dynCall_ii"]=Module["asm"]["_a"]).apply(null,arguments)};var dynCall_i=Module["dynCall_i"]=function(){return(dynCall_i=Module["dynCall_i"]=Module["asm"]["$a"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["ab"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["bb"]).apply(null,arguments)};var dynCall_iii=Module["dynCall_iii"]=function(){return(dynCall_iii=Module["dynCall_iii"]=Module["asm"]["cb"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["db"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["eb"]).apply(null,arguments)};var dynCall_iiiii=Module["dynCall_iiiii"]=function(){return(dynCall_iiiii=Module["dynCall_iiiii"]=Module["asm"]["fb"]).apply(null,arguments)};var dynCall_viiiiiiiiii=Module["dynCall_viiiiiiiiii"]=function(){return(dynCall_viiiiiiiiii=Module["dynCall_viiiiiiiiii"]=Module["asm"]["gb"]).apply(null,arguments)};var dynCall_viif=Module["dynCall_viif"]=function(){return(dynCall_viif=Module["dynCall_viif"]=Module["asm"]["hb"]).apply(null,arguments)};var dynCall_fii=Module["dynCall_fii"]=function(){return(dynCall_fii=Module["dynCall_fii"]=Module["asm"]["ib"]).apply(null,arguments)};var dynCall_viiiiii=Module["dynCall_viiiiii"]=function(){return(dynCall_viiiiii=Module["dynCall_viiiiii"]=Module["asm"]["jb"]).apply(null,arguments)};var dynCall_idiii=Module["dynCall_idiii"]=function(){return(dynCall_idiii=Module["dynCall_idiii"]=Module["asm"]["kb"]).apply(null,arguments)};var dynCall_ijjiii=Module["dynCall_ijjiii"]=function(){return(dynCall_ijjiii=Module["dynCall_ijjiii"]=Module["asm"]["lb"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["mb"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["nb"]).apply(null,arguments)};var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=function(){return(dynCall_iiiiiii=Module["dynCall_iiiiiii"]=Module["asm"]["ob"]).apply(null,arguments)};var dynCall_diii=Module["dynCall_diii"]=function(){return(dynCall_diii=Module["dynCall_diii"]=Module["asm"]["pb"]).apply(null,arguments)};var dynCall_diiiii=Module["dynCall_diiiii"]=function(){return(dynCall_diiiii=Module["dynCall_diiiii"]=Module["asm"]["qb"]).apply(null,arguments)};var dynCall_viiiiiii=Module["dynCall_viiiiiii"]=function(){return(dynCall_viiiiiii=Module["dynCall_viiiiiii"]=Module["asm"]["rb"]).apply(null,arguments)};var dynCall_iiiiii=Module["dynCall_iiiiii"]=function(){return(dynCall_iiiiii=Module["dynCall_iiiiii"]=Module["asm"]["sb"]).apply(null,arguments)};var dynCall_viiiiiiii=Module["dynCall_viiiiiiii"]=function(){return(dynCall_viiiiiiii=Module["dynCall_viiiiiiii"]=Module["asm"]["tb"]).apply(null,arguments)};var dynCall_viiiiiiiii=Module["dynCall_viiiiiiiii"]=function(){return(dynCall_viiiiiiiii=Module["dynCall_viiiiiiiii"]=Module["asm"]["ub"]).apply(null,arguments)};var dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=function(){return(dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=Module["asm"]["vb"]).apply(null,arguments)};var dynCall_fiff=Module["dynCall_fiff"]=function(){return(dynCall_fiff=Module["dynCall_fiff"]=Module["asm"]["wb"]).apply(null,arguments)};var dynCall_jiji=Module["dynCall_jiji"]=function(){return(dynCall_jiji=Module["dynCall_jiji"]=Module["asm"]["xb"]).apply(null,arguments)};var dynCall_iidiiii=Module["dynCall_iidiiii"]=function(){return(dynCall_iidiiii=Module["dynCall_iidiiii"]=Module["asm"]["yb"]).apply(null,arguments)};var dynCall_j=Module["dynCall_j"]=function(){return(dynCall_j=Module["dynCall_j"]=Module["asm"]["zb"]).apply(null,arguments)};var dynCall_ji=Module["dynCall_ji"]=function(){return(dynCall_ji=Module["dynCall_ji"]=Module["asm"]["Ab"]).apply(null,arguments)};var dynCall_viijii=Module["dynCall_viijii"]=function(){return(dynCall_viijii=Module["dynCall_viijii"]=Module["asm"]["Bb"]).apply(null,arguments)};var dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=function(){return(dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=Module["asm"]["Cb"]).apply(null,arguments)};var dynCall_iiiiiiiiiii=Module["dynCall_iiiiiiiiiii"]=function(){return(dynCall_iiiiiiiiiii=Module["dynCall_iiiiiiiiiii"]=Module["asm"]["Db"]).apply(null,arguments)};var dynCall_jiiii=Module["dynCall_jiiii"]=function(){return(dynCall_jiiii=Module["dynCall_jiiii"]=Module["asm"]["Eb"]).apply(null,arguments)};var dynCall_iiiiiiiiiiiii=Module["dynCall_iiiiiiiiiiiii"]=function(){return(dynCall_iiiiiiiiiiiii=Module["dynCall_iiiiiiiiiiiii"]=Module["asm"]["Fb"]).apply(null,arguments)};var dynCall_fiii=Module["dynCall_fiii"]=function(){return(dynCall_fiii=Module["dynCall_fiii"]=Module["asm"]["Gb"]).apply(null,arguments)};var dynCall_iiiiiiiiiiii=Module["dynCall_iiiiiiiiiiii"]=function(){return(dynCall_iiiiiiiiiiii=Module["dynCall_iiiiiiiiiiii"]=Module["asm"]["Hb"]).apply(null,arguments)};var dynCall_viiiiiiiiiiiiiii=Module["dynCall_viiiiiiiiiiiiiii"]=function(){return(dynCall_viiiiiiiiiiiiiii=Module["dynCall_viiiiiiiiiiiiiii"]=Module["asm"]["Ib"]).apply(null,arguments)};var dynCall_iiiiij=Module["dynCall_iiiiij"]=function(){return(dynCall_iiiiij=Module["dynCall_iiiiij"]=Module["asm"]["Jb"]).apply(null,arguments)};var dynCall_iiiiid=Module["dynCall_iiiiid"]=function(){return(dynCall_iiiiid=Module["dynCall_iiiiid"]=Module["asm"]["Kb"]).apply(null,arguments)};var dynCall_iiiiijj=Module["dynCall_iiiiijj"]=function(){return(dynCall_iiiiijj=Module["dynCall_iiiiijj"]=Module["asm"]["Lb"]).apply(null,arguments)};var dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=function(){return(dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=Module["asm"]["Mb"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["Nb"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["Ob"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["Pb"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["Qb"]).apply(null,arguments)};function invoke_ii(index,a1){var sp=stackSave();try{return dynCall_ii(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{dynCall_vi(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{dynCall_viii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return dynCall_iii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{dynCall_vii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_idiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_idiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_i(index){var sp=stackSave();try{return dynCall_i(index)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_v(index){var sp=stackSave();try{dynCall_v(index)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_diii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_diii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_diiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_diiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_fiff(index,a1,a2,a3){var sp=stackSave();try{return dynCall_fiff(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_fiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_fiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return dynCall_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){var sp=stackSave();try{dynCall_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ijjiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_ijjiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_j(index){var sp=stackSave();try{return dynCall_j(index)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ji(index,a1){var sp=stackSave();try{return dynCall_ji(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_jiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run(); - - - return Module.ready -} -); -})(); -if (typeof exports === 'object' && typeof module === 'object') - module.exports = Module; -else if (typeof define === 'function' && define['amd']) - define([], function() { return Module; }); -else if (typeof exports === 'object') - exports["Module"] = Module; diff --git a/js/package-lock.json b/js/package-lock.json deleted file mode 100644 index 32a18f91d..000000000 --- a/js/package-lock.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "js", - "lockfileVersion": 2, - "requires": true, - "packages": {} -} diff --git a/python/docs/sphinxdocs/game_docs.py b/python/docs/sphinxdocs/game_docs.py index 07918a4a6..6a521be71 100644 --- a/python/docs/sphinxdocs/game_docs.py +++ b/python/docs/sphinxdocs/game_docs.py @@ -71,9 +71,13 @@ def _generate_levels_description(self, game_breakdown): sphinx_string = "" - level_table_header = ".. list-table:: Levels\n :header-rows: 1\n\n" + level_table_header = ( + ".. list-table:: Levels\n" + " :class: level-gallery\n" + " :header-rows: 1\n\n" + ) level_table_header += " * - \n" - for observer_name, observer_type in supported_observer_types.items(): + for observer_name in supported_observer_types: level_table_header += f" - {observer_name}\n" level_table_string = "" diff --git a/python/griddly/util/breakdown.py b/python/griddly/util/breakdown.py index c173961bd..ea370ee3d 100644 --- a/python/griddly/util/breakdown.py +++ b/python/griddly/util/breakdown.py @@ -9,10 +9,10 @@ class TemporaryEnvironment: Because we have to load the game many different times with different configurations, this class makes sure we clean up objects we dont need """ - def __init__(self, loader, gdy_string, observer_type): + def __init__(self, loader, gdy_string, observer_name): self.gdy = loader.load_string(gdy_string) - self.observer_type = observer_type - self.observer_name = self._get_observer_name(observer_type) + self.observer_type = self._get_observer_type(observer_name) + self.observer_name = observer_name def __enter__(self): self.game = self.gdy.create_game(self.observer_name) @@ -26,13 +26,11 @@ def __enter__(self): def __exit__(self, type, value, traceback): self.game.release() - def _get_observer_name(self, observer_type_or_string): + def _get_observer_type(self, observer_type_or_string): if isinstance(observer_type_or_string, gd.ObserverType): - if observer_type_or_string.name == 'ASCII': - return observer_type_or_string.name - return observer_type_or_string.name.title().replace('_', '') - else: return observer_type_or_string + else: + return self.gdy.get_observer_type(observer_type_or_string) def render_rgb(self): @@ -40,7 +38,7 @@ def render_rgb(self): observation = np.array(self.game.observe(), copy=True) if self.observer_type == gd.ObserverType.VECTOR: - self._vector2rgb = Vector2RGB(10, observation.shape[0]) + self._vector2rgb = Vector2RGB(10, len(self.game.get_object_names())) return self._vector2rgb.convert(observation) else: return observation @@ -59,13 +57,6 @@ def __init__(self, gdy_filename): self.gdy = yaml.load(self.gdy_string, Loader=yaml.SafeLoader) - self._all_observer_types = [ - gd.ObserverType.VECTOR, - gd.ObserverType.SPRITE_2D, - gd.ObserverType.BLOCK_2D, - gd.ObserverType.ISOMETRIC, - ] - self.loader = GriddlyLoader() self.objects = {} self.levels = {} @@ -76,20 +67,8 @@ def __init__(self, gdy_filename): self._populate_tiles() self._populate_levels() - def _env(self, observer_type): - return TemporaryEnvironment(self.loader, self.gdy_string, observer_type) - - def _get_observer_yaml_key(self, observer_type): - if observer_type is gd.ObserverType.VECTOR: - return "Vector" - if observer_type is gd.ObserverType.SPRITE_2D: - return "Sprite2D" - elif observer_type is gd.ObserverType.BLOCK_2D: - return "Block2D" - elif observer_type is gd.ObserverType.ISOMETRIC: - return "Isometric" - else: - return "Unknown" + def _env(self, observer_name): + return TemporaryEnvironment(self.loader, self.gdy_string, observer_name) def _populate_objects(self): for object in self.gdy["Objects"]: @@ -100,29 +79,33 @@ def _populate_objects(self): def _populate_common_properties(self): - self.name = self.gdy["Environment"]["Name"] - self.description = self.gdy["Environment"].get("Description", "") + self.environment = self.gdy["Environment"] + self.name = self.environment["Name"] + self.description = self.environment.get("Description", "") self.player_count = 1 # observer types - self.supported_observers = {} + self.supported_observers = {"Vector"} + + # Look through objects + objects = self.gdy["Objects"] + for object in objects: + for observer_name, config in object["Observers"].items(): + self.supported_observers.add(observer_name) + + self.observer_configs = {"Block2D": {}, "Sprite2D": {}, "Vector": {}, "Isometric": {}} + if "Observers" in self.environment: + for observer_name, config in self.environment["Observers"].items(): + self.observer_configs[observer_name] = config - with self._env(gd.ObserverType.VECTOR) as env: + + with self._env("Vector") as env: self.player_count = env.gdy.get_player_count() self.action_mappings = env.gdy.get_action_input_mappings() self.has_avatar = "AvatarObject" in self.gdy["Environment"]["Player"] - for observer_type in self._all_observer_types: - try: - with self._env(observer_type) as env: - observer_name = self._get_observer_yaml_key(observer_type) - self.supported_observers[observer_name] = observer_type - - except ValueError as e: - continue - def _populate_tiles(self): # Create a level thats just a list of all the map characters @@ -137,9 +120,13 @@ def _populate_tiles(self): all_tiles_string = join_string.join(all_tiles) + join_string - for observer_name, observer_type in self.supported_observers.items(): + for observer_name in self.supported_observers: - with self._env(observer_type) as env: + if "TrackAvatar" in self.observer_configs[observer_name]: + if self.observer_configs[observer_name]["TrackAvatar"]: + continue + + with self._env(observer_name) as env: env.game.load_level_string(f"{all_tiles_string}\n") env.game.reset() rendered_sprite_map = env.render_rgb() @@ -147,7 +134,7 @@ def _populate_tiles(self): tile_size = env.game.get_tile_size() for i, object_name in enumerate(ordered_object_names): - if observer_type == gd.ObserverType.VECTOR: + if env.observer_type == gd.ObserverType.VECTOR: tile_size = [10, 10] tile_pos_x = 2 * i * tile_size[0] @@ -155,7 +142,7 @@ def _populate_tiles(self): tile_pos_y = 0 tile_height = tile_size[1] - elif observer_type == gd.ObserverType.ISOMETRIC: + elif env.observer_type == gd.ObserverType.ISOMETRIC: iso_tile_height = int( self.gdy["Environment"]["Observers"]["Isometric"][ @@ -191,8 +178,12 @@ def _populate_levels(self): for i, level in enumerate(self.gdy["Environment"]["Levels"]): self.levels[i] = {"Map": level, "Observers": {}} - for observer_name, observer_type in self.supported_observers.items(): - with self._env(observer_type) as env: + for observer_name in self.supported_observers: + with self._env(observer_name) as env: + + if "TrackAvatar" in self.observer_configs[observer_name]: + if self.observer_configs[observer_name]["TrackAvatar"]: + continue for l, level in self.levels.items(): env.game.load_level(l) diff --git a/python/griddly/util/rllib/environment/core.py b/python/griddly/util/rllib/environment/core.py index ae0d265e7..860466a32 100644 --- a/python/griddly/util/rllib/environment/core.py +++ b/python/griddly/util/rllib/environment/core.py @@ -183,7 +183,7 @@ def step(self, action): return self._transform(observation), reward, done, info def render(self, mode="human", observer=0): - return super().render(mode, observer="global") + return super().render(mode, observer=observer) def is_video_enabled(self): return ( diff --git a/python/griddly/util/vector_visualization.py b/python/griddly/util/vector_visualization.py index 27152984f..ad5c0a8fd 100644 --- a/python/griddly/util/vector_visualization.py +++ b/python/griddly/util/vector_visualization.py @@ -10,13 +10,14 @@ def __init__(self, scale, object_channels): # Create a colour palette for rendering vector observers HSV_tuples = [ - (x * 1.0 / (object_channels + 1), 1.0, 1.0) + (x * 0.5 / (object_channels + 1), 1.0, 1.0) for x in range(object_channels + 1) ] vector_rgb = [] - for hsv in HSV_tuples: - vector_rgb.append(colorsys.hsv_to_rgb(*hsv)) + for i in range(len(HSV_tuples)): + hsv_idx = i if i % 2 == 0 else len(HSV_tuples) - i + vector_rgb.append(colorsys.hsv_to_rgb(*HSV_tuples[hsv_idx])) self._vector_rgb_palette = (np.array(vector_rgb) * 255).astype("uint8") diff --git a/python/setup.py b/python/setup.py index 1d028cef2..86c7d7fef 100644 --- a/python/setup.py +++ b/python/setup.py @@ -71,7 +71,7 @@ def griddly_package_data(config='Debug'): setup( name='griddly', - version="1.3.9", + version="1.4.0", author_email="chrisbam4d@gmail.com", description="Griddly Python Libraries", long_description=long_description, diff --git a/resources/games/Single-Player/Grafter/escape-rooms.yaml b/resources/games/Single-Player/Grafter/escape-rooms.yaml new file mode 100644 index 000000000..2432a2eb6 --- /dev/null +++ b/resources/games/Single-Player/Grafter/escape-rooms.yaml @@ -0,0 +1,5672 @@ +Version: '0.1' +Environment: + Name: Grafter Escape Rooms + Description: >- + 100 human designed escape rooms using the mechanics of the Crafter + environment. + Observers: + Entity: + IncludeMasks: true + IncludePlayerId: + - player + IncludeRotation: + - player + GlobalVariableMapping: + - inv_wood_pickaxe + - inv_stone_pickaxe + - inv_iron_pickaxe + - inv_stone + - inv_coal + - inv_wood + - inv_iron + - health + Vector: + IncludeRotation: true + GlobalVariableMapping: + - inv_wood_pickaxe + - inv_stone_pickaxe + - inv_iron_pickaxe + - inv_stone + - inv_coal + - inv_wood + - inv_iron + - health + GlobalSprite2D: + Type: SPRITE_2D + TileSize: 24 + RotateAvatarImage: false + HighlightPlayers: false + PlayerSprite2D: + Type: SPRITE_2D + TileSize: 8 + RotateAvatarImage: false + Termination: + Win: + - eq: + - ach_eat_plant + - 1 + End: + - or: + - eq: + - _steps + - 500 + - eq: + - player_count + - 0 + Player: + Count: 1 + AvatarObject: player + Observer: + TrackAvatar: true + Width: 9 + Height: 7 + OffsetY: -1 + Variables: + - Name: ach_collect_coal + InitialValue: 0 + PerPlayer: true + - Name: ach_collect_diamond + InitialValue: 0 + PerPlayer: true + - Name: ach_collect_drink + InitialValue: 0 + PerPlayer: true + - Name: ach_collect_iron + InitialValue: 0 + PerPlayer: true + - Name: ach_collect_sapling + InitialValue: 0 + PerPlayer: true + - Name: ach_collect_stone + InitialValue: 0 + PerPlayer: true + - Name: ach_collect_wood + InitialValue: 0 + PerPlayer: true + - Name: ach_defeat_skeleton + InitialValue: 0 + PerPlayer: true + - Name: ach_defeat_zombie + InitialValue: 0 + PerPlayer: true + - Name: ach_defeat_player + InitialValue: 0 + PerPlayer: true + - Name: ach_eat_cow + InitialValue: 0 + PerPlayer: true + - Name: ach_eat_plant + InitialValue: 0 + PerPlayer: true + - Name: ach_make_iron_pickaxe + InitialValue: 0 + PerPlayer: true + - Name: ach_make_iron_sword + InitialValue: 0 + PerPlayer: true + - Name: ach_make_stone_pickaxe + InitialValue: 0 + PerPlayer: true + - Name: ach_make_stone_sword + InitialValue: 0 + PerPlayer: true + - Name: ach_make_wood_pickaxe + InitialValue: 0 + PerPlayer: true + - Name: ach_make_wood_sword + InitialValue: 0 + PerPlayer: true + - Name: ach_place_furnace + InitialValue: 0 + PerPlayer: true + - Name: ach_place_plant + InitialValue: 0 + PerPlayer: true + - Name: ach_place_stone + InitialValue: 0 + PerPlayer: true + - Name: ach_place_table + InitialValue: 0 + PerPlayer: true + - Name: ach_wake_up + InitialValue: 0 + PerPlayer: true + - Name: inv_wood_sword + InitialValue: 0 + PerPlayer: true + - Name: inv_stone_sword + InitialValue: 0 + PerPlayer: true + - Name: inv_iron_sword + InitialValue: 0 + PerPlayer: true + - Name: inv_wood_pickaxe + InitialValue: 0 + PerPlayer: true + - Name: inv_stone_pickaxe + InitialValue: 0 + PerPlayer: true + - Name: inv_iron_pickaxe + InitialValue: 0 + PerPlayer: true + - Name: inv_fence + InitialValue: 0 + PerPlayer: true + - Name: inv_sapling + InitialValue: 0 + PerPlayer: true + - Name: inv_stone + InitialValue: 0 + PerPlayer: true + - Name: inv_coal + InitialValue: 0 + PerPlayer: true + - Name: inv_iron + InitialValue: 0 + PerPlayer: true + - Name: inv_diamond + InitialValue: 0 + PerPlayer: true + - Name: inv_wood + InitialValue: 0 + PerPlayer: true + - Name: inv_food + InitialValue: 9 + PerPlayer: true + - Name: inv_drink + InitialValue: 9 + PerPlayer: true + - Name: inv_energy + InitialValue: 9 + PerPlayer: true + - Name: health + InitialValue: 9 + PerPlayer: true + - Name: near_table + InitialValue: 0 + PerPlayer: true + - Name: near_furnace + InitialValue: 0 + PerPlayer: true + - Name: damage + InitialValue: 1 + PerPlayer: true + - Name: is_sleeping + InitialValue: 0 + PerPlayer: true + - Name: fatigue + InitialValue: 0 + PerPlayer: true + - Name: recover + InitialValue: 0 + PerPlayer: true + - Name: hunger + InitialValue: 0 + PerPlayer: true + - Name: thirst + InitialValue: 0 + PerPlayer: true + - Name: player_done + InitialValue: 0 + PerPlayer: true + - Name: player_count + InitialValue: 0 + Levels: + - | + s s s s s s s s s s + s S S S S S S S S s + s S s s s s s s s s + s S s p/S S S S s +/S s + s S s S s s S s S s + s S s S s s S s S s + s S s S s s S s S s + s S s S s s S s S s + s S s S s s S s S s + s S S S s s S S S s + s s s s s s s s s s + - | + s s s s s s s s s s + s S S S S S S S +/S s + s S s s s s s s s s + s S s p/S S S S s S s + s S s S s s S s S s + s S s S s s S s S s + s S s S s s S s S s + s S s S s s S s S s + s S s S s s S s S s + s S S S s s S S S s + s s s s s s s s s s + - | + G G G G G G G G G G G G T +/G G + G . . . . . . . . . . . . . G + p/G G G G G G G G G G G G G G G + - | + . G G G G G G G G G G G G G T +/G + . G . . . . . . . . . . . . . . + . G . . . . . . . . . . . . . . + . G . . . . . . . . . . . . . . + . G . . . . . . . . . . . . . . + . G . . . . . . . . . . . . . . + . G . . . . . . . . . . . . . . + . G . . . . . . . . . . . . . . + . G . . . . . . . . . . . . . . + . p/G . . . . . . . . . . . . . . + - | + . . . . . . . . . . . . . t . . + . T G G G G G G G G G T G G s/G +/G + . G . . . . . . . . . . . . . . + . G . . . . . . . . . . . . . . + . G . . . . . . . . . . . . . . + . G . . . . . . . . . . . . . . + . G . . . . . . . . . . . . . . + . T . . . . . . . . . . . . . . + . G . . . . . . . . . . . . . . + . G . . . . . . . . . . . . . . + . p/G . . . . . . . . . . . . . . + - | + . T G G G G G G G G G T G G s/G +/G + . G . . . . . . . . . . . . . . + . G . . . . . . . . . . . . . . + . G . . . . . . . . . . . . . . + . G . . . . . . . . . . . . . . + . G . . . . . . . . . . . . . . + . T . . . . . . . . . . . . . . + . G . . . . . . . . . . . . . . + t G . . . . . . . . . . . . . . + . p/G . . . . . . . . . . . . . . + - | + G G +/G G G + G W s/P W G + W G p/G G W + W G t/T G W + W G T G W + G W W W G + G G G G G + G G G G G + - | + G G +/G G G + G W s/P W G + W G p/G G W + W G t/T G W + W G T G W + G W W W G + G G G G G + G G G G G + - | + G G +/G G G + G W s/P W G + W G p/G G W + W G G G W + W T T T W + G W W W G + G G G G G + G G G G G + - | + G G +/G G G + G W W W G + W G p/G G W + W G G G W + W T T T W + G W s/P W G + G G G G G + G G G G G + - | + G G +/G G G + G W W W G + W G p/G G W + W G G G W + W T T T W + G W s/P W G + G G G G G + G G G G G + - | + T G G i/G +/G + T G G i/G i/G + G G G G G + G G p/G G G + G G G G G + t/G G G G s/G + G G G G G + - | + T T G i/G +/G + T T G i/G i/G + G G G G G + G G p/G G G + G G G G G + G G G G G + s G G G G + - | + G T G i/G +/G + G G G i/G i/G + G G G G T + G G p/G G G + G G G G s/G + G G G G G + T G G T G + - | + G p/G G G G G G G G G G G G G + G G G G G G L L L G G G G G + G G G G G L L L L L G G G G + G G G G L L L L L L L G G G + L L L L L L L L L L L L G G + G G G G L L L L L L L G G G + G G G G G L L L L L G G G G + G +/G G G G G L L L G G G G G + G G G G G G G G G G G G G G + - | + G p/G G G G G G G G G G G G G + G G G G G G L L L G G G G G + G G G G G L L L L L G G G G + G G G G L L L L L L L G G G + L L L L L L L L L L L L G G + G G G G L L L L L L L G G G + G G G G G L L L L L G G G G + G +/G G G G G L L L G G G #/G G + G G G G G G G G G G G G G G + - | + G p/G G G G T G G G G G G G G + G G G T T G L L L G G T G G + G G T T G L L L L L G G T G + G G G G L L L L L L L G T G + L L L L L L L L L L L L G G + G G G G L L L L L L L G G G + G G G G G L L L L L G G G G + G +/G G G G G L L L G G G #/G G + G G G G G G G G G G G G G G + - | + G T P d/G +/G + G G P d/G d/G + G G P P P + G G p/G G T + c G S G s/G + i S S S t/G + T S S S f/G + - | + T T P d/G +/G + T G P d/G d/G + G G P P P + G G p/G G T + c G S G s/G + i S S S S + T S S S f/G + - | + T T P d/G +/G + T G P d/G d/G + G G P P P + G G p/G G T + c G S G s/G + i S S s/S s/S + T S S s/S s/S + - > + s s s s s s s s s s s s s s s s s s s + s s s + + s p/P P s P P P P P s P P P P P s P P P + P P s + + s P P s P P P P P s P P P P P s P P P + P P s + + s P P s P P s P P s P P s P P s P P s + P P s + + s P P s P P s P P s P P s P P s P P s + P P s + + s P P s P P s P P s P P s P P s P P s + P P s + + s P P s P P s P P s P P s P P s P P s + P P s + + s P P s P P s P P s P P s P P s P P s + P P s + + s P P s P P s P P s P P s P P s P P s + P P s + + s P P s P P s P P s P P s P P s P P s + P P s + + s P P s P P s P P s P P s P P s P P s + P P s + + s P P s P P s P P s P P s P P s P P s + P P s + + s P P P P P s P P P P P s P P P P P s + P P s + + s P P P P P s P P P P P s P P P P P s + P +/P s + + s s s s s s s s s s s s s s s s s s s + s s s + - > + s s s s s s s s s s s s s s s s s s s + s s s + + s p/P P s P P T P P s P P T P P s P P T + P P s + + s P P s P P T P P s P P T P P s P P T + P P s + + s P P s P P s P P s P P s P P s P P s + P P s + + s P P s P P s P P s P P s P P s P P s + P P s + + s P P s P P s P P s P P s P P s P P s + P P s + + s P P s P P s P P s P P s P P s P P s + P P s + + s P P s P P s P P s P P s P P s P P s + P P s + + s P P s P P s P P s P P s P P s P P s + P P s + + s P P s P P s P P s P P s P P s P P s + P P s + + s P P s P P s P P s P P s P P s P P s + P P s + + s P P s P P s P P s P P s P P s P P s + P P s + + s P P T P P s P P P P P s P P P P P s + P P s + + s P P T P P s P P P P P s P P P P P s + P +/P s + + s s s s s s s s s s s s s s s s s s s + s s s + - > + # s s s s s s s s s s s s s s s s s + s s s s + + s p/P P s P P T P P s P P T P P s P P + T P P s + + s P P s #/P P T P P s P P T P P s P P + T P P s + + s P P s P P s P P s P #/P s P P s P #/P + s P P s + + s P P s P P s P P s P P s P P s P P + s P P s + + s P P s P P s P P s P P s P P s P P + s P P s + + s P P s P P s P P s P P s P #/P s P P + s P #/P s + + s P P s P P s P P s P P s P P s P P + s P P s + + s P P s P P s P P s P P s P P s P P + s P P s + + s P P s P P s P P s P P s P P s P P + s P P s + + s P P s P P s P #/P s P P s P P s P P + s P P s + + s P P s P P s P P s P P s P P s P P + s P P s + + s P P T P P s P P T P P s P P T P P + s P P s + + s P P T P P s P P T P P s P P T P P + s P +/P s + + s s s s s s s s s s s s s s s s s s + s s s s + - > + i i i i i i i i i i i i i i i i i i + i i i i + + i p/P t/P i P P s/P P P i P P s/P P P i P P + s/P P P i + + i P T i P P s/P P P i P P s/P P P i P P + s/P P P i + + i P P i P P i P P i P P i P P i P P + i P P i + + i P P i P P i P P i P P i P P i P P + i P P i + + i P P i P P i P #/P i P P i P P i P P + i P P i + + i P P i P P i P P i #/P P i P P i P P + i P P i + + i P P i P P i P P i P P i P #/P i P P + i P @/P i + + i P P i P P i P P i P P i P P i #/P P + i P P i + + i P P i P P i P P i P P i P P i P P + i P P i + + i P P i P P i P P i P P i P P i P P + i P P i + + i P P i P P i P P i P P i P P i P P + i P P i + + i P P s/P P P i P P s/P P P i P P s/P P P + i P P i + + i P P s/P #/P P i P P s/P P P i P P s/P P P + i P +/P i + + i i i i i i i i i i i i i i i i i i + i i i i + - > + i i i i i i i i i i i i i i i i i i i + i i i + + i p/P t/P i P P s/P P P i P P s/P P P i P P s/P + P P i + + i P T i P P s/P P P i P P s/P P P i P P s/P + P P i + + i P P i P P i P P i P P i P P i P P i + P P i + + i P P i P P i P P i P P i P P i P P i + P P i + + i P P i P P i P P i P P i P P i P P i + P P i + + i P P i P P i P P i P P i P P i P P i + P P i + + i P P i P P i P P i P P i P P i P P i + P P i + + i P P i P P i P P i P P i P P i P P i + P P i + + i P P i P P i P P i P P i P P i P P i + P P i + + i P P i P P i P P i P P i P P i P P i + P P i + + i P P i P P i P P i P P i P P i P P i + P P i + + i P P s/P P P i P P s/P P P i P P s/P P P i + P P i + + i P P s/P P P i P P s/P P P i P P s/P P P i + P +/P i + + i i i i i i i i i i i i i i i i i i i + i i i + - > + i i i i i i i i i i i i i i i i i i + i i i i + + i p/P t/P i P P s/P P P i P P s/P P P i P P + s/P P P i + + i P T i P P s/P P P i P P s/P P P i P P + s/P P #/P i + + i P P i P P i P P i P P i P P i P #/P + i P P i + + i P P i P P i P P i P P i P P i P P + i P P i + + i P P i P P i P P i P P i P #/P i P P + i P P i + + i P P i P P i P P i P P i P P i P P + i P P i + + i P P i P P i P P i P #/P i P P i P P + i P P i + + i P P i P P i P P i P P i P P i P P + i P P i + + i P P i P P i P #/P i P P i P P i P P + i P P i + + i P P i P P i P P i P P i P P i P P + i P P i + + i P P i #/P P i P P i P P i P P i P P + i P P i + + i P P s/P P P i P P s/P P P i P P s/P P P + i P P i + + i P P s/P P P i P P s/P P P i P P s/P P P + i P +/P i + + i i i i i i i i i i i i i i i i i i + i i i i + - > + i i i i i i i i i i i i i i i i i i + i i i i + + i p/G G i S S s/P P P i S S s/P P P i S S + s/P P P i + + i G T i S S s/P P P i S S s/P P P i S S + s/P P #/P i + + i G G i S S i P P i S S i P P i S #/S + i P P i + + i G G i S S i P P i S S i P P i S S + i P P i + + i G G i S S i P P i S S i P #/P i S S + i P P i + + i G G i S S i G G i S S i G G i S S + i G G i + + i T G i S S i G G i S #/S i G G i S S + i G G i + + i G G i S S i G G i S S i G G i S S + i G G i + + i G G i S S i P #/P i S S i P P i S S + i P P i + + i G G i S S i P P i S S i P P i S S + i P P i + + i G G i #/S S i P P i S S i P P i S S + i P P i + + i G G s/P S S i P P s/P S S i P P s/P S S + i P P i + + i G T s/P S S i P P s/P S S i P P s/P S S + i P +/P i + + i i i i i i i i i i i i i i i i i i + i i i i + - > + i i i i i i i i i i i i d d d d d d d + d d d + + i p/G G i S S s/P P P i S T i/P P P d S S s/P + P P d + + i G T i S S s/P P P i S S d/P P P d S S s/P + P P d + + i G G i S S i P P i S S d P P d S S d + P P d + + i G G i S S i P P i S S d P P d S S d + P P d + + i G G i S S i P P i S S d P P d S S d + P P d + + i G G i S S i G G i S S d G G d S S d + G G d + + i T G i S S i G G i S S d G G d S S d + G G d + + i G G i S S i G G i S S d G G d S S d + G G d + + i G G i S S i P P i S S d P P d S S d + P P d + + i G G i S S i P P i S S d P P d S S d + P P d + + i G G i S S i P P i S S d P P d S S d + P P d + + i G G s/P S S i P P s/P S S d P P s/P S S d + P P d + + i G T s/P S S i P P s/P S S d P P s/P S S d + P +/P d + + i i i i i i i i i i i i d d d d d d d + d d d + - > + i i i i i i i i i i i i i i i i i i i + i i i + + i p/P t/P i P P s/P P P i P P s/P P P i P P s/P + P P i + + i P T i P P s/P P P i P P s/P P P i P P s/P + P P i + + i P P i P P i P P i P P i P P i P P i + W W i + + i P P i P P i P P i P P i P P i P P i + P P i + + i P P i P P i P P i W W i P P i P P i + P P i + + i P P i P P i P P i P P i W W i P P i + P P i + + i P P i P P i P P i P P i P P i P P i + P P i + + i P P i W W i W W i P P i P P i W W i + P P i + + i P P i P P i P P i P P i P P i P P i + P P i + + i P P i P P i P P i P P i P P i P P i + P P i + + i P P i P P i P P i P P i P P i P P i + P P i + + i P P s/P P P i P P s/P P P i P P s/P P P i + P P i + + i P P s/P P P i P P s/P P P i P P s/P P P i + P +/P i + + i i i i i i i i i i i i i i i i i i i + i i i + - > + i i i i i i i i i i i i i i i i i i i + i i i + + i p/P t/P i P P s/P P P i P P s/P P P i P P s/P + P P i + + i P T i P P s/P P P i P P s/P P P i P P s/P + P P i + + i P P i P P i P P i P P i P P i P P i + W W i + + i P P i P P i P P i P P i P P i P P i + W W i + + i P P i P P i P P i W W i P P i P P i + P P i + + i P P i P P i P P i W W i W W i P P i + P P i + + i P P i W W i W W i P P i W W i P P i + P P i + + i P P i W W i W W i P P i P P i W W i + P P i + + i P P i P P i P P i P P i P P i W W i + P P i + + i P P i P P i P P i P P i P P i P P i + P P i + + i P P i P P i P P i P P i P P i P P i + P P i + + i P P s/P P P i P P s/P P P i P P s/P P P i + P P i + + i P P s/P P P i P P s/P P P i P P s/P P P i + P +/P i + + i i i i i i i i i i i i i i i i i i i + i i i + - > + i i i i i i i i i i i i i i i i i i i + i i i + + i p/P t/P i P P s/P P P i P P s/P P P i P P s/P + P P i + + i P T i P P s/P P P i P P s/P W W i P P s/P + P P i + + i P P i P P i P P i P P i W W i P P i + W W i + + i P P i W W i P P i P P i W W i W W i + W W i + + i P P i W W i P P i W W i W W i W W i + W W i + + i P P i W W i P P i W W i W W i W W i + W W i + + i P P i W W i W W i W W i W W i W W i + W W i + + i P P i W W i W W i W W i P P i W W i + W W i + + i P P i P P i W W i W W i P P i W W i + W W i + + i P P i P P i W W i P P i P P i P P i + P P i + + i P P i P P i W W i P P i P P i P P i + P P i + + i P P s/P P P i P P s/P P P i P P s/P P P i + P P i + + i P P s/P P P i P P s/P P P i P P s/P P P i + P +/P i + + i i i i i i i i i i i i i i i i i i i + i i i + - > + i i i i i i i i i i i i i i i i i i i + i i i + + i p/P t/P i P P s/P P P i P P s/P P P i W W s/P + W W i + + i P T i P P s/P P P i P P s/P S S i W W s/P + W W i + + i P P i P P i P P i P P i S S i W W i + W W i + + i P P i S S i P P i P P i S S i W W i + W W i + + i P P i S S i P P i S S i S S i W W i + W W i + + i P P i S S i P P i S S i S S i W W i + W W i + + i P P i S S i S S i S S i S S i W W i + W W i + + i P P i S S i S S i S S i P P i W W i + W W i + + i P P i P P i S S i S S i P P i W W i + W W i + + i P P i P P i S S i P P i P P i W W i + W W i + + i P P i P P i S S i P P i P P i W W i + W W i + + i P P s/P P P i P P s/P P P i P P s/P W W i + W W i + + i P P s/P P P i P P s/P P P i P P s/P W W i + W +/P i + + i i i i i i i i i i i i i i i i i i i + i i i + - > + . . . . . . . . . . . . W . . . . . . + . . . . . . + + . . . . . . . . . W W W W . . . . . W + W W W . . . + + . . . . . . . . . . . . W . . . . . W + . . . . . . + + . . . . . . . . . . . . W . . . . . W + . . . . . W + + . +/G W W W W W W W W W W W W W W W W W + W W . W W W + + . i/G . . . . . . . . . . . . . . . . . + . W . W . . + + . s/G W W W W W W W W W W . . . . . . . + . W W W . . + + . p/G . . . . W . . . . W . . . . . . . + . W . . . . + + . G . . . . W . . . . W . . . . . . . + . W . . . . + + T G . . . . W . . . . W . . . . . . . + . W . . . . + + . t . . . . W . . . . W . . . . W . . + . W . W . . + + . . . . . . . . W W W W . . . . W . . + . W W W . . + + . . . . . . . . . . . W . . . . W . . + . W . . . . + + . . . . . . . . . . . W W W W W W W W + W W . . . . + + . . . . . . . . . . . . . . . . . . . + W . . . . . + + . . . . . . . . . . . . . . . . . . . + W . . . . . + + . . . . . . . . . . . . . . . . . . . + W . . . . . + - | + . . . . . . . . . . . . + . . . . . . . . . . . . + . +/G W W W W W W W W W W + . i/G . . . . . . . . . W + . s/G W W W W W W W W W W + . p/G . . . . . . . . . . + . G . . . . . . . . . . + T G . . . . . . . . . . + . t . . . . . . . . . . + - | + . . . . . W W W W . . . . + . . . . . W . . W . . . . + . . . . . W . . W . . . . + . . . . . W . . W . . . . + . +/G W W W W . . W W W W W + . i/G . . . . . . . . . . W + . G s/P W W W . . W W W W W + . p/G . . . W . . W . . . . + . G . . . W . . W . . . . + T G . . . W . . W . . . . + . t . . . W W W W . . . . + - | + . . . . . G G #/G G . . . . + . . . . . W . . W . . . . + . . . . . W . . W . . . . + . . . . . W . . W . . . . + . +/G W W W W . . W W W W W + . i/G . . . . . . . . . . W + . G s/P W W W . . W W W W W + . p/G . . . W . . W . . . . + . G . . . W . . W . . . . + T G . . . W . . W . . . . + . t . . . P P #/P P . . . . + - | + . . . . . W W W W W W W W . . . . . . + . . . . . W . . . . . . W . . . . . . + . . . . . W . . . . . . W . . . . . . + . . . . . W . . . . . . W W W W W W T + . +/G i/P W W W . . . . . . W . . . . . . + . d . . . . . . . . . . W . . . . . . + . G s/P W W W . . W W W W W . . . . . . + . p/G . . . W . . W . . . . . . . . . . + . G . . . W . . W . . . . . . . . . . + T G . . . W . . W . . . . . . . . . . + . t . . . W W W W . . . . . . . . . . + - | + . . . . . W W W W W W W W . . . . . . + . . . . . W . . . . . . W . . . . . . + . . . . . W . . . . . . W . . . . . . + . . . c . W . . . . . . W W W W W W T + . +/G d/P W W W . . . . . . W . . . . . . + . . . . . . . . . . . . W . . . . . . + . G s/P W W W . . W W W W W . . . . . . + . p/G . . . W . . W . . . W . . . . . . + . G . . . W . . W . . . W . . . . . . + T G i . . W . . W . . . W . . . . . . + . t f . . W W W W . . . W . . . . . . + . T . . . . . . . . . . W . . . . . . + . W . . . . . . . . . . W . . . . . . + . W W W W W W W . . . . W . . . . . . + . . . . . . . W . . . . W . . . . . . + . . . . . . . W . . . . W . . . . . . + . . . . . . . W W W W W W . . . . . . + - | + . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . + +/G d/P W W W W W W W W W W W W W W W W T + . . . . . . . . . . . . W . . . . . . + . . . . . . . . . . . . W . . . . . . + . G s/P W W W W W W W W W W . . . . . . + . p/G . . . . . W . . . . W . . . . . . + . G . . . . . W . . . . W . . . . . . + T G i . . . . W . . . . W . . . . . . + . t f . . . . W . . . . W . . . . . . + . T . . . . . c . . . . W . . . . . . + . W . . . . . . . . . . W . . . . . . + . W W W W W W W W W W W W . . . . . . + - | + L L L L L L L + L L L L L L L + L L L +/G W L L + L L L i/G W L L + L L L s/G W L L + L L T p/G L L L + L L L t/G L L L + L L L L L L L + L L L L L L L + - | + L L L L L L L L L L L L + L L L L L L L L L L L L + L L L L L L L L L L L L + L L L +/G W W W W W W L L + L L L i/G L L L L L W L L + L L L s/G W W W W W W L L + L L T p/G L L L L L L L L + L L L t/G L L L L L L L L + L L L L L L L L L L L L + L L L L L L L L L L L L + - | + L L L L L L L L L L L L + L L L L L L L L L L L L + L L L L L L L L L L L L + L L L +/G W W W L L L L L + L L L i/G L L W L L L L L + L L L s/G W W W L L L L L + L L T p/G L L L L L L L L + L L L t/G L L L L L L L L + L L L L L L L L L L L L + L L L L L L L L L L L L + - | + L L L L L L L L L L L L + L L L L L L L L L L L L + L L L L L L L L L L L L + L L L L L L L L L L L L + L L L W W W W W W W L L + L L L W L L L L L W L L + L L L W L L L L L W L L + L L L W L L L L L W L L + L L L +/G L L W W W W L L + L L L i/G L L W L L L L L + L L L s/G W W W L L L L L + L L T p/G L L L L L L L L + L L L t/G L L L L L L L L + L L L L L L L L L L L L + L L L L L L L L L L L L + L L L L L L L L L L L L + - | + s s s s s s s s s s s s s s s s + s G G +/G G G G G G G G G G G G s + s G G G G G G G G G G G G G G s + s G G G G G G G G G G G G G G s + s s s T s s s s T s s s T s s s + s G G G G s G G G G s G G G G s + s G #/G #/G G s G G G G s G #/G #/G G s + s G G G G s G G G G s G G G G s + s G #/G #/G G s G G G G s G #/G #/G G s + s G G G G s G G G G s G G G G s + s s T s s s s T s s s s s T s s + s G G G G G G G G G G G G G G s + s/G G G G G G G G G G G G G G G s + s G G G G G G p/G G G G G G G G s + s s s s s s s s s s s s s s s s + - | + s s s s s s s s s s s s s s s s + s G G +/G G G G G G G G G G G G s + s G G G G G G G G G G G G G G s + s G G G G G G G G G G G G G G s + s s s T s s s s T s s s T s s s + s S S S S s G G G G s P P P P s + s S #/S #/S S s G G G G s P #/P #/P P s + s S S S S s G #/G G G s P P P P s + s S #/S #/S S s G G G G s P #/P #/P P s + s S S S S s G G G G s P P P P s + s s T s s s s T s s s s s T s s + s G G G G G G G G G G G G G G s + s/G G G G G G G G G G G G G G G s + s G G G G G G p/G G G G G G G G s + s s s s s s s s s s s s s s s s + - | + s s s s s s s s s s s s s s s s + s P P +/P P P P P P P P P P P P s + s P P P P P P P P P P P P P P s + s P P P P P P P P P P P P P P s + s s s T s s s s T s s s T s s s + s S S S S s S S S S s G G G G s + s S #/S #/S S s S S S S s G #/G #/G G s + s S S S S s S S S S s G G G G s + s S #/S #/S S s S S S S s G #/G #/G G s + s S S S S s S S S S s G G G G s + s s T s s s s T s s s s s T s s + s S S S S S S S S S S S S S S s + s/G S S S S S S S S S S S S S S s + s S S S S S S p/S S S S S S S S s + s s s s s s s s s s s s s s s s + - | + i i i i i i i i i i i i i i i i + i P P P P P P P P P P P P P P i + i P P P P P P P P P P P P P +/P i + i P P P P P P P P P P P P P P i + i i i s i i i i s i i i s i i i + i S S S S i S S S S i G G G G i + i S #/S #/S S i S S S S i G #/G #/G G i + i S S S S i S S S S i G G G G i + i S #/S #/S S i S S S S i G #/G #/G G i + i S S S S i S S S S i G G G G i + i i s i i i i s i i i i i s i i + i G G G G G G G T G G G G G G i + i/G G G G G G G G G G G G G G G i + i T G G G G G p/G G G G G G G T i + i i i i i i i i i i i i i i i i + - | + L L L L L L L L L L L L L + L L L L L L L L L L +/G L L + L L L L L L L L L L W L L + L L L L L W W W W W W L L + L L L L L W L L L L L L L + L L L L L W L L L L L L L + L L L L L W W W W W W W L + L L L L L L L L L L L W L + L L L L L L L L L L L W L + L L W W W W W W W W W W L + L L W L L L L L L L L L L + L L W L L L L L L L L L L + L L W W W W W W W W W L L + L L L L L L L L L L W L L + L L L L L L L L L L W L L + L L L L L L W W W W W L L + L L L L L L W L L L L L L + L L L L L L W L L L L L L + L L L L L L s/W L L L L L L + L L L G G G p/G G T t/G L L L + L L L L L L L L L L L L L + L L L L L L L L L L L L L + - | + L L L L L L L L L L L L L + L L L L L L L L L L +/G L L + L L L L L L L L L L W L L + L L L L L W W W W W W P #/P + L L L L L W L L L L L L L + L L L L L W L L L L L L L + L L #/P P P W W W W W W W L + L L L L L L L L L L L W L + L L L L L L L L L L L W L + L L W W W W W W W W W W L + L L W L L L L L L L L L L + L L W L L L #/P L L L L L L + L L W W W L P L W W W L L + L L L L W W W W W L W L L + L L L L L L L L L L W L L + L L L L L L W W W W W L L + L L L L L L W L L L L L L + L L L L L L W P #/P L L L L + L L L L L L s/W L L L L L L + L L L G G G p/G G T t/G L L L + L L L L L L L L L L L L L + L L L L L L L L L L L L L + - | + L L L L L L L L L L L L L + L L L L L L L L L L +/G L L + L L L L L L L L L L W L L + L L L L L W W W W W W P #/P + L L L L L W L L L L L L L + L L L L L W L L L L L L L + L L #/P P P W W W W W W W L + L L L L L L L L L L L W L + L L L L L L L L L L L W L + L L W W W W W W W W W W L + L L W L L L L L L L L L L + L L W L L L #/P L L L L L L + L L W W W L P L W W W L L + L L L L W W W W W L W L L + L L L L L L L L L L W L L + L L L L L L W W W W W L L + L L L L L L W L L L L L L + L L L L L L W P #/P L L L L + L L L L L L s/W L L L L L L + L L L G G G p/G G T t/G L L L + L L L L L L L L L L L L L + L L L L L L L L L L L L L + - | + L L L L L L L L L L L L L + L L L L L L L L L L +/G L L + L L L L L L L L L L W L L + L L L L L W W W W W W P #/P + L L L L L W L L L L L L L + L L L L L W L L L L L L L + L L #/P P P W W W W W W W L + L L L L L L L L L L L W L + L L L L L L L L L L L W L + L L W W W W W W W W W W L + L L W L L L L L L L L L L + L L W L L L #/P L L L L L L + L L W W W L P L W W W L L + L L L L W W W W W L W L L + L L L L L L L L L L W L L + L L L L L L W W W W W L L + L L L L L L W L L L L L L + L L L L L L W P #/P L L L L + L L L L L L s/W L L L L L L + L L L G G G p/G G T t/G L L L + L L L L L L L L L L L L L + L L L L L L L L L L L L L + - > + . . L L L L L L L L L L L L L d/L L L + L L L L L L L L + + . . L L L L L L L L L L G G G T G G + G G i/G s/G G G L L + + . . L L L L L L L L L L W L L d/L L L + L L L L L W L L + + . . L L L L L W W W W W W P #/P d/L W W + W W W W W W L L + + . . L L L L L W L L L L L L d/L d/L W d/L + d/L d/L d/L d/L d/L d/L d/L d/L + + . . L L L L L W L L L L L L d/L L W L + L W W W W W L L + + . . L L #/P P P W W W W W W W d/L L W L + L W d/L d/L d/L W L L + + . . L L L L L L L L L L L W d/L L W L + L W d/L L L W L L + + . . L L L L L L L L d/L L L W d/L L W L + L W d/L L L W L L + + . . L L W W W W W W W W W W d/L L W L + L W d/L L L W L L + + . . L L W L L L L L L L L L d/L L W L + L W d/L L L W L L + + . . L L W L L L #/P L L L L L d/L L W L + L W d/L L L W L L + + . . L L W W W L P L W W W L d/L L W L + L W d/L L L W L L + + . . L L L L W W W W W L W L d/L L W L + L W d/L L L W L L + + . . L L L L L L L L L L W L d/L L W L + L W d/L L L W L L + + . . L L L L L L W W W W W L d/L L W L + L W d/L L W W L L + + . . L L L L L L W L L L L L d/L L W L + L W d/L L W L L L + + . . L L L L L L W P #/P L d/L d/L d/L L W L + L W d/L L W L L L + + . . L L L L L L s/W L L L d/L W W W W L + L W d/L L W L L L + + . . L L L G G t/G p/G G T G d/L W d/L d/L d/L d/L + W W d/L L +/G L L L + + . . L L L L L L L L L L d/L W W W W W + W L d/L L L L L L + + . . L L L L L L L L L L d/L L L L L L + L L d/L L L L L L + - | + G G G G G G G G G G G G G + G . . . . . . . . . . . G + G . G G G G G G G G G . G + G . G . . . . . . . G . G + G . G . G G G G G . G . G + G . G . G . . . G . G . G + G . G . G . +/G . G . G . G + G . G . G . G . G . G . G + G . G . G G G . G . G . G + G . G . . . . . G . G . G + G . G G G G G G G . G . G + G . . . . . . . . . G . G + G G G G G G G G G G G . G + . . . . . . . . . . . . G + p/G G G G G G G G G G G G G + - | + T G G G G G G G G G G G T + G . . . . . . . . . . . G + G . T G G G G G G G T . G + G . G . . . . . . . G . G + G . G . T G G G T . G . G + G . G . G . . . G . G . G + G . G . G . +/G . G . G . G + G . G . G . G . G . G . G + G . G . T G T . G . G . G + G . G . . . . . G . G . G + G . T G G G G G T . G . G + G . . . . . . . . . G . G + T G G G G G G G G G T . G + . . . . . . . . . . . . G + p/G G G G G G G G G G G G T + - | + T T G G G G G G G G G T T + T . . . . . . . . . . . T + G . T T G G G G G T T . G + G . T . . . . . . . T . G + G . G . T T G T T . G . G + G . G . T . . . T . G . G + G . G . G . +/G . G . G . G + G . G . T . T . G . G . G + G . G . T T T . G . G . G + G . T . . . . . T . G . G + G . T T G G G T T . G . G + T . . . . . . . . . T . G + T T G G G G G G G T T . G + . . . . . . . . . . . . T + p/G G G G G G G G G G G T T + - | + T T T T G G G G G T T T T + T . . . . . . . . . . . T + T . T T T T G T T T T . T + T . T . . . . . . . T . T + G . T . T T T T T . T . G + G . T . T . . . T . T . G + G . G . T . +/G . T . G . G + G . G . T . T . T . G . G + G . T . T T T . T . G . G + T . T . . . . . T . T . G + T . T T T T T T T . T . G + T . . . . . . . . . T . T + T T T T G G G T T T T . T + . . . . . . . . . . . . T + p/G G G G G G G G G T T T T + - | + P P P P P P P P P P P P P + P . . . . . . . . . . . P + P . P P P P P P P P P . P + P . P . . . . . . . P . P + P . P . P P P P P . P . P + P . P . P . . . P . P . P + P . P . P . +/G . P . P . P + P . P . P . P . P . P . P + P . P . P P P . P . P . P + P . P . . . . . P . P . P + P . P P P P P P P . P . P + P . . . . . . . . . P . P + P P P P P P P P P P P . P + . . . . . . . . . . . . P + p/P P P P P P P P P P P P P + - | + s/P P P P P P P P P P P P s/P + P . . . . . . . . . . . P + P . s/P P P P P P P P s/P . P + P . P . . . . . . . P . P + P . P . s/P P P P s/P . P . P + P . P . P . . . P . P . P + P . P . P . +/G . P . P . P + P . P . P . P . P . P . P + P . P . s/P P s/P . P . P . P + P . P . . . . . P . P . P + P . s/P P P P P P s/P . P . P + P . . . . . . . . . P . P + s/P P P P P P P P P P s/P . P + . . . . . . . . . . . . P + p/P T T T P P P P P P P P s/P + - | + s/P s/P P P P P P P P P P s/P s/P + s/P . . . . . . . . . . . s/P + P . s/P s/P P P P P P s/P s/P . P + P . s/P . . . . . . . s/P . P + P . P . s/P s/P P s/P s/P . P . P + P . P . s/P . . . s/P . P . P + P . P . P . +/G . P . P . P + P . P . s/P . s/P . P . P . P + P . P . s/P s/P s/P . P . P . P + P . s/P . . . . . s/P . P . P + P . s/P s/P P P P s/P s/P . P . P + s/P . . . . . . . . . s/P . P + s/P s/P P P P P P P P s/P s/P . P + . . . . . . . . . . . . s/P + p/P T T T P P P P P P P s/P s/P + - | + s/P s/P s/P s/P P P P P P s/P s/P s/P s/P + s/P . . . . . . . . . . . s/P + s/P . s/P s/P P P P s/P s/P s/P s/P . s/P + s/P . s/P . . . . . . . s/P . s/P + P . P . s/P s/P s/P s/P s/P . s/P . P + P . P . s/P . . . s/P . s/P . P + P . P . s/P . +/G . s/P . P . P + P . s/P . s/P . s/P . s/P . P . P + P . s/P . s/P s/P s/P . s/P . P . P + s/P . s/P . . . . . s/P . s/P . P + s/P . s/P s/P s/P s/P s/P s/P s/P . s/P . P + s/P . . . . . . . . . s/P . s/P + s/P s/P s/P s/P P P P s/P s/P s/P s/P . s/P + . . . . . . . . . . . . s/P + p/P T T T P P P P P s/P s/P s/P s/P + - | + . +/G . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . p/P . . + . T . . + . t/G . . + - | + . +/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . p/P . . + . T . . + . t/G . . + - | + . +/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . s/P . . + . p/P . . + . T . . + . G . . + . t . . + - | + s s s/P . . + s . s/P . . + s . s/P . . + s . s/P . . + s . s/P . . + s . s/P . . + s . s/P . . + s . s/P . . + s . s/P . . + s . s/P . . + s . s/P . . + s . s/P . . + s . s/P . . + s . s/P . . + s . s/P . . + s . s/P . . + s . s/P . . + s . s/P . . + s . p/P . . + s . T . . + s . t/G . . + s . +/G . . + s s s . . + - > + W W W W W W W W W W W W W W W W W W W + W W W W W W W W W W W W W W W W W W W + +/G + + W W W W W W W W W W W W W W W W W W W + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W W + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W W + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W W + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W G + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W G + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W s/G + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W G + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W p/G + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W G + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W G + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W T + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W T + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W T + W W W W W W W W W W W W W W W W W W W + W + - > + W W W W W W W W W W W W W W W W W W W + W W W W W W W W W W W W W W W W W W i/P + +/G + + W W W W W W W W W W W W W W W W W W W + W W W W W W W W W W W W W W W W W W i/P + i/P + + W W W W W W W W W W W W W W W W W W W + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W W + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W W + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W G + W W W W W W W W W W W W W W W W W W W + W + + W W W W T W W W W W W W W W W W W W G + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W s/G + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W G + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W p/G + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W G + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W G + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W T + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W T + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W T + W W W W W W W W W W W W W W W W W W W + W + - > + W W W W W W W W W W W W W W W W W W W + W W W W W W W W W W W W W W W W W W S + c/G + + W W W W W W W W W W W W W W T W W W W + W W W W W W W W W W W W W W W W W W S + S + + W W W W S S S W W W W W W W W W W W W + W W W W W W W W W W W W W W W W W W W + W + + W W W W S f/S S W W W W W W W W W W d/W + d/W d/W W W W W W W W W W W W W W W W W W + W W + + W W W W S S S W W W W W W W W W W d/W + +/G d/W W W W W W W W W W W W W W W W W W + W W + + W W W W W W W W W W W W W W W W W d/W + d/G d/W W W W W W W W W W W W W W W W W W + W W + + W W W W W W W W W W T W W W W W W W G + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W s/G + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W G + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W p/G + W W W W W W W W W W S S S W W W W W W + W + + W W W W W W W W W W W W W W W W W W G + W W W W W W W W W W S i/S S W W W W T W + W + + W W W W W W T W W W W W W W W W W W G + W W W W W W W W W W S S S W W W W W W + W + + W W W W W W W W W W W W W W W W W W T + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W T + W W W W W W W W W W W W W W W W W W W + W + + W W W W W W W W W W W W W W W W W W T + W W W W W W W W W W W W W W W W W W W + W + - > + W W W W W W W W W P L L L L L L L L P + W W W W W W W W P P L L L P P W W W W + +/G + + W W W W W W W P P P L L L L L L L L P + W W W W W W W P P L L L L L L P W W W + W + + W W W W W W P P L L L L L L L L L P P + W W W W W W P P L L L L L L L P W W W + W + + W W W W W P P L L L L L L L L L P P W + W W W W W P P L L L L L L L L P W W W + W + + W W W P P L L L L L L L L L P P W W W + W W W W W P L L L L L L L L L P W W W + W + + W W P P L L L L L L L L L L P W W W G + W W W W P L L L L L L L L L L P W W W + W + + P P P L L L L L L L L L L P P W W W G + W W W P P L L L L L L L L L L L P W W + W + + L L L L L L L L L L L L P P W W W W s/G + W W W P L L L L L L L L L L L L P W W + W + + L L L L L L L L L L P P W W W W W W G + W W W P P L L L L L L L L L L L P W W + W + + L L L L L L L L L P P W W W W W W W p/G + W W W W P L L L L L L L L L L L P P W + W + + L L L L L L L P P P P W W W W W W W G + W W W W P P L L L L L L L L L L P P W + W + + L L L L L P P P W W W W W W W W W W G + W W W W W P L L L L L L L L L L P W W + W + + L L L P P P P W W W W W W W W W W W T + W W W W W W P L L L L L L L L P W W W + W + + P P P P W W W W W W W W W W W W W W T + W W W W W W P P L L L L L L P W W W W + W + + W W W W W W W W W W W W W W W W W W T + W W W W W W W W P L L L L P P W W W W + W + - > + W W W W W W W W W W W W W P P L L L L + L L L P P P P W W W W W W W W W W W i/P + +/G + + W W W W W W W W W W W W P P L L L L L + L L L L L L P P W W W W W W W W W W i/P + i/P + + W W W W W W W W W W W P P L L L L L L + L L L L L L L P P W W W W W W W W W W + W + + W W W W W W W W W W P P L L L L L P P + P P P P P L L L L P W W W W W W W W W + W + + W W W W W W W W W P L L L L L P P P W + W W W W P P L L L L P W W W W W W W W + W + + W W W W W W W W P P L L L P P P W W G + W W W W W W P P L L P P W W W W W W W + W + + W W W W T W W P L L L L P P W W W W G + W W W W W W W P P L L P P W W W W W W + W + + W W W W W W P P L L L P P W W W W W s/G + W W W W W W W W P L L L P W W W W W W + W + + W W W W W P P L L L P P W W W W W W G + W W W W W W W W P P L L L P W W W W W + W + + W W W W P P L L L L P P W W W W W W p/G + W W W W W W W W W P L L L P P W W W W + W + + W W W W P L L L L P P W W W W W W W G + W W W W W W W W W P L L L L P P W W W + W + + W W W P L L L L L P P W W W W W W W G + W W W W W W W W W P P L L L L P W W W + W + + W W P P L L L L P W W W W W W W W W T + W W W W W W W W W W P P L L L P P W W + W + + W P P L L L L P P W W W W W W W W W T + W W W W W W W W W W W P L L L L L P W + W + + W P L L L L L P W W W W W W W W W W T + W W W W W W W W W W W P L L L L L P W + W + - > + W W W W W W W W W W W W W P P W L L P + P W W W W W W W W W P L L P W W W W S + c/G + + W W W W W W W W W P P W W P T W L P P + W W W W W W W W W P P L L P W W W W S + S + + W W W W S S S W P P L P P W L L P P W + W W W W W W W W P P L L L P W W W W W + W + + W W W W S f/S S P P L L L L L L P W d/W + d/W d/W W W W W W W P P L L P P W W W W W + W W + + W W W W S S S P L L L P P P P P W d/W + +/G d/W W W W W W P P L L L P P P W P P P + W W + + W W W W W W W P L L W W P W W W W d/W + d/G d/W W W W W P P L L L L L L P W P L L + P P + + W W W W W P P P L W T W P W W W W W G + W W W W P P L L S S S S L P P P L L L + P + + W W W P P L L L L W W P P W W W W W s/G + W W W P P L L S S W W S S L L L L L L + P + + W W W P L L L L L P P P W W W W W W G + W W P P L L S G S W W W W S L L P P P + L + + W W P P L S S S L P P W W W W W W W p/G + W W P L L S G G S W S S S S L L P W W + P + + W P P L S W W S S L L P W W W W W W G + W P P L S G G S S W S i/S S S L L P T W + P + + W P L S S W T W W S L P P W W W W W G + W P L S S G S S W W S S S S L L P W P + L + + W P L L S W W W S S L L P W W W W W T + P P L S G G S W W W W W W S L L P P P + L + + W P L L S S S S S L L P P W W W W W T + L L S G G S S W W W W W W S S L L L L + L + + W P P L L L L L L P P P W W W W W W T + L L S G G S W W W W W W W S S S L L L + L + - | + G G G G G G G G G G G G G G G G + G s s s s s s s P s s s s s s G + G s +/G i/G G G G G G G G G i/G +/G s G + G s i/G s s s s s P s s s s i/G s G + G s G s P P P P P P P P s G s G + G s G s P P P P P P P P s G s G + G s G s P P P P p/P P P P P G s G + G s G P P P P P P P P P s G s G + G s G s P P P P P P P P s G s G + G s G s P P P P P P P P s G s G + G s i/G s s s s s P s s s s i/G s G + G s +/G i/G G G G G G G G G i/G +/G s G + G s s s s s s s s s s s s s s G + G G G G G G G G G G G G G G G G + . . . . . . G G G G G . . . . . + . . . . . . G G G G G . . . . . + . . . . . . G G G G G . . . . . + . . . . . . G G +/G G G . . . . . + . . . . . . G G G G G . . . . . + - | + G G G G G G G G G G G G G G G G + G i i i i i i i i/P i i i i i i G + G i +/G i/G G G G G G G G G i/G +/G i G + G i i/G s s s s s T s s s s i/G i G + G i G s P P P P P P P P s G i G + G i G s P P P P P P P P s G i G + G i G s P P P P p/P P P P T G i G + G i G T P P P P P P P P s G i G + G i G s P P P P P P P P s G i G + G i G s P P P P P P P P s G s G + G i i/G s s s s s T s s s s i/G i G + G i +/G i/G G G G G G G G G i/G +/G i G + G i i i i i i i i i i i i i i G + G G G G G G G G G G G G G G G G + . . . . . . G G G G G . . . . . + . . . . . . G G G G G . . . . . + . . . . . . G G G G G . . . . . + . . . . . . G G +/G G G . . . . . + . . . . . . G G G G G . . . . . + - | + G G G G G G G G G G G G G G G G + G i i i i i i i i/P i i i i i i G + G i +/G i/G G G G G #/G G G G i/G +/G i G + G i i/G s s s s s T s s s s i/G i G + G i G s P P P P P P P P s G i G + G i G s P P P P P P P P s G i G + G i #/G s P P P P p/P P P P T G i G + G i G T P P P P P P P P s #/G i G + G i G s P P P P P P P P s G i G + G i G s P P P P P P P P s G s G + G i i/G s s s s s T s s s s i/G i G + G i +/G i/G G G G #/G G G G G i/G +/G i G + G i i i i i i i i i i i i i i G + G G G G G G G G G G G G G G G G + . . . . . . G G G G G . . . . . + . . . . . . G G G G G . . . . . + . . . . . . G G G G G . . . . . + . . . . . . G G +/G G G . . . . . + . . . . . . G G G G G . . . . . + - | + G G G G G G G G G G G G G G G G + G i i i i i i i i/P i i i i i i G + G i +/G i/G G G G G #/G G G G i/G +/G i G + G i i/G s s s s s T s s s s i/G i G + G i G s P P P P P P P P s G i G + G i G s P P P P P P P P s G i G + G i #/G s P P P P p/P P P P T G i G + G i G T P P P P P P P P s #/G i G + G i G s P P P P P P P P s G i G + G i G s P P P P P P P P s G s G + G i i/G s s s s s T s s s s i/G i G + G i +/G i/G G G G #/G G G G G i/G +/G i G + G i i i i i i i i i i i i i i G + G G G G G G G G G G G G G G G G + . . . . . . L L S L L . . . . . + . . . . . . L L S L L . . . . . + . . . . . . L L S L L . . . . . + . . . . . . L L +/G L L . . . . . + . . . . . . L L L L L . . . . . + - | + G G G G G G G G G G G G G G G G + G L L L L L L L L L L L L L L G + G L +/G i/G G G G G #/G G G G i/G +/G L G + G L i/G s s s s s T s s s s i/G L G + G L G s P P P P P P P P s G L G + G L G s P P P P P P P P s G L G + G L #/G s P P P P p/P P P P T G L G + G L G T P P P P P P P P s #/G L G + G L G s P P P P P P P P s G L G + G L G s P P P P P P P P s G s G + G L . s s s s s T s s s s i/G L G + G L +/G i/G G G G #/G G G G G i/G +/G L G + G L L L L L L L L L L L L L L G + G G G G G G G G G G G G G G G G + . . . . . . L L L L L . . . . . + . . . . . . G G G G G . . . . . + . . . . . . G L L L G . . . . . + . . . . . . G L +/G L G . . . . . + . . . . . . G L L L G . . . . . + - > + L W L W L W L W L W L W L W L W L W L + W L + + W L W L W L W L W L W L W L W L W L W + L W + + L W L W L W L W L W L W L W L W L W L + W L + + W L W L W L W L W L W L W L W L W L W + L W + + L W L W L W L W L W L W L W L W L W L + W L + + W L W L W L W L W L +/G +/G W L W L W L W + L W + + L W L W L W L W L W G G L W L W L W L + W L + + W L W L W L W L W L W L W L W L W L W + L W + + L W L W L W L W L W s/G s/G L W L W L W L + W L + + W L W L W L W G G G G G G G G L W L W + L W + + L W L W L W L G G G G p/G G G G W L W L + W L + + W L W L W L W L W L G G W L W L W L W + L W + + L W L W L W L W L W T t/G L W L W L W L + W L + - > + L W L W L W L W L W L W L W L W L W L + W L + + W L W L W L W L W L W L W L W L W L W + L W + + L +/G G G G G G G G G G G G G G G G G G + +/G L + + W L W L W L W L W L G G W L W L W L W + L W + + L W L W L W L W L W G G L W L W L W L + W L + + W L W L W L W L W L G G W L W L W L W + L W + + L W L W L W L W L W G G L W L W L W L + W L + + W L W L W L W L W L W L W L W L W L W + L W + + L W L W L W L W L W s/G s/G L W L W L W L + W L + + W L W L W L W T G G G G G G T L W L W + L W + + L W L W L W L G G G G p/G G G G W L W L + W L + + W L W L W L W L W L G G W L W L W L W + L W + + L W L W L W L W L W T G L W L W L W L + W L + - > + L W L W L W L W L W L W L W L W L W L + W L + + d/W d/L d/W L W L W L W L W L W L W L W L d/W + d/L d/W + + d/L +/G d/G G G G G G G G G G G G G G G G d/G + +/G d/L + + d/W L d/W L W L W L W L G G W L W L W L d/W + d/L d/W + + L W L W L W L W L W G G L W L W L W L + W L + + W L W L W L W L W L G G W L W L W L W + L W + + L W L W L W L W L W G G L W L W L W L + W L + + W L W L W L W L W L W L W L W L W L W + L W + + L W L W L W L W L W s/G s/G L W L W L W L + W L + + W L W L W L W T G G G G G G T L W L W + L W + + L W L W L W L G G G G p/G G G G W L W L + W L + + W L W L W L W L W L G G W L W L W L W + L W + + L W L W L W L W L W T G L W L W L W L + W L + - > + L W L W L W L W L W L W L W L W L W L + W L + + . . . L W L W L W L W L W L W L W L . + d/G . + + . +/G . G G G G G G G G G G G G G G T . + +/G . + + . . . L W L W L W L G G W L W L W L . + . . + + L W L W L W L W L W G G L W L W L W L + i/G L + + W L W L W L W L W L G G W L W L W L W + L W + + L W L W L W L W L W G G L W L W L W L + W L + + W L W L W L W L W L W L W L W L W L W + L W + + L W L W L W L W L W L s/G L W L W L W L + W L + + W L W L W L W G G G G G G G G L W L W + L W + + L c/G L W L W L T G G G p/G G G T W L W L + W L + + W L W L W L W L W L G G W L W L W L W + L W + + L W L W L W L W L W t f/G L W L W L W L + W L + - > + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G T G + + G G T G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G G G G G G G G G G G G + G G G G G G + + . . . . . . . G W W W W W W W W W G . + . . . . . . + + . . . . . . . G W W W W W W W W W G . + . . . . . . + + . . . . . . . G W W W G G G W W W G . + . . . . . . + + . . . . . . . G W W W G G G W W W G . + . . . . . . + + . . . . . . . G W W W G +/G G W W W G . + . . . . . . + + . . . . . . . G W W W G G G W W W G . + . . . . . . + + . . . . . . . G W W W W W W W W W G . + . . . . . . + + . . . . . . . G W W W W W W W W W G . + . . . . . . + + G G G G G G G G G G G G G G G G G G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G s/G p/G G G G G G . . . . . . . . . G G + G G G G T G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + - > + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G s G + + G G T G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G G G G G G G G G G G G + G G G G G G + + . . . . . . . G W W W W W W W W W G . + . . . . . . + + . . . . . . . G W W W W W W W W W G . + . . . . . . + + . . . . . . . G W W W G G G W W W G . + . . . . . . + + . . . . . . . G W W W G G G W W W G . + . . . . . . + + . . . . . . . G W W W G +/G G W W W G . + . . . . . . + + . . . . . . . G W W W G G G W W W G . + . . . . . . + + . . . . . . . G W W W W W W W W W G . + . . . . . . + + . . . . . . . G W W W W W W W W W G . + . . . . . . + + G G G G G G G G G G G G G G G G G G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + + G G p/G G G G G G . . . . . . . . . G G + G G G G t/T G + + G G G G G G G G . . . . . . . . . G G + G G G G G G + - > + L L L L L L L L L L . . . . . . . L L + L L L L L L L L + + L G G G G G G G G L . . . . . . . L G + G G G G G G G L + + L G G G G G G G G L . . . . . . . L G + G G G G G s G L + + L G G T G G G G G L . . . . . . . L G + G G G G G G G L + + L G G G G G G G G L . . . . . . . L G + G G G G G G G L + + L G G G G G G G G L . . . . . . . L G + G G G G G G G L + + L G G G G G G G G L . . . . . . . L G + G G G G G G G L + + L G G G G G G G G L L L L L L L L L G + G G G G G G G L + + L G G G G G G G G G G G G G G G G G G + G G G G G G G L + + L L L L L L L L G L L L L L L L L L G + L L L L L L L L + + . . . . . . . L G L W W W W W W W L G + L . . . . . . . + + . . . . . . . L G L W W G G G W W L G + L . . . . . . . + + . . . . . . . L G L W W G G G W W L G + L . . . . . . . + + . . . . . . . L G L W W G +/G G W W L G + L . . . . . . . + + . . . . . . . L G L W W G G G W W L G + L . . . . . . . + + . . . . . . . L G L W W W W W W W L G + L . . . . . . . + + L L L L L L L L G L L L L L L L L L G + L L L L L L L L + + L G G G G G G G G G G G G G G G G G G + G G G G G G G L + + L G G G G G G G G L L L L L L L L L G + G G G G G G G L + + L G G G G G G G G L . . . . . . . L G + G G G G G G G L + + L G G G G G G G G L . . . . . . . L G + G G G G G G G L + + L G G G G G G G G L . . . . . . . L G + G G G G G G G L + + L G G G G G G G G L . . . . . . . L G + G G G G G G G L + + L G G p/G G G G G G L . . . . . . . L G + G G G G G t/T G L + + L G G G G G G G G L . . . . . . . L G + G G G G G G G L + + L L L L L L L L L L . . . . . . . L L + L L L L L L L L + - > + L L L L L L L L L L . . . . . . . L L + L L L L L L L L + + L G G G G G G G G L . . . . . . . L G + G G G G G G G L + + L G G G G G G G G L . . . . . . . L G + G G G G G s G L + + L G G T G G G G G L . . . . . . . L G + G G G G G G G L + + L G G G G G G G G L . . . . . . . L G + G G G G G G G L + + L G G G G G G G G L . . . . . . . L G + G G G G G G G L + + L G G G G G G G G L . . . . . . . L G + G G G G G G G L + + L G G G G G G G G L d/L d/L d/L d/L d/L d/L d/L L G + G G G G G G G L + + L G G G G G G G G G G G G G G G G G G + G G G G G G G L + + L L L L L L L L G d/L d/L d/L d/L d/L d/L d/L d/L d/L + G L L L L L L L L + + . . . . . . . d/L G d/L W W W W W W W d/L + G d/L . . . . . . . + + . . . . . . . d/L G d/L W W G G G W W d/L + G d/L . . . . . . . + + . . . . . . . d/L G d/L W W G G G W W d/L + G d/L . . . . . . . + + . . . . . . . d/L G d/L W W G +/G G W W d/L + G d/L . . . . . . . + + . . . . . . . d/L G d/L W W G G G W W d/L + G d/L . . . . . . . + + . . . . . . . d/L G L W W W W W W W d/L + G d/L . . . . . . . + + L L L L L L L L G L d/L d/L d/L d/L d/L d/L d/L d/L + G L L L L L L L L + + L G G G G G G G G G G G G G G G G G G + G G G G G G G L + + L G G G G G G G G L d/L d/L d/L d/L d/L d/L d/L L G + G G G G G G G L + + L G G G G G G G G L . . . . . . . L G + G G G G G G G L + + L G G G G G G G G L . . . . . . . L G + G G G G G G G L + + L G G G G G G G G L . . . . . . . L G + G G G G G G G L + + L G G G G G G G G L . . . . . . . L G + G G G G G G G L + + L G G p/G G G G G G L . . . . . . . L G + G G G G G t/T G L + + L G G G G G G G G L . . . . . . . L G + G G G G G G G L + + L L L L L L L L L L . . . . . . . L L + L L L L L L L L + - > + . . G G G . G G G . G G G . G G G . G + G G . G G G . G G G + + . G G . G . G . G . G . G . G . G . G + . G . G . G . G . G + + G G . . G . G . G G G . G G G . G G G + . G G G . G G G . G + + G . . . G . G . . . . . . . . . . . . + . . . . . . . . . G + + G G G . G . G G G G G G G G G G G G G + G G G G G G G G . G + + . . G . G . . . . . . . . . . . . . . + . . . . . . . G . G + + G G G . G . G G G . G G G . G G G . G + G G . G G G . G . G + + G . . . G . G . G . G . G . G . G . G + . G . G . G . G . G + + G G G . G . G . G . G . G . G . G . G + . G . G . G . G . G + + . . G . +/G . p/G . G G G . G G G . G G G + . G G G . G G G . G + + G G G . . . . . . . . . . . . . . . . + . . . . . . . . . G + + G . . . . . G G G G G G G G G G G G G + G G G G G G G G G G + + G G G . . . G . . . . . . . . . . . . + . . . . . . . . . . + + . . G . . . G . G G G . G G G . G G G + . G G G . G G G G G + + G G G . . . G G G . G G G . G G G . G + G G . G G G . . . G + + G . . . . . . . . . . . . . . . . . . + . . . . . . . . . G + + G G G G G G G G G G G G G G G G G G G + G G G G G G G G G G + - > + . . P S G . P G G . G G G . G G G . G + G G . G G G . G G G + + . P S . G . P . S . S . S . S . S . S + . S . S . S . S . S + + G S . . G . P . G G G . G G G . G G G + . G G G . G G G . G + + G . . . G . P . . . . . . . . . . . . + . . . . . . . . . S + + P S G . G . P P P P P P P P P P P P P + P P P P P P P P . G + + . . G . G . . . . . . . . . . . . . . + . . . . . . . P . S + + G S P . G . S S S . S S S . S S S . S + S S . S S S . P . G + + G . . . G . G . G . G . G . G . G . G + . G . G . G . P . S + + P S G . G . G . G . G . G . G . G . G + . G . G . G . P . G + + . . G . +/G . p/G . S S S . S S S . S S S + . S S S . S S S . S + + G S P . . . . . . . . . . . . . . . . + . . . . . . . . . G + + G . . . . . S G S G S G S G S G S G S + G S G S G S G S G S + + P S G . . . G . . . . . . . . . . . . + . . . . . . . . . . + + . . G . . . S . G S G . G S G . G S G + . G S G . G S P P P + + G S P . . . G S G . G S G . G S G . G + S G . G S G . . . P + + G . . . . . . . . . . . . . . . . . . + . . . . . . . . . P + + P P P P P P P P P P P P P P P P P P P + P P P P P P P P P P + - > + L L P S G L P G G L G G G L G G G L G + G G L G G G L G G G + + L P S L G L P L S L S L S L S L S L S + L S L S L S L S L S + + G S L L G L P L G G G L G G G L G G G + L G G G L G G G L G + + G L L L G L P L L L L L L L L L L L L + L L L L L L L L L S + + P S G L G L P P P P P P P P P P P P P + P P P P P P P P L G + + L L G L G L L L L L L L L L L L L L L + L L L L L L L P L S + + G S P L G L S S S L S S S L S S S L S + S S L S S S L P L G + + G L L L G L G L G L G L G L G L G L G + L G L G L G L P L S + + P S G L G L G L G L G L G L G L G L G + L G L G L G L P L G + + L L G L +/G L p/G L S S S L S S S L S S S + L S S S L S S S L S + + G S P L L L L L L L L L L L L L L L L + L L L L L L L L L G + + G L L L L L S G S G S G S G S G S G S + G S G S G S G S G S + + P S G L L L G L L L L L L L L L L L L + L L L L L L L L L L + + L L G L L L S L G S G L G S G L G S G + L G S G L G S P P P + + G S P L L L G S G L G S G L G S G L G + S G L G S G L L L P + + G L L L L L L L L L L L L L L L L L L + L L L L L L L L L P + + P P P P P P P P P P P P P P P P P P P + P P P P P P P P P P + - > + G G G . G G G . G G G . G G G . G G G + . +/G + + G . G . G . G . G . G . G . G . G . G + . G + + G . G G G . G G G . G G G . G G G . G + G G + + G . . . . . . . . . . . . . . . . . . + . . + + G G G G G G G G G G G G G G G G G G G + G G + + . . . . . . . . . . . . . . . . . . . + . G + + G G G . G G G . G G G . G G G . G G G + . G + + G . G . G . G . G . G . G . G . G . G + . G + + G . G . G . G . G . G . G . G . G . G + . G + + p/G . G G G . G G G . G G G . G G G . G + G G + - > + G G G L G G G L G G G L G G G L G G G + L +/G + + G L G L G L G L G L G L G L G L G L G + L G + + G L G G G L G G G L G G G L G G G L G + G G + + G L L L L L L L L L L L L L L L L L L + L L + + G G G G G G G G G G G G G G G G G G G + G G + + L L L L L L L L L L L L L L L L L L L + L G + + G G G L G G G L G G G L G G G L G G G + L G + + G L G L G L G L G L G L G L G L G L G + L G + + G L G L G L G L G L G L G L G L G L G + L G + + p/G L G G G L G G G L G G G L G G G L G + G G + - > + G G G W G G G W G G G W G G G W G G G + W +/G + + G W G W G W G W G W G W G W G W G W G + W G + + G W G G G W G G G W G G G W G G G W G + G G + + G W W W W W W W W W W W W W W W W W W + W W + + G G G G G G G G G G G G G G G G G G G + G G + + W W W W W W W W W W W W W W W W W W W + W G + + G G G W G G G W G G G W G G G W G G G + W G + + G W G W G W G W G W G W G W G W G W G + W G + + G W G W G W G W G W G W G W G W G W G + W G + + p/G W G G G W G G G W G G G W G G G W G + G G + - > + G G G s/W G G G s/W G G G s/W G G G s/W G G + G s/W +/G + + G s/W G s/W G s/W G s/W G s/W G s/W G s/W G s/W G s/W + G s/W G + + G s/W G G G s/W G G G s/W G G G s/W G G G s/W G + G G + + G s/W s/W s/W s/W s/W s/W s/W s/W s/W s/W s/W s/W s/W s/W s/W s/W s/W + s/W s/W s/W + + G G G G G G G G G G G G G G G G G G G + G G + + s s s s s s s s s s s s s s s s s s s + s G + + G G G s/W G G G s G G G s G G G s/W G G G + s/W G + + G s/W G s/W G s/W G s/W G s/W G s/W G s/W G s/W G s/W + G s/W G + + G s/W G s/W G s/W G s/W G s/W G s/W G s/W G s/W G s/W + G s/W G + + p/G s/W G G G s/W G G G s/W G G G s/W G G G s/W G + G G + - > + G G G d/W G G G d/W G G G d/W G G G d/W G G + G d/W +/G + + G d/W G d/W G d/W G d/W G d/W G d/W G d/W G d/W G d/W + G d/W G + + G d/W G G G d/W G G G d/W G G G d/W G G G d/W G + G G + + G d/W d/W d/W d/W d/W d/W d/W d/W d/W d/W d/W d/W d/W d/W d/W d/W d/W + d/W d/W d/W + + G G G G G G G G G G G G G G G G G G G + G G + + i i i i i i i i i i i i i i i i i i i + i G + + G G G i/W G G G i G G G i G G G i/W G G G + i/W G + + G i/W G i/W G i/W G i/W G i/W G i/W G i/W G i/W G i/W + G i/W G + + G i/W G i/W G i/W G i/W G i/W G i/W G i/W G i/W G i/W + G i/W G + + p/G i/W G G G i/W G G G i/W G G G i/W G G G i/W G + G G + - > + . . . . . . . . . . . . . . . . G G G + G G + + . . . . . . . . . . . . . . . G G G G + G G + + . . . . . . . . . . . . . G G G G G G + G +/G + + . . . . . . . . . . . G G G G G G . . + . . + + . . . . . . . . . . G G G G G . . . . + . . + + . . . . . . . . . G G G G . . . . . . + . . + + . . . . . . . . G G G G . . . . . . . + . . + + . . . . . . . G G G G . . . . . . . . + . . + + . . . . . . G G G . . . . . . . . . . + . . + + . . . . G G G . . . . . . . . . . . . + . . + + . . . G G G G . . . . . . . . . . . . + . . + + . . . G G . . . . . . . . . . . . . . + . . + + . . . G . . . . . . . . . . . . . . . + . . + + . . G G . . . . . . . . . . . . . . . + . . + + . G G G . . . . . . . . . . . . . . . + . . + + G G G G G . . . . . . . . . . . . . . + . . + + G G G G G G . . . . . . . . . . . . . + . . + + . G G G G . . . . . . . . . . . . . . + . . + + . G G G G . . . . . . . . . . . . . . + . . + + . . . G . . . . . . . . . . . . . . . + . . + + . . . G . . . . . . . . . . . . . . . + . . + + . . . G G . . . . . . . . . . . . . . + . . + + . . . G G . . . . . . . . . . . . . . + . . + + . . . G G G . . . . . . . . . . . . . + . . + + . . . . G G G . . . . . . . . . . . . + . . + + . . . . . G G G . . . . . . . . . . . + . . + + . . . . . . . G G . . . . . . . . . . + . . + + . . . . . . . . G G G . . . . . . . . + . . + + . . . . . . . . . G G . . . . . . . . + . . + + . . . . . . . . . . G G G . . . . . . + . . + + . . . . . . . . . . . G G G . . . . . + . . + + . . . . . . . . . . . . . G G G . . . + . . + + . . . . . . . . . . . . . . . G G G . + . . + + . . . . . . . . . . . . . . . . . G p/G + . . + - > + W W W W W W W W W W W W W W W W S S G + G G G G + + W W W W W W W W W W W W W W W S S G G + G G G G + + W W W W W W W W W W W W W S S S G G G + G G G +/G + + W W W W W W W W W W W S S S G G G G G + S S S S + + W W W W W W W W W W S S S G G G G S S + S S S W + + W W W W W W W W W S S S G G G S S S S + W W W W + + W W W W W W W S S S S G G G S S S S W + W W W W + + W W W W W W S S S G G G S S S S S S W + W W W W + + W W W W W S S S G G G S S S S S W W W + W W W W + + W W W W S S S G G S S S S S W W W W W + W W W W + + W W W W S S G G G S S S S W W W W W W + W W W W + + W W W S S G G S S S S W W W W W W W W + W W W W + + W W W S S G S S S S S W W W W W W W W + W W W W + + W W S S G G S S S S S S W W W W W W W + W W W W + + W W S G G G S S S S S S W W W W W W W + W W W W + + W W S G G G G S S S S W W W W W W W W + W W W W + + W S S G G G G G S S S W W W W W W W W + W W W W + + W S S G G G G S S S S W W W W W W W W + W W W W + + W S S G G G G S S S S W W W W W W W W + W W W W + + W S S S S G S S S S S W W W W W W W W + W W W W + + W W S S S G S S S S S S W W W W W W W + W W W W + + W W W S S G G S S S S S W W W W W W W + W W W W + + W W W S S G G S S S S S S W W W W W W + W W W W + + W W W S S G G G S S S S S W W W W W W + W W W W + + W W W S S S G G G S S S S S W W W W W + W W W W + + W W W W S S S G G G S S S S S W W W W + W W W W + + W W W W W S S S S G G S S S S S W W W + W W W W + + W W W W W W S S S S G G S S S S S W W + W W W W + + W W W W W W W W S S S G G G S S S S W + W W W W + + W W W W W W W W W W S S G G G S S S S + S W W W + + W W W W W W W W W W W W S S G G S S S + S S W W + + W W W W W W W W W W W W W S S G G G S + S S S W + + W W W W W W W W W W W W W W W S S G G + G S S W + + W W W W W W W W W W W W W W W W W S S + G p/G S W + + W W W W W W W W W W W W W W W W W W S + S S S W + + W W W W W W W W W W W W W W W W W W S + S S S W + + W W W W W W W W W W W W W W W W W W W + W W W W + - > + W W W W W W W W W W W W W W W W S S + G G G G G + + W W W W W W W W W W W W W W W S S G + G G G G G + + W W W W W W W W W W W W W S S S G #/G + G G G G +/G + + W W W W W W W W W W W S S S G G G G + G S S S S + + W W W W W W W W W W S S S G G G G S + S S S S W + + W W W W W W W W W S S S G G G S S S + S W W W W + + W W W W W W W S S S S #/G G G S S S S + W W W W W + + W W W W W W S S S G G G S S S S S S + W W W W W + + W W W W W S S S G G G S S S S S W W + W W W W W + + W W W W S S S #/G G S S S S S W W W W + W W W W W + + W W W W S S G G G S S S S W W W W W + W W W W W + + W W W S S G G S S S S W W W W W W W + W W W W W + + W W W S S G S S S S S W W W W W W W + W W W W W + + W W S S G G S S S S S S W W W W W W + W W W W W + + W W S G #/G G S S S S S S W W W W W W + W W W W W + + W W S G G G G S S S S W W W W W W W + W W W W W + + W S S G G G G G S S S W W W W W W W + W W W W W + + W S S G G G G S S S S W W W W W W W + W W W W W + + W S S G #/G G G S S S S W W W W W W W + W W W W W + + W S S S S G S S S S S W W W W W W W + W W W W W + + W W S S S G S S S S S S W W W W W W + W W W W W + + W W W S S G #/G S S S S S W W W W W W + W W W W W + + W W W S S G G S S S S S S W W W W W + W W W W W + + W W W S S G G G S S S S S W W W W W + W W W W W + + W W W S S S G G G S S S S S W W W W + W W W W W + + W W W W S S S G #/G G S S S S S W W W + W W W W W + + W W W W W S S S S G G S S S S S W W + W W W W W + + W W W W W W S S S S G G S S S S S W + W W W W W + + W W W W W W W W S S S G G #/G S S S S + W W W W W + + W W W W W W W W W W S S G G G S S S + S S W W W + + W W W W W W W W W W W W S S G G S S + S S S W W + + W W W W W W W W W W W W W S S G G G + S S S S W + + W W W W W W W W W W W W W W W S S G + G G S S W + + W W W W W W W W W W W W W W W W W S + S G p/G S W + + W W W W W W W W W W W W W W W W W W + S S S S W + + W W W W W W W W W W W W W W W W W W + S S S S W + + W W W W W W W W W W W W W W W W W W + W W W W W + - > + W W W W W W W W W W W W W W W W S S + G G G G G + + W W W W W W W W W W W W W W W S S G + G G G G G + + W W W W W W W W W W W W W S S S G #/G + G G G G +/G + + W W W W W W W W W W W S S S G G G G + G S S S S + + W W W W W W W W W W S S S G #/G G G S + S S S S W + + W W W W W W W W W S S S G G G S S S + S W W W W + + W W W W W W W S S S S #/G G G S S S S + W W W W W + + W W W W W W S S S G G G S S S S #/S S + W W W W W + + W W W W W S S S G G G S S S S S W W + W W W W W + + W W W W S S S #/G G S S S S S W W W W + W W W W W + + W W W W S S G G G S #/S #/S S W W W W W + W W W W W + + W W W S S G G S S S S W W W W W W W + W W W W W + + W W W S S G S S #/S S S W W W W W W W + W W W W W + + W W S S G G S S S S S S W W W W W W + W W W W W + + W W S G #/G G S S S S S S W W W W W W + W W W W W + + W W S G G G G S S S S W W W W W W W + W W W W W + + W S S G G G G G S S S W W W W W W W + W W W W W + + W S S G G G G S S S S W W W W W W W + W W W W W + + W S S G #/G G G S #/S S S W W W W W W W + W W W W W + + W S S S S G S S S S S W W W W W W W + W W W W W + + W W S S S G S S S S S S W W W W W W + W W W W W + + W W W S S G #/G S S #/S S S W W W W W W + W W W W W + + W W W S S G G S S S S S S W W W W W + W W W W W + + W W W S S G G G S S S #/S S W W W W W + W W W W W + + W W W S S S G G G S S S S S W W W W + W W W W W + + W W W W S S S G #/G G S S S S S W W W + W W W W W + + W W W W W S S S S G G S #/S S S S W W + W W W W W + + W W W W W W S S S S G G S S S S S W + W W W W W + + W W W W W W W W S S S G G #/G S S S S + W W W W W + + W W W W W W W W W W S S G G G S S S + S S W W W + + W W W W W W W W W W W W S S G G S S + S S T W W + + W W W W W W W W W W W W W S S G G G + S S T s/S W + + W W W W W W W W W W W W W W W S S G + G G T s/S W + + W W W W W W W W W W W W W W W W W S + S G p/G s/S W + + W W W W W W W W W W W W W W W W W W + S S t/S s/S W + + W W W W W W W W W W W W W W W W W W + s/S s/S s/S s/S W + + W W W W W W W W W W W W W W W W W W + W W W W W + - > + W W W W W W W W W W W W W W W W S S G + G G G G + + W W W W W W W W W W W W W W W S L L L + G G s/G G + + W W W W W W W W W W W W W S S S L T L + G G s/G G + + W W W W W W W W W W W S S S G G L L L + S S S S + + W W W W W W s/W W W W S S S G G G G S S + S S S W + + W W W W W W W W W S S S G G G S S S S + W W W W + + W W W W W W W S S S S G G G S S S S W + W W W W + + W W W W W W S S S G T G S S S S S S W + W W W W + + W W W W W S S S G G G S S S S S W W W + W W W W + + W W W W S S S G G S S S S S W W W W W + W W W W + + W W W W S S G G G S S S S W W W W W W + W W W W + + W W W S S G G S S S S W W W W W W W W + W W W W + + W W W S S G S S S S S W W W W W W W W + W W W W + + W W S S G G S S S S S S W W W W W W W + W W W W + + W W S G G G S S S S L L L W W W W W W + W W W W + + W W S G G G G S S S S s/W L W W W W W W + W W W W + + W S S G G G G G S S L L L W W W W W W + W W W W + + W S S G G G G S S S S W W W W W W W W + W W W W + + W S S G G T G S S S S W W W W W W W W + W W W W + + W S S S S G S S S S S W W W W W W W W + W W W W + + W W S S S G S S S S S S W W W W W W W + W W W W + + W W W S S G G S S S S S W W W W W W W + W W W W + + W W W S S G G S S S S S S W W W W W W + W W W W + + W L L L S G G G S S S S S W W W W W W + W W W W + + s/W L c/W S S S G G G S S S S S W W W W W + W W W W + + W L L L S S S G G T S S S S S W W W W + W W W W + + W W W W W S S S S G G S S S S S W W W + W W W W + + W W W W W W S S S S G G S S S S S W W + W W W W + + W W W W W W W W S S S G G G S S S S W + W W W W + + W W W W W W W W W W S S G G G S S S S + i/S W W W + + W W W W W W W W W W W W S S G G S S S + S S W W + + W W W W W W W W W W W W W S S G T G S + S S S W + + W W W W W W W W W W W W W W W S S G G + G S S W + + W W W W W W W W W W W W W W W W W S S + G p/G S W + + W W W W W W W W W W W W W W W W W W S + d/S d/S d/S W + + W W W W W W W W W W W W W W W W W W S + d/S +/S d/P W + + W W W W W W W W W W W W W W W W W W W + d/P d/P d/P W + - | + . W p/G W + . W G W + . W G W + . W G W + . W G W + . W G W + . W G W + . W G W + . W G W + . W G W + . W G W + . W G W + . W G W + . W G W + W W G W + W G G W + W G W W + W G W . + W G W . + W G W . + W G W . + W G W . + W G W . + W G W . + W G W . + W +/G W . + - | + . L p/G W + . L G W + . L G W + . L G W + . L G W + . L G W + . L G W + . L G W + . L G W + . L G W + . L G W + . L G W + . L G W + . L G W + L L G W + L G G W + L G W W + L G W . + L G W . + L G W . + L G W . + L G W . + L G W . + L G W . + L G W . + L +/G W . + - | + . W p/G L + . W G L + . W G L + . W G L + . W G L + . W G L + . W G L + . W G L + . W G L + . W G L + . W G L + . W G L + . W G L + . W G L + W W G L + W G G L + W G L L + W G L . + W G L . + W G L . + W G L . + W G L . + W G L . + W G L . + W G L . + W +/G L . + - | + . L p/G L + . L G L + . L G L + . L G L + . L G L + . L G L + . L G L + . L G L + . L G L + . L G L + . L G L + . L G L + . L G L + . L G L + L L G L + L G G L + L G L L + L G L . + L G L . + L G L . + L G L . + L G L . + L G L . + L G L . + L G L . + L +/G L . + - | + . p/G . . . G G G . . . . G d/G G . . . . + . G . . G . . . G . . G . W . G . . . + . G . . G . . . G W W G L L . G . . . + W G L L G . . . G . . G . L . G . . . + . G . . G . . . G . . G . W . G . . . + . G . . G . . . G . . G . L . G . . . + d G . . G . W . G . . G . L . G . . . + . G . W G L L . G . . G . W . G . . . + . G . . d/G . L . G . . G . W . G . . W + t G T . G W L L G . . G . G G G W W L + T G T . G . . . G . . G . . . G . . L + . s/G . . . G G G . . . . G d/G G . . . +/G +Actions: + - Name: init_player + InputMapping: + Internal: true + Inputs: + '1': + VectorToDest: + - 0 + - 0 + Behaviours: + - Src: + Object: player + Dst: + Object: player + Commands: + - incr: player_count + - Name: update_player_stats + InputMapping: + Internal: true + Inputs: + '1': + VectorToDest: + - 0 + - 0 + Behaviours: + - Src: + Object: player + Dst: + Object: player + Commands: + - exec: + Action: update_player_stats + ActionId: 1 + Delay: 1 + - Src: + Object: player + Dst: + Object: player + Commands: + - if: + Conditions: + eq: + - is_sleeping + - 1 + OnTrue: + - sub: + - fatigue + - 1 + OnFalse: + - add: + - fatigue + - 1 + - if: + Conditions: + lt: + - fatigue + - -10 + OnTrue: + - set: + - fatigue + - 0 + - add: + - inv_energy + - 1 + - if: + Conditions: + gte: + - inv_energy + - 9 + OnTrue: + - set: + - is_sleeping + - 0 + - if: + Conditions: + lt: + - ach_wake_up + - 1 + OnTrue: + - set: + - ach_wake_up + - 1 + - reward: 1 + - set_tile: 0 + - if: + Conditions: + and: + - gt: + - inv_energy + - 0 + - gt: + - fatigue + - 30 + OnTrue: + - set: + - fatigue + - 0 + - sub: + - inv_energy + - 1 + - Src: + Object: player + Dst: + Object: player + Commands: + - if: + Conditions: + eq: + - is_sleeping + - 1 + OnTrue: + - add: + - hunger + - 1 + OnFalse: + - add: + - hunger + - 2 + - if: + Conditions: + and: + - gt: + - inv_food + - 0 + - gt: + - hunger + - 50 + OnTrue: + - set: + - hunger + - 0 + - sub: + - inv_food + - 1 + - Src: + Object: player + Dst: + Object: player + Commands: + - if: + Conditions: + eq: + - is_sleeping + - 1 + OnTrue: + - add: + - thirst + - 1 + OnFalse: + - add: + - thirst + - 2 + - if: + Conditions: + and: + - gt: + - inv_drink + - 0 + - gt: + - thirst + - 30 + OnTrue: + - set: + - thirst + - 0 + - sub: + - inv_drink + - 1 + - Src: + Object: player + Dst: + Object: player + Commands: + - if: + Conditions: + and: + - gt: + - inv_food + - 0 + - gt: + - inv_drink + - 0 + - or: + - gt: + - inv_energy + - 0 + - eq: + - is_sleeping + - 1 + OnTrue: + - if: + Conditions: + eq: + - is_sleeping + - 1 + OnTrue: + - add: + - recover + - 4 + OnFalse: + - add: + - recover + - 2 + OnFalse: + - if: + Conditions: + eq: + - is_sleeping + - 1 + OnTrue: + - sub: + - recover + - 1 + OnFalse: + - sub: + - recover + - 2 + - if: + Conditions: + gt: + - recover + - 50 + OnTrue: + - set: + - recover + - 0 + - if: + Conditions: + lt: + - health + - 9 + OnTrue: + - add: + - health + - 1 + - if: + Conditions: + lt: + - recover + - -30 + OnTrue: + - set: + - recover + - 0 + - sub: + - health + - 1 + - if: + Conditions: + lte: + - health + - 0 + OnTrue: + - set: + - player_done + - 1 + - decr: player_count + - remove: true + - Name: move + InputMapping: + Inputs: + '1': + OrientationVector: + - -1 + - 0 + VectorToDest: + - -1 + - 0 + Description: Move Left + MetaData: + image_idx: 1 + '2': + OrientationVector: + - 0 + - -1 + VectorToDest: + - 0 + - -1 + Description: Move Up + MetaData: + image_idx: 2 + '3': + OrientationVector: + - 1 + - 0 + VectorToDest: + - 1 + - 0 + Description: Move Right + MetaData: + image_idx: 3 + '4': + OrientationVector: + - 0 + - 1 + VectorToDest: + - 0 + - 1 + Description: Move Down + MetaData: + image_idx: 4 + Behaviours: + - Src: + Object: player + Preconditions: + eq: + - is_sleeping + - 0 + Commands: + - set: + - health + - 0 + - remove: true + - set: + - player_done + - 1 + - decr: player_count + Dst: + Object: + - lava + - Src: + Object: player + Preconditions: + eq: + - is_sleeping + - 0 + Commands: + - mov: _dest + - rot: _dir + - set_tile: meta.image_idx + Dst: + Object: + - grass + - path + - sand + - Src: + Object: player + Preconditions: + eq: + - is_sleeping + - 0 + Commands: + - rot: _dir + - set_tile: meta.image_idx + Dst: + Object: + - cow + - water + - stone + - plant + - tree + - player + - zombie + - skeleton + - coal + - lava + - iron + - diamond + - table + - furnace + - Name: do + InputMapping: + Relative: true + Inputs: + '1': + VectorToDest: + - 0 + - -1 + Description: Interact with an object + Behaviours: + - Src: + Preconditions: + - and: + - eq: + - is_sleeping + - 0 + - eq: + - dst.ripe + - 1 + Object: player + Commands: + - add: + - inv_food + - 4 + - if: + Conditions: + lt: + - ach_eat_plant + - 1 + OnTrue: + - set: + - ach_eat_plant + - 1 + - reward: 10 + - if: + Conditions: + gt: + - inv_food + - 9 + OnTrue: + - set: + - inv_food + - 9 + Dst: + Object: plant + Commands: + - set: + - ripe + - 0 + - set_tile: 0 + - Src: + Object: player + Preconditions: + eq: + - is_sleeping + - 0 + Commands: + - add: + - inv_fence + - 1 + Dst: + Object: fence + Commands: + - remove: true + - Src: + Object: player + Preconditions: + eq: + - is_sleeping + - 0 + Dst: + Object: zombie + Commands: + - sub: + - dst.health + - src.damage + - if: + Conditions: + lte: + - dst.health + - 0 + OnTrue: + - remove: true + - if: + Conditions: + lt: + - src.ach_defeat_zombie + - 1 + OnTrue: + - set: + - src.ach_defeat_zombie + - 1 + - reward: 1 + - Src: + Object: player + Preconditions: + eq: + - is_sleeping + - 0 + Dst: + Object: skeleton + Commands: + - sub: + - dst.health + - src.damage + - if: + Conditions: + lte: + - dst.health + - 0 + OnTrue: + - remove: true + - if: + Conditions: + lt: + - src.ach_defeat_skeleton + - 1 + OnTrue: + - set: + - src.ach_defeat_skeleton + - 1 + - reward: 1 + - Src: + Object: player + Preconditions: + eq: + - is_sleeping + - 0 + Dst: + Object: cow + Commands: + - sub: + - dst.health + - src.damage + - if: + Conditions: + lte: + - dst.health + - 0 + OnTrue: + - remove: true + - add: + - src.inv_food + - 6 + - if: + Conditions: + gt: + - src.inv_food + - 9 + OnTrue: + - set: + - src.inv_food + - 9 + - if: + Conditions: + lt: + - src.ach_eat_cow + - 1 + OnTrue: + - set: + - src.ach_eat_cow + - 1 + - reward: 1 + - Src: + Object: player + Preconditions: + eq: + - is_sleeping + - 0 + Dst: + Object: player + Commands: + - sub: + - dst.health + - src.damage + - if: + Conditions: + lte: + - dst.health + - 0 + OnTrue: + - set: + - dst.player_done + - 1 + - decr: player_count + - remove: true + - add: + - src.inv_food + - dst.inv_food + - add: + - src.inv_drink + - dst.inv_drink + - add: + - src.inv_wood + - dst.inv_wood + - add: + - src.inv_coal + - dst.inv_coal + - add: + - src.inv_iron + - dst.inv_iron + - if: + Conditions: + gt: + - src.inv_food + - 9 + OnTrue: + - set: + - src.inv_food + - 9 + - if: + Conditions: + gt: + - src.inv_drink + - 9 + OnTrue: + - set: + - src.inv_drink + - 9 + - if: + Conditions: + gt: + - src.inv_wood + - 9 + OnTrue: + - set: + - src.inv_wood + - 9 + - if: + Conditions: + gt: + - src.inv_coal + - 9 + OnTrue: + - set: + - src.inv_coal + - 9 + - if: + Conditions: + gt: + - src.inv_iron + - 9 + OnTrue: + - set: + - src.inv_iron + - 9 + - if: + Conditions: + lt: + - src.ach_defeat_player + - 1 + OnTrue: + - set: + - src.ach_defeat_player + - 1 + - reward: 1 + - Src: + Object: player + Preconditions: + - and: + - eq: + - is_sleeping + - 0 + - lt: + - inv_wood + - 9 + Commands: + - add: + - inv_wood + - 1 + - if: + Conditions: + lt: + - ach_collect_wood + - 1 + OnTrue: + - set: + - ach_collect_wood + - 1 + - reward: 1 + Dst: + Object: tree + Commands: + - remove: true + - spawn: grass + - Src: + Object: player + Preconditions: + - and: + - eq: + - is_sleeping + - 0 + - eq: + - inv_wood_pickaxe + - 1 + - lt: + - inv_stone + - 9 + Commands: + - add: + - inv_stone + - 1 + - if: + Conditions: + lt: + - ach_collect_stone + - 1 + OnTrue: + - set: + - ach_collect_stone + - 1 + - reward: 1 + Dst: + Object: stone + Commands: + - remove: true + - spawn: path + - Src: + Object: player + Preconditions: + - and: + - eq: + - is_sleeping + - 0 + - eq: + - inv_wood_pickaxe + - 1 + - lt: + - inv_coal + - 9 + Commands: + - add: + - inv_coal + - 1 + - if: + Conditions: + lt: + - ach_collect_coal + - 1 + OnTrue: + - set: + - ach_collect_coal + - 1 + - reward: 1 + Dst: + Object: coal + Commands: + - remove: true + - spawn: path + - Src: + Object: player + Preconditions: + - and: + - eq: + - is_sleeping + - 0 + - eq: + - inv_stone_pickaxe + - 1 + - lt: + - inv_iron + - 9 + Commands: + - add: + - inv_iron + - 1 + - if: + Conditions: + lt: + - ach_collect_iron + - 1 + OnTrue: + - set: + - ach_collect_iron + - 1 + - reward: 1 + Dst: + Object: iron + Commands: + - remove: true + - spawn: path + - Src: + Object: player + Preconditions: + - and: + - eq: + - is_sleeping + - 0 + - eq: + - inv_iron_pickaxe + - 1 + - lt: + - inv_diamond + - 9 + Commands: + - add: + - inv_diamond + - 1 + - if: + Conditions: + lt: + - ach_collect_diamond + - 1 + OnTrue: + - set: + - ach_collect_diamond + - 1 + - reward: 1 + Dst: + Object: diamond + Commands: + - remove: true + - spawn: path + - Src: + Object: player + Preconditions: + - and: + - eq: + - is_sleeping + - 0 + - lt: + - inv_drink + - 9 + Commands: + - add: + - inv_drink + - 1 + - if: + Conditions: + lt: + - ach_collect_drink + - 1 + OnTrue: + - set: + - ach_collect_drink + - 1 + - reward: 1 + Dst: + Object: water + - Name: place + InputMapping: + Relative: true + Inputs: + '1': + VectorToDest: + - 0 + - -1 + Description: Place a stone + MetaData: + action_id: 1 + '2': + VectorToDest: + - 0 + - -1 + Description: Place a table + MetaData: + action_id: 2 + '3': + VectorToDest: + - 0 + - -1 + Description: Place a furnace + MetaData: + action_id: 3 + Behaviours: + - Src: + Object: player + Preconditions: + - and: + - eq: + - is_sleeping + - 0 + - eq: + - meta.action_id + - 1 + - gte: + - inv_stone + - 1 + Commands: + - sub: + - inv_stone + - 1 + - if: + Conditions: + lt: + - ach_place_stone + - 1 + OnTrue: + - set: + - ach_place_stone + - 1 + - reward: 1 + Dst: + Object: + - grass + - sand + - path + - water + - lava + Commands: + - remove: true + - spawn: stone + - Src: + Object: player + Preconditions: + - and: + - eq: + - is_sleeping + - 0 + - eq: + - meta.action_id + - 2 + - gte: + - inv_wood + - 2 + Commands: + - sub: + - inv_wood + - 2 + - if: + Conditions: + lt: + - ach_place_table + - 1 + OnTrue: + - set: + - ach_place_table + - 1 + - reward: 1 + Dst: + Object: + - grass + - sand + - path + Commands: + - spawn: table + - Src: + Object: player + Preconditions: + - and: + - eq: + - is_sleeping + - 0 + - eq: + - meta.action_id + - 3 + - gte: + - inv_stone + - 4 + Commands: + - sub: + - inv_stone + - 4 + - if: + Conditions: + lt: + - ach_place_furnace + - 1 + OnTrue: + - set: + - ach_place_furnace + - 1 + - reward: 1 + Dst: + Object: + - grass + - sand + - path + Commands: + - spawn: furnace + - Name: make + InputMapping: + Relative: true + Inputs: + '1': + VectorToDest: + - 0 + - 0 + Description: Make a wood pickaxe + MetaData: + action_id: 1 + '2': + VectorToDest: + - 0 + - 0 + Description: Make a stone pickaxe + MetaData: + action_id: 2 + '3': + VectorToDest: + - 0 + - 0 + Description: Make an iron pickaxe + MetaData: + action_id: 3 + Behaviours: + - Src: + Object: player + Preconditions: + - and: + - eq: + - is_sleeping + - 0 + - eq: + - meta.action_id + - 1 + - gte: + - inv_wood + - 1 + - lt: + - inv_wood_pickaxe + - 1 + - eq: + - near_table + - 1 + Commands: + - decr: inv_wood + - if: + Conditions: + lt: + - ach_make_wood_pickaxe + - 1 + OnTrue: + - set: + - ach_make_wood_pickaxe + - 1 + - reward: 1 + Dst: + Object: player + Commands: + - set: + - inv_wood_pickaxe + - 1 + - Src: + Object: player + Preconditions: + - and: + - eq: + - is_sleeping + - 0 + - eq: + - meta.action_id + - 2 + - gte: + - inv_wood + - 1 + - gte: + - inv_stone + - 1 + - eq: + - near_table + - 1 + - lt: + - inv_stone_pickaxe + - 1 + Commands: + - decr: inv_stone + - decr: inv_wood + - if: + Conditions: + lt: + - ach_make_stone_pickaxe + - 1 + OnTrue: + - set: + - ach_make_stone_pickaxe + - 1 + - reward: 1 + Dst: + Object: player + Commands: + - set: + - inv_stone_pickaxe + - 1 + - Src: + Object: player + Preconditions: + - and: + - eq: + - is_sleeping + - 0 + - eq: + - meta.action_id + - 3 + - gte: + - inv_wood + - 1 + - gte: + - inv_iron + - 1 + - gte: + - inv_coal + - 1 + - eq: + - near_furnace + - 1 + - eq: + - near_table + - 1 + - lt: + - inv_iron_pickaxe + - 1 + Commands: + - decr: inv_coal + - decr: inv_wood + - decr: inv_iron + - if: + Conditions: + lt: + - ach_make_iron_pickaxe + - 1 + OnTrue: + - set: + - ach_make_iron_pickaxe + - 1 + - reward: 1 + Dst: + Object: player + Commands: + - set: + - inv_iron_pickaxe + - 1 + - Name: near_table_on + Trigger: + Type: RANGE_BOX_AREA + Range: 1 + Behaviours: + - Src: + Object: table + Dst: + Object: player + Commands: + - set: + - near_table + - 1 + - Name: near_table_off + Trigger: + Type: RANGE_BOX_BOUNDARY + Range: 2 + Behaviours: + - Src: + Object: table + Dst: + Object: player + Commands: + - set: + - near_table + - 0 + - Name: near_furnace_on + Trigger: + Type: RANGE_BOX_AREA + Range: 1 + Behaviours: + - Src: + Object: furnace + Dst: + Object: player + Commands: + - set: + - near_furnace + - 1 + - Name: near_furnace_off + Trigger: + Type: RANGE_BOX_BOUNDARY + Range: 2 + Behaviours: + - Src: + Object: furnace + Dst: + Object: player + Commands: + - set: + - near_furnace + - 0 + - Name: act_attack_cooldown + InputMapping: + Inputs: + '1': + VectorToDest: + - 0 + - 0 + Internal: true + Behaviours: + - Src: + Object: zombie + Commands: + - set: + - attack_cooldown + - 0 + Dst: + Object: zombie + - Name: skeleton_random_movement + InputMapping: + Inputs: + '1': + OrientationVector: + - 0 + - -1 + VectorToDest: + - 0 + - -1 + '2': + OrientationVector: + - 1 + - 0 + VectorToDest: + - 1 + - 0 + '3': + OrientationVector: + - 0 + - 1 + VectorToDest: + - 0 + - 1 + '4': + OrientationVector: + - -1 + - 0 + VectorToDest: + - -1 + - 0 + Internal: true + Behaviours: + - Src: + Object: skeleton + Preconditions: + - eq: + - is_chasing + - 0 + Commands: + - mov: _dest + - rot: _dir + - exec: + Action: skeleton_random_movement + Delay: 3 + Randomize: true + Dst: + Object: + - path + - Src: + Object: skeleton + Preconditions: + - eq: + - is_chasing + - 0 + Commands: + - exec: + Action: skeleton_random_movement + Delay: 3 + Randomize: true + Dst: + Object: + - _boundary + - _empty + - grass + - sand + - cow + - water + - stone + - plant + - tree + - player + - zombie + - skeleton + - coal + - lava + - iron + - diamond + - table + - furnace + - Name: skeleton_chase_player + InputMapping: + Inputs: + '1': + OrientationVector: + - 0 + - -1 + VectorToDest: + - 0 + - -1 + '2': + OrientationVector: + - 1 + - 0 + VectorToDest: + - 1 + - 0 + '3': + OrientationVector: + - 0 + - 1 + VectorToDest: + - 0 + - 1 + '4': + OrientationVector: + - -1 + - 0 + VectorToDest: + - -1 + - 0 + Internal: true + Behaviours: + - Src: + Object: skeleton + Commands: + - set: + - src.chase_cooldown + - 0 + - mov: _dest + - rot: _dir + Dst: + Object: path + - Src: + Object: skeleton + Commands: + - set: + - src.chase_cooldown + - 0 + Dst: + Object: + - _boundary + - cow + - player + - arrow + - water + - grass + - sand + - stone + - plant + - skeleton + - zombie + - coal + - lava + - iron + - diamond + - table + - furnace + - Name: skeleton_chase_proximity_trigger_off + Trigger: + Range: 9 + Type: RANGE_BOX_BOUNDARY + InputMapping: + Internal: true + Behaviours: + - Src: + Object: skeleton + Preconditions: + - eq: + - src.is_chasing + - 1 + Commands: + - set: + - src.is_chasing + - 0 + - exec: + Action: skeleton_random_movement + Delay: 3 + Randomize: true + Dst: + Object: player + - Name: skeleton_chase_proximity_trigger_on + Trigger: + Range: 8 + Type: RANGE_BOX_AREA + InputMapping: + Internal: true + Probability: 0.3 + Behaviours: + - Src: + Preconditions: + - eq: + - src.chase_cooldown + - 0 + Object: skeleton + Commands: + - set: + - src.is_chasing + - 1 + - set: + - src.chase_cooldown + - 1 + - exec: + Action: skeleton_chase_player + Delay: 3 + Search: + ImpassableObjects: + - water + - cow + - stone + - tree + - zombie + - skeleton + - plant + - coal + - lava + - iron + - diamond + - table + - furnace + TargetObjectName: player + Dst: + Object: player + - Name: arrow_projectile + InputMapping: + Internal: true + Behaviours: + - Src: + Object: arrow + Commands: + - mov: _dest + - exec: + Action: arrow_projectile + Delay: 1 + Dst: + Object: + - water + - path + - grass + - sand + - lava + - Src: + Object: arrow + Commands: + - remove: true + Dst: + Object: + - _boundary + - _empty + - arrow + - tree + - stone + - plant + - coal + - iron + - diamond + - Src: + Object: arrow + Commands: + - remove: true + Dst: + Object: + - cow + - zombie + - skeleton + Commands: + - sub: + - health + - 2 + - if: + Conditions: + lte: + - health + - 0 + OnTrue: + - remove: true + - Src: + Object: arrow + Commands: + - remove: true + Dst: + Object: player + Commands: + - sub: + - health + - 2 + - if: + Conditions: + lte: + - health + - 0 + OnTrue: + - set: + - dst.player_done + - 1 + - decr: player_count + - remove: true + - Src: + Object: arrow + Commands: + - remove: true + Dst: + Object: + - table + - furnace + Commands: + - remove: true + - Name: set_arrow_direction + InputMapping: + Internal: true + Inputs: + '1': + VectorToDest: + - 0 + - 0 + Behaviours: + - Src: + Object: arrow + Commands: + - set_tile: meta.image_idx + Dst: + Object: + - water + - path + - grass + - sand + - arrow + - lava + - Name: fire_arrow + InputMapping: + Inputs: + '1': + OrientationVector: + - 0 + - -1 + VectorToDest: + - 0 + - -1 + MetaData: + image_idx: 0 + '2': + OrientationVector: + - 1 + - 0 + VectorToDest: + - 1 + - 0 + MetaData: + image_idx: 1 + '3': + OrientationVector: + - 0 + - 1 + VectorToDest: + - 0 + - 1 + MetaData: + image_idx: 2 + '4': + OrientationVector: + - -1 + - 0 + VectorToDest: + - -1 + - 0 + MetaData: + image_idx: 3 + Internal: true + Behaviours: + - Src: + Object: skeleton + Dst: + Object: + - water + - path + - grass + - sand + - lava + Commands: + - spawn: arrow + - Name: reload_arrow + InputMapping: + Inputs: + '1': + VectorToDest: + - 0 + - 0 + Internal: true + Behaviours: + - Src: + Object: skeleton + Commands: + - set: + - src.reload_cooldown + - 0 + Dst: + Object: skeleton + - Name: skeleton_fire_proximity_trigger + Probability: 0.5 + Trigger: + Range: 5 + Type: RANGE_BOX_AREA + InputMapping: + Internal: true + Behaviours: + - Src: + Preconditions: + - eq: + - src.reload_cooldown + - 0 + Object: skeleton + Commands: + - set: + - src.reload_cooldown + - 1 + - exec: + Action: reload_arrow + Delay: 4 + ActionId: 1 + - if: + Conditions: + eq: + - src._dx + - 1 + OnTrue: + - exec: + Action: fire_arrow + Delay: 1 + ActionId: 2 + - if: + Conditions: + eq: + - src._dx + - -1 + OnTrue: + - exec: + Action: fire_arrow + Delay: 1 + ActionId: 4 + - if: + Conditions: + eq: + - src._dy + - 1 + OnTrue: + - exec: + Action: fire_arrow + Delay: 1 + ActionId: 3 + - if: + Conditions: + eq: + - src._dy + - -1 + OnTrue: + - exec: + Action: fire_arrow + Delay: 1 + ActionId: 1 + Dst: + Object: player + - Name: zombie_random_movement + InputMapping: + Internal: true + Behaviours: + - Src: + Object: zombie + Preconditions: + - eq: + - src.is_chasing + - 0 + Commands: + - mov: _dest + - exec: + Action: zombie_random_movement + Delay: 3 + Randomize: true + Dst: + Object: + - grass + - path + - sand + - Src: + Object: zombie + Preconditions: + - eq: + - src.is_chasing + - 0 + Commands: + - exec: + Action: zombie_random_movement + Delay: 3 + Randomize: true + Dst: + Object: + - _boundary + - _empty + - cow + - water + - tree + - stone + - plant + - player + - zombie + - skeleton + - coal + - lava + - iron + - diamond + - table + - furnace + - Name: zombie_chase_player + InputMapping: + Internal: true + Behaviours: + - Src: + Object: zombie + Commands: + - set: + - src.chase_cooldown + - 0 + - mov: _dest + Dst: + Object: + - grass + - path + - sand + - Src: + Object: zombie + Commands: + - set: + - src.chase_cooldown + - 0 + Dst: + Object: + - _boundary + - cow + - water + - stone + - plant + - zombie + - skeleton + - coal + - lava + - iron + - diamond + - table + - furnace + - Src: + Object: zombie + Commands: + - set: + - src.chase_cooldown + - 0 + - if: + Conditions: + eq: + - src.attack_cooldown + - 0 + OnTrue: + - set: + - src.attack_cooldown + - 1 + - exec: + Action: act_attack_cooldown + Delay: 5 + ActionId: 1 + Dst: + Object: player + Commands: + - if: + Conditions: + eq: + - src.attack_cooldown + - 0 + OnTrue: + - if: + Conditions: + eq: + - is_sleeping + - 1 + OnTrue: + - sub: + - health + - 7 + OnFalse: + - sub: + - health + - 2 + - if: + Conditions: + lte: + - health + - 0 + OnTrue: + - set: + - dst.player_done + - 1 + - decr: player_count + - remove: true + - Name: zombie_chase_proximity_trigger_off + Trigger: + Range: 9 + Type: RANGE_BOX_BOUNDARY + InputMapping: + Internal: true + Behaviours: + - Src: + Object: zombie + Preconditions: + - eq: + - src.is_chasing + - 1 + Commands: + - set: + - src.is_chasing + - 0 + - exec: + Action: zombie_random_movement + Delay: 3 + Randomize: true + Dst: + Object: player + - Name: zombie_chase_proximity_trigger_on + Trigger: + Range: 8 + Type: RANGE_BOX_AREA + InputMapping: + Internal: true + Probability: 0.9 + Behaviours: + - Src: + Preconditions: + - eq: + - src.chase_cooldown + - 0 + Object: zombie + Commands: + - set: + - src.is_chasing + - 1 + - set: + - src.chase_cooldown + - 1 + - exec: + Action: zombie_chase_player + Delay: 2 + Search: + ImpassableObjects: + - water + - cow + - stone + - tree + - zombie + - skeleton + - plant + - coal + - lava + - iron + - diamond + - table + - furnace + TargetObjectName: player + Dst: + Object: player + - Name: cow_random_movement + InputMapping: + Inputs: + '1': + OrientationVector: + - 1 + - 0 + VectorToDest: + - 1 + - 0 + MetaData: + change_image: 1 + image_idx: 1 + '2': + OrientationVector: + - 0 + - -1 + VectorToDest: + - 0 + - -1 + MetaData: + change_image: 0 + '3': + OrientationVector: + - -1 + - 0 + VectorToDest: + - -1 + - 0 + MetaData: + change_image: 1 + image_idx: 0 + '4': + OrientationVector: + - 0 + - 1 + VectorToDest: + - 0 + - 1 + MetaData: + change_image: 0 + Internal: true + Behaviours: + - Src: + Object: cow + Commands: + - mov: _dest + - exec: + Action: cow_random_movement + Delay: 1 + Randomize: true + - eq: + Arguments: + - meta.change_image + - 1 + Commands: + - set_tile: meta.image_idx + Dst: + Object: + - grass + - path + - sand + - Src: + Object: cow + Commands: + - exec: + Action: cow_random_movement + Delay: 5 + Randomize: true + Dst: + Object: + - _boundary + - _empty + - cow + - water + - stone + - tree + - plant + - player + - zombie + - skeleton + - coal + - lava + - iron + - diamond + - table + - furnace +Objects: + - Name: player + MapCharacter: p + InitialActions: + - Action: init_player + ActionId: 1 + Z: 2 + Observers: + GlobalSprite2D: + - Image: sprite2d/player.png + - Image: sprite2d/player-left.png + - Image: sprite2d/player-up.png + - Image: sprite2d/player-right.png + - Image: sprite2d/player-down.png + - Image: sprite2d/player-sleep.png + PlayerSprite2D: + - Image: sprite2d/player.png + - Image: sprite2d/player-left.png + - Image: sprite2d/player-up.png + - Image: sprite2d/player-right.png + - Image: sprite2d/player-down.png + - Image: sprite2d/player-sleep.png + - Name: water + MapCharacter: W + Z: 1 + Observers: + GlobalSprite2D: + - Image: sprite2d/water.png + PlayerSprite2D: + - Image: sprite2d/water.png + - Name: grass + MapCharacter: G + Z: 1 + Observers: + GlobalSprite2D: + - Image: sprite2d/grass.png + PlayerSprite2D: + - Image: sprite2d/grass.png + - Name: stone + MapCharacter: s + Z: 2 + Observers: + GlobalSprite2D: + - Image: sprite2d/stone.png + PlayerSprite2D: + - Image: sprite2d/stone.png + - Name: path + Z: 1 + MapCharacter: P + Observers: + GlobalSprite2D: + - Image: sprite2d/path.png + PlayerSprite2D: + - Image: sprite2d/path.png + - Name: sand + Z: 1 + MapCharacter: S + Observers: + GlobalSprite2D: + - Image: sprite2d/sand.png + PlayerSprite2D: + - Image: sprite2d/sand.png + - Name: tree + Z: 1 + MapCharacter: T + Observers: + GlobalSprite2D: + - Image: sprite2d/tree.png + PlayerSprite2D: + - Image: sprite2d/tree.png + - Name: plant + MapCharacter: + + Z: 2 + Variables: + - Name: ripe + InitialValue: 1 + Observers: + GlobalSprite2D: + - Image: sprite2d/plant-ripe.png + - Image: sprite2d/plant.png + PlayerSprite2D: + - Image: sprite2d/plant-ripe.png + - Image: sprite2d/plant.png + - Name: lava + MapCharacter: L + Z: 1 + Observers: + GlobalSprite2D: + - Image: sprite2d/lava.png + PlayerSprite2D: + - Image: sprite2d/lava.png + - Name: coal + MapCharacter: c + Z: 2 + Observers: + GlobalSprite2D: + - Image: sprite2d/coal.png + PlayerSprite2D: + - Image: sprite2d/coal.png + - Name: iron + MapCharacter: i + Z: 2 + Observers: + GlobalSprite2D: + - Image: sprite2d/iron.png + PlayerSprite2D: + - Image: sprite2d/iron.png + - Name: diamond + MapCharacter: d + Z: 2 + Observers: + GlobalSprite2D: + - Image: sprite2d/diamond.png + PlayerSprite2D: + - Image: sprite2d/diamond.png + - Name: table + MapCharacter: t + Z: 2 + Observers: + GlobalSprite2D: + - Image: sprite2d/table.png + PlayerSprite2D: + - Image: sprite2d/table.png + - Name: furnace + MapCharacter: f + Z: 2 + Observers: + GlobalSprite2D: + - Image: sprite2d/furnace.png + PlayerSprite2D: + - Image: sprite2d/furnace.png + - Name: fence + MapCharacter: '}' + Z: 2 + Observers: + GlobalSprite2D: + - Image: sprite2d/fence.png + PlayerSprite2D: + - Image: sprite2d/fence.png + - Name: arrow + Z: 2 + MapCharacter: a + InitialActions: + - Action: arrow_projectile + Delay: 1 + - Action: set_arrow_direction + ActionId: 1 + Observers: + GlobalSprite2D: + - Image: sprite2d/arrow-up.png + - Image: sprite2d/arrow-right.png + - Image: sprite2d/arrow-down.png + - Image: sprite2d/arrow-left.png + PlayerSprite2D: + - Image: sprite2d/arrow-up.png + - Image: sprite2d/arrow-right.png + - Image: sprite2d/arrow-down.png + - Image: sprite2d/arrow-left.png + - Name: zombie + Z: 2 + InitialActions: + - Action: zombie_random_movement + Randomize: true + Variables: + - Name: health + InitialValue: 5 + - Name: is_chasing + InitialValue: 0 + - Name: chase_cooldown + InitialValue: 0 + - Name: attack_cooldown + InitialValue: 0 + MapCharacter: '!' + Observers: + GlobalSprite2D: + - Image: sprite2d/zombie.png + PlayerSprite2D: + - Image: sprite2d/zombie.png + - Name: skeleton + Z: 2 + MapCharacter: '@' + InitialActions: + - Action: skeleton_random_movement + Randomize: true + Variables: + - Name: health + InitialValue: 3 + - Name: is_chasing + InitialValue: 0 + - Name: chase_cooldown + InitialValue: 0 + - Name: reload_cooldown + InitialValue: 0 + Observers: + GlobalSprite2D: + - Image: sprite2d/skeleton.png + PlayerSprite2D: + - Image: sprite2d/skeleton.png + - Name: cow + InitialActions: + - Action: cow_random_movement + Randomize: true + Variables: + - Name: health + InitialValue: 3 + Z: 2 + MapCharacter: '#' + Observers: + GlobalSprite2D: + - Image: sprite2d/cow-left.png + - Image: sprite2d/cow-right.png + PlayerSprite2D: + - Image: sprite2d/cow-left.png + - Image: sprite2d/cow-right.png + - Name: health + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/health.png + PlayerSprite2D: + - Image: sprite2d/health.png + - Name: food + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/food.png + PlayerSprite2D: + - Image: sprite2d/food.png + - Name: drink + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/drink.png + PlayerSprite2D: + - Image: sprite2d/drink.png + - Name: energy + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/energy.png + PlayerSprite2D: + - Image: sprite2d/energy.png + - Name: '1' + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/1.png + PlayerSprite2D: + - Image: sprite2d/1.png + - Name: '2' + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/2.png + PlayerSprite2D: + - Image: sprite2d/2.png + - Name: '3' + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/3.png + PlayerSprite2D: + - Image: sprite2d/3.png + - Name: '4' + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/4.png + PlayerSprite2D: + - Image: sprite2d/4.png + - Name: '5' + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/5.png + PlayerSprite2D: + - Image: sprite2d/5.png + - Name: '6' + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/6.png + PlayerSprite2D: + - Image: sprite2d/6.png + - Name: '7' + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/7.png + PlayerSprite2D: + - Image: sprite2d/7.png + - Name: '8' + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/8.png + PlayerSprite2D: + - Image: sprite2d/8.png + - Name: '9' + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/9.png + PlayerSprite2D: + - Image: sprite2d/9.png + - Name: log + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/log.png + PlayerSprite2D: + - Image: sprite2d/log.png + - Name: wood_pickaxe + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/wood_pickaxe.png + PlayerSprite2D: + - Image: sprite2d/wood_pickaxe.png + - Name: stone_pickaxe + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/stone_pickaxe.png + PlayerSprite2D: + - Image: sprite2d/stone_pickaxe.png + - Name: iron_pickaxe + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/iron_pickaxe.png + PlayerSprite2D: + - Image: sprite2d/iron_pickaxe.png + - Name: wood_sword + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/wood_sword.png + PlayerSprite2D: + - Image: sprite2d/wood_sword.png + - Name: stone_sword + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/stone_sword.png + PlayerSprite2D: + - Image: sprite2d/stone_sword.png + - Name: iron_sword + Internal: true + Observers: + GlobalSprite2D: + - Image: sprite2d/iron_sword.png + PlayerSprite2D: + - Image: sprite2d/iron_sword.png diff --git a/resources/griddlybear192x192.png b/resources/griddlybear192x192.png new file mode 100644 index 000000000..91ed820f0 Binary files /dev/null and b/resources/griddlybear192x192.png differ diff --git a/resources/griddlybear512x512.png b/resources/griddlybear512x512.png new file mode 100644 index 000000000..600f9875c Binary files /dev/null and b/resources/griddlybear512x512.png differ diff --git a/resources/griddlybear64x64.png b/resources/griddlybear64x64.png new file mode 100644 index 000000000..0178c0ef3 Binary files /dev/null and b/resources/griddlybear64x64.png differ diff --git a/resources/images/sprite2d/1.png b/resources/images/sprite2d/1.png new file mode 100644 index 000000000..a659963df Binary files /dev/null and b/resources/images/sprite2d/1.png differ diff --git a/resources/images/sprite2d/2.png b/resources/images/sprite2d/2.png new file mode 100644 index 000000000..9b1d210ad Binary files /dev/null and b/resources/images/sprite2d/2.png differ diff --git a/resources/images/sprite2d/3.png b/resources/images/sprite2d/3.png new file mode 100644 index 000000000..5519f1c65 Binary files /dev/null and b/resources/images/sprite2d/3.png differ diff --git a/resources/images/sprite2d/4.png b/resources/images/sprite2d/4.png new file mode 100644 index 000000000..0604e1cac Binary files /dev/null and b/resources/images/sprite2d/4.png differ diff --git a/resources/images/sprite2d/5.png b/resources/images/sprite2d/5.png new file mode 100644 index 000000000..355950bc2 Binary files /dev/null and b/resources/images/sprite2d/5.png differ diff --git a/resources/images/sprite2d/6.png b/resources/images/sprite2d/6.png new file mode 100644 index 000000000..466735a84 Binary files /dev/null and b/resources/images/sprite2d/6.png differ diff --git a/resources/images/sprite2d/7.png b/resources/images/sprite2d/7.png new file mode 100644 index 000000000..32c67f0ec Binary files /dev/null and b/resources/images/sprite2d/7.png differ diff --git a/resources/images/sprite2d/8.png b/resources/images/sprite2d/8.png new file mode 100644 index 000000000..2f4c4cce0 Binary files /dev/null and b/resources/images/sprite2d/8.png differ diff --git a/resources/images/sprite2d/9.png b/resources/images/sprite2d/9.png new file mode 100644 index 000000000..bda026956 Binary files /dev/null and b/resources/images/sprite2d/9.png differ diff --git a/resources/images/sprite2d/arrow-down.png b/resources/images/sprite2d/arrow-down.png new file mode 100644 index 000000000..426ebf698 Binary files /dev/null and b/resources/images/sprite2d/arrow-down.png differ diff --git a/resources/images/sprite2d/arrow-left.png b/resources/images/sprite2d/arrow-left.png new file mode 100644 index 000000000..66b18ef58 Binary files /dev/null and b/resources/images/sprite2d/arrow-left.png differ diff --git a/resources/images/sprite2d/arrow-right.png b/resources/images/sprite2d/arrow-right.png new file mode 100644 index 000000000..2c7e8dd7f Binary files /dev/null and b/resources/images/sprite2d/arrow-right.png differ diff --git a/resources/images/sprite2d/arrow-up.png b/resources/images/sprite2d/arrow-up.png new file mode 100644 index 000000000..73992e2e3 Binary files /dev/null and b/resources/images/sprite2d/arrow-up.png differ diff --git a/resources/images/sprite2d/coal.png b/resources/images/sprite2d/coal.png new file mode 100644 index 000000000..467a44d4c Binary files /dev/null and b/resources/images/sprite2d/coal.png differ diff --git a/resources/images/sprite2d/cow-left.png b/resources/images/sprite2d/cow-left.png new file mode 100644 index 000000000..5c346ac78 Binary files /dev/null and b/resources/images/sprite2d/cow-left.png differ diff --git a/resources/images/sprite2d/cow-right.png b/resources/images/sprite2d/cow-right.png new file mode 100644 index 000000000..780f4e728 Binary files /dev/null and b/resources/images/sprite2d/cow-right.png differ diff --git a/resources/images/sprite2d/debug-2.png b/resources/images/sprite2d/debug-2.png new file mode 100644 index 000000000..c7cd53182 Binary files /dev/null and b/resources/images/sprite2d/debug-2.png differ diff --git a/resources/images/sprite2d/debug-3.png b/resources/images/sprite2d/debug-3.png new file mode 100644 index 000000000..b7d00a2a3 Binary files /dev/null and b/resources/images/sprite2d/debug-3.png differ diff --git a/resources/images/sprite2d/debug.png b/resources/images/sprite2d/debug.png new file mode 100644 index 000000000..01948f5df Binary files /dev/null and b/resources/images/sprite2d/debug.png differ diff --git a/resources/images/sprite2d/diamond.png b/resources/images/sprite2d/diamond.png new file mode 100644 index 000000000..fe74e39f4 Binary files /dev/null and b/resources/images/sprite2d/diamond.png differ diff --git a/resources/images/sprite2d/drink.png b/resources/images/sprite2d/drink.png new file mode 100644 index 000000000..b875879a3 Binary files /dev/null and b/resources/images/sprite2d/drink.png differ diff --git a/resources/images/sprite2d/energy.png b/resources/images/sprite2d/energy.png new file mode 100644 index 000000000..a77aaf5b7 Binary files /dev/null and b/resources/images/sprite2d/energy.png differ diff --git a/resources/images/sprite2d/fence.png b/resources/images/sprite2d/fence.png new file mode 100644 index 000000000..4814616da Binary files /dev/null and b/resources/images/sprite2d/fence.png differ diff --git a/resources/images/sprite2d/food.png b/resources/images/sprite2d/food.png new file mode 100644 index 000000000..a408a5273 Binary files /dev/null and b/resources/images/sprite2d/food.png differ diff --git a/resources/images/sprite2d/furnace.png b/resources/images/sprite2d/furnace.png new file mode 100644 index 000000000..fafc893a3 Binary files /dev/null and b/resources/images/sprite2d/furnace.png differ diff --git a/resources/images/sprite2d/grass.png b/resources/images/sprite2d/grass.png new file mode 100644 index 000000000..08360bb86 Binary files /dev/null and b/resources/images/sprite2d/grass.png differ diff --git a/resources/images/sprite2d/health.png b/resources/images/sprite2d/health.png new file mode 100644 index 000000000..88a8597da Binary files /dev/null and b/resources/images/sprite2d/health.png differ diff --git a/resources/images/sprite2d/iron.png b/resources/images/sprite2d/iron.png new file mode 100644 index 000000000..eafc7fef8 Binary files /dev/null and b/resources/images/sprite2d/iron.png differ diff --git a/resources/images/sprite2d/iron_pickaxe.png b/resources/images/sprite2d/iron_pickaxe.png new file mode 100644 index 000000000..52c45c207 Binary files /dev/null and b/resources/images/sprite2d/iron_pickaxe.png differ diff --git a/resources/images/sprite2d/iron_sword.png b/resources/images/sprite2d/iron_sword.png new file mode 100644 index 000000000..080b82155 Binary files /dev/null and b/resources/images/sprite2d/iron_sword.png differ diff --git a/resources/images/sprite2d/lava.png b/resources/images/sprite2d/lava.png new file mode 100644 index 000000000..13c45f9c0 Binary files /dev/null and b/resources/images/sprite2d/lava.png differ diff --git a/resources/images/sprite2d/leaves.png b/resources/images/sprite2d/leaves.png new file mode 100644 index 000000000..97a8cef5c Binary files /dev/null and b/resources/images/sprite2d/leaves.png differ diff --git a/resources/images/sprite2d/log.png b/resources/images/sprite2d/log.png new file mode 100644 index 000000000..6ce29850f Binary files /dev/null and b/resources/images/sprite2d/log.png differ diff --git a/resources/images/sprite2d/path.png b/resources/images/sprite2d/path.png new file mode 100644 index 000000000..9b6ffe22a Binary files /dev/null and b/resources/images/sprite2d/path.png differ diff --git a/resources/images/sprite2d/plant-ripe.png b/resources/images/sprite2d/plant-ripe.png new file mode 100644 index 000000000..ed7394ef6 Binary files /dev/null and b/resources/images/sprite2d/plant-ripe.png differ diff --git a/resources/images/sprite2d/plant-young.png b/resources/images/sprite2d/plant-young.png new file mode 100644 index 000000000..4e7fda20e Binary files /dev/null and b/resources/images/sprite2d/plant-young.png differ diff --git a/resources/images/sprite2d/plant.png b/resources/images/sprite2d/plant.png new file mode 100644 index 000000000..4c793c818 Binary files /dev/null and b/resources/images/sprite2d/plant.png differ diff --git a/resources/images/sprite2d/player-down.png b/resources/images/sprite2d/player-down.png new file mode 100644 index 000000000..d499ce7c2 Binary files /dev/null and b/resources/images/sprite2d/player-down.png differ diff --git a/resources/images/sprite2d/player-left.png b/resources/images/sprite2d/player-left.png new file mode 100644 index 000000000..0b8b3b189 Binary files /dev/null and b/resources/images/sprite2d/player-left.png differ diff --git a/resources/images/sprite2d/player-right.png b/resources/images/sprite2d/player-right.png new file mode 100644 index 000000000..6c3efdcd9 Binary files /dev/null and b/resources/images/sprite2d/player-right.png differ diff --git a/resources/images/sprite2d/player-sleep.png b/resources/images/sprite2d/player-sleep.png new file mode 100644 index 000000000..592435d09 Binary files /dev/null and b/resources/images/sprite2d/player-sleep.png differ diff --git a/resources/images/sprite2d/player-up.png b/resources/images/sprite2d/player-up.png new file mode 100644 index 000000000..b4c971bc6 Binary files /dev/null and b/resources/images/sprite2d/player-up.png differ diff --git a/resources/images/sprite2d/player.png b/resources/images/sprite2d/player.png new file mode 100644 index 000000000..82eaa0e89 Binary files /dev/null and b/resources/images/sprite2d/player.png differ diff --git a/resources/images/sprite2d/sand.png b/resources/images/sprite2d/sand.png new file mode 100644 index 000000000..8948044ea Binary files /dev/null and b/resources/images/sprite2d/sand.png differ diff --git a/resources/images/sprite2d/sapling.png b/resources/images/sprite2d/sapling.png new file mode 100644 index 000000000..f7122163d Binary files /dev/null and b/resources/images/sprite2d/sapling.png differ diff --git a/resources/images/sprite2d/skeleton.png b/resources/images/sprite2d/skeleton.png new file mode 100644 index 000000000..f4dc90ba4 Binary files /dev/null and b/resources/images/sprite2d/skeleton.png differ diff --git a/resources/images/sprite2d/stone.png b/resources/images/sprite2d/stone.png new file mode 100644 index 000000000..d5d37d4b8 Binary files /dev/null and b/resources/images/sprite2d/stone.png differ diff --git a/resources/images/sprite2d/stone_pickaxe.png b/resources/images/sprite2d/stone_pickaxe.png new file mode 100644 index 000000000..fb813f80e Binary files /dev/null and b/resources/images/sprite2d/stone_pickaxe.png differ diff --git a/resources/images/sprite2d/stone_sword.png b/resources/images/sprite2d/stone_sword.png new file mode 100644 index 000000000..89bb46bae Binary files /dev/null and b/resources/images/sprite2d/stone_sword.png differ diff --git a/resources/images/sprite2d/table.png b/resources/images/sprite2d/table.png new file mode 100644 index 000000000..7b4159772 Binary files /dev/null and b/resources/images/sprite2d/table.png differ diff --git a/resources/images/sprite2d/tree.png b/resources/images/sprite2d/tree.png new file mode 100644 index 000000000..68e06c4cd Binary files /dev/null and b/resources/images/sprite2d/tree.png differ diff --git a/resources/images/sprite2d/unknown.png b/resources/images/sprite2d/unknown.png new file mode 100644 index 000000000..6df29cd2b Binary files /dev/null and b/resources/images/sprite2d/unknown.png differ diff --git a/resources/images/sprite2d/water.png b/resources/images/sprite2d/water.png new file mode 100644 index 000000000..2dffcedd7 Binary files /dev/null and b/resources/images/sprite2d/water.png differ diff --git a/resources/images/sprite2d/wood.png b/resources/images/sprite2d/wood.png new file mode 100644 index 000000000..edaf0ffa1 Binary files /dev/null and b/resources/images/sprite2d/wood.png differ diff --git a/resources/images/sprite2d/wood_pickaxe.png b/resources/images/sprite2d/wood_pickaxe.png new file mode 100644 index 000000000..69e936295 Binary files /dev/null and b/resources/images/sprite2d/wood_pickaxe.png differ diff --git a/resources/images/sprite2d/wood_sword.png b/resources/images/sprite2d/wood_sword.png new file mode 100644 index 000000000..09819ae4a Binary files /dev/null and b/resources/images/sprite2d/wood_sword.png differ diff --git a/resources/images/sprite2d/zombie.png b/resources/images/sprite2d/zombie.png new file mode 100644 index 000000000..f154bed42 Binary files /dev/null and b/resources/images/sprite2d/zombie.png differ diff --git a/resources/logo.png b/resources/logo.png new file mode 100644 index 000000000..3a6008166 Binary files /dev/null and b/resources/logo.png differ diff --git a/resources/logo1200x630.png b/resources/logo1200x630.png new file mode 100644 index 000000000..e80720e3e Binary files /dev/null and b/resources/logo1200x630.png differ diff --git a/resources/logo800x418.png b/resources/logo800x418.png new file mode 100644 index 000000000..ad985d718 Binary files /dev/null and b/resources/logo800x418.png differ diff --git a/src/Griddly/Core/GDY/Actions/Action.cpp b/src/Griddly/Core/GDY/Actions/Action.cpp index 289c9d354..1c3d06d24 100644 --- a/src/Griddly/Core/GDY/Actions/Action.cpp +++ b/src/Griddly/Core/GDY/Actions/Action.cpp @@ -154,7 +154,8 @@ int32_t Action::getMetaData(std::string variableName) const { if (metaData_.find(variableName) != metaData_.end()) { return metaData_.at(variableName); } else { - throw std::invalid_argument(fmt::format("cannot resolve action metadata variable meta.{0}", variableName)); + spdlog::warn("cannot resolve action metadata variable meta.{0}, will return 0", variableName); + return 0; } } diff --git a/src/Griddly/Core/GDY/GDYFactory.cpp b/src/Griddly/Core/GDY/GDYFactory.cpp index 019cdfe04..acefc87db 100644 --- a/src/Griddly/Core/GDY/GDYFactory.cpp +++ b/src/Griddly/Core/GDY/GDYFactory.cpp @@ -142,6 +142,13 @@ void GDYFactory::registerObserverConfigNode(std::string observerName, YAML::Node observerTypes_.insert({observerName, ObserverType::BLOCK_2D}); } else if (observerTypeString == "ISOMETRIC" || observerTypeString == "Isometric") { observerTypes_.insert({observerName, ObserverType::ISOMETRIC}); +#else + } else if (observerTypeString == "SPRITE_2D" || observerTypeString == "Sprite2D") { + observerTypes_.insert({observerName, ObserverType::NONE}); + } else if (observerTypeString == "BLOCK_2D" || observerTypeString == "Block2D") { + observerTypes_.insert({observerName, ObserverType::NONE}); + } else if (observerTypeString == "ISOMETRIC" || observerTypeString == "Isometric") { + observerTypes_.insert({observerName, ObserverType::NONE}); #endif } else { auto error = fmt::format("Unknown or undefined observer type: {0}", observerTypeString);