From 7bdce37fd3f18e2712e18c4e2c64cac69af0aca1 Mon Sep 17 00:00:00 2001 From: Jakob Stendahl Date: Sun, 19 Sep 2021 19:43:11 +0200 Subject: :boom: Introduce new UI based on svelte, and rewrite a lot of the node app and the NeoRuntime --- .gitignore | 253 +- NeoRuntime/Runtime/luxcena_neo/__init__.py | 2 + NeoRuntime/Runtime/luxcena_neo/color_utils.py | 21 + NeoRuntime/Runtime/luxcena_neo/matrix.py | 73 + NeoRuntime/Runtime/luxcena_neo/neo_behaviour.py | 149 + NeoRuntime/Runtime/luxcena_neo/power_calc.py | 6 + NeoRuntime/Runtime/luxcena_neo/strip.py | 184 + NeoRuntime/Runtime/neo_runtime.py | 177 + NeoRuntime/Runtime/requirements.txt | 1 + NeoRuntime/builtin/fade/mode.log | 5062 +++++++ NeoRuntime/builtin/fade/script.py | 8 + NeoRuntime/builtin/static/mode.log | 13291 +++++++++++++++++++ NeoRuntime/builtin/static/script.py | 38 + NeoRuntime/builtin/strandtest/script.py | 76 + NeoRuntime/special/template_base/script.py | 11 + README.md | 3 +- app.js | 339 +- bin/build.sh | 12 + bin/runDev.sh | 12 - docs/Code Documentation/Design/index.md | 4 + docs/Code Documentation/Modules/CompileAndRun.md | 58 + docs/Code Documentation/Run/index.md | 79 + docs/Code Documentation/SocketIO.md | 116 + docs/Contributing/Modules/CompileAndRun.md | 58 - docs/FuturePlan.md | 23 + docs/README.md | 11 - docs/SUMMARY.md | 14 - docs/Scripting/Examples/strandtest.md | 90 - docs/Scripting/SupportLib/README.md | 70 +- docs/Usage/CLI.md | 8 +- docs/Usage/Configuration.md | 20 +- docs/Usage/Install.md | 12 +- docs/Usage/README.md | 11 - docs/_book/Contributing/Modules/CompileAndRun.html | 477 - docs/_book/Scripting/Examples/strandtest.html | 527 - docs/_book/Scripting/SupportLib/index.html | 490 - docs/_book/Usage/CLI.html | 523 - docs/_book/Usage/Configuration.html | 508 - docs/_book/Usage/Install.html | 483 - docs/_book/Usage/index.html | 461 - .../gitbook/fonts/fontawesome/FontAwesome.otf | Bin 124988 -> 0 bytes .../fonts/fontawesome/fontawesome-webfont.eot | Bin 76518 -> 0 bytes .../fonts/fontawesome/fontawesome-webfont.svg | 685 - .../fonts/fontawesome/fontawesome-webfont.ttf | Bin 152796 -> 0 bytes .../fonts/fontawesome/fontawesome-webfont.woff | Bin 90412 -> 0 bytes .../fonts/fontawesome/fontawesome-webfont.woff2 | Bin 71896 -> 0 bytes docs/_book/gitbook/gitbook-plugin-api/api.css | 106 - docs/_book/gitbook/gitbook-plugin-api/api.js | 7 - docs/_book/gitbook/gitbook-plugin-code/plugin.css | 37 - docs/_book/gitbook/gitbook-plugin-code/plugin.js | 91 - .../gitbook/gitbook-plugin-comment/plugin.css | 143 - .../_book/gitbook/gitbook-plugin-comment/plugin.js | 47 - .../gitbook/gitbook-plugin-emphasize/plugin.css | 14 - .../gitbook-plugin-fontsettings/fontsettings.js | 240 - .../gitbook-plugin-fontsettings/website.css | 291 - docs/_book/gitbook/gitbook-plugin-github/plugin.js | 14 - .../gitbook/gitbook-plugin-highlight/ebook.css | 135 - .../gitbook/gitbook-plugin-highlight/website.css | 434 - .../gitbook/gitbook-plugin-hints/plugin-hints.css | 9 - .../gitbook/gitbook-plugin-livereload/plugin.js | 11 - docs/_book/gitbook/gitbook-plugin-lunr/lunr.min.js | 7 - .../gitbook/gitbook-plugin-lunr/search-lunr.js | 59 - .../service-worker-registration.js | 62 - .../gitbook-plugin-pretty-term/terminal.css | 31 - .../gitbook/gitbook-plugin-pretty-term/terminal.js | 33 - .../gitbook/gitbook-plugin-search/lunr.min.js | 7 - .../gitbook/gitbook-plugin-search/search-engine.js | 50 - .../_book/gitbook/gitbook-plugin-search/search.css | 35 - docs/_book/gitbook/gitbook-plugin-search/search.js | 213 - .../gitbook/gitbook-plugin-sharing/buttons.js | 90 - docs/_book/gitbook/gitbook.js | 4 - .../images/apple-touch-icon-precomposed-152.png | Bin 4817 -> 0 bytes docs/_book/gitbook/images/favicon.ico | Bin 4286 -> 0 bytes docs/_book/gitbook/style.css | 9 - docs/_book/gitbook/theme.js | 4 - docs/_book/index.html | 456 - docs/_book/search_index.json | 1 - docs/_book/service-worker.js | 268 - docs/assets/js-sequence.js | 7 + docs/assets/luxcena-colors.css | 66 + docs/assets/luxcena-colors.js | 21 + docs/assets/sequence-diagram.min.js | 9 + docs/assets/snap.svg-min.js | 21 + docs/assets/underscore-min.js | 21 + docs/assets/webfont.js | 16 + docs/book.json | 10 - docs/index.md | 14 + mkdocs.yml | 51 + package-lock.json | 10393 +++++---------- package.json | 89 +- public/assets/css/bundle.css | 368 - public/assets/img/logo/Icon-0.5x.png | Bin 0 -> 21381 bytes public/assets/img/logo/Icon-192h.png | Bin 0 -> 4203 bytes public/assets/img/logo/Icon-1x.png | Bin 0 -> 51014 bytes public/assets/img/logo/Icon-2x.png | Bin 0 -> 130020 bytes public/assets/img/logo/Icon-512h.png | Bin 0 -> 12986 bytes public/assets/img/logo/Icon-BG-0.5x.png | Bin 0 -> 7091 bytes public/assets/img/logo/Icon-BG-192h.png | Bin 0 -> 6886 bytes public/assets/img/logo/Icon-BG-1x.png | Bin 0 -> 15563 bytes public/assets/img/logo/Icon-BG-2x.png | Bin 0 -> 34238 bytes public/assets/img/logo/Icon-BG-512h.png | Bin 0 -> 20593 bytes public/assets/img/logo/favicon.ico | Bin 0 -> 1150 bytes public/assets/js/bundle.js | 444 - public/assets/js/jquery-3.2.1.min.js | 4 - public/assets/js/jquery-resizable.js | 194 - public/assets/logo/0.5x/Icon@0.5x.png | Bin 18002 -> 0 bytes public/assets/logo/150h/Icon.png | Bin 3731 -> 0 bytes public/assets/logo/1x/Icon.png | Bin 41166 -> 0 bytes public/docs/404.html | 502 + public/docs/Code Documentation/Design/index.html | 574 + .../Modules/CompileAndRun/index.html | 816 ++ public/docs/Code Documentation/Run/index.html | 754 ++ public/docs/Code Documentation/SocketIO/index.html | 989 ++ public/docs/FuturePlan/index.html | 665 + .../docs/Scripting/Examples/strandtest/index.html | 737 + public/docs/Scripting/SupportLib/index.html | 861 ++ public/docs/Usage/CLI/index.html | 860 ++ public/docs/Usage/Configuration/index.html | 767 ++ public/docs/Usage/Install/index.html | 682 + public/docs/assets/fonts/font-awesome.css | 4 + public/docs/assets/fonts/material-icons.css | 13 + public/docs/assets/fonts/specimen/FontAwesome.ttf | Bin 0 -> 165548 bytes public/docs/assets/fonts/specimen/FontAwesome.woff | Bin 0 -> 98024 bytes .../docs/assets/fonts/specimen/FontAwesome.woff2 | Bin 0 -> 77160 bytes .../fonts/specimen/MaterialIcons-Regular.ttf | Bin 0 -> 128180 bytes .../fonts/specimen/MaterialIcons-Regular.woff | Bin 0 -> 57620 bytes .../fonts/specimen/MaterialIcons-Regular.woff2 | Bin 0 -> 44300 bytes public/docs/assets/images/favicon.png | Bin 0 -> 521 bytes .../assets/images/icons/bitbucket.1b09e088.svg | 1 + .../docs/assets/images/icons/github.f0b8504a.svg | 1 + .../docs/assets/images/icons/gitlab.6dd19c00.svg | 1 + .../assets/javascripts/application.c648116f.js | 6 + public/docs/assets/javascripts/lunr/lunr.da.js | 1 + public/docs/assets/javascripts/lunr/lunr.de.js | 1 + public/docs/assets/javascripts/lunr/lunr.du.js | 1 + public/docs/assets/javascripts/lunr/lunr.es.js | 1 + public/docs/assets/javascripts/lunr/lunr.fi.js | 1 + public/docs/assets/javascripts/lunr/lunr.fr.js | 1 + public/docs/assets/javascripts/lunr/lunr.hu.js | 1 + public/docs/assets/javascripts/lunr/lunr.it.js | 1 + public/docs/assets/javascripts/lunr/lunr.ja.js | 1 + public/docs/assets/javascripts/lunr/lunr.jp.js | 1 + public/docs/assets/javascripts/lunr/lunr.multi.js | 1 + public/docs/assets/javascripts/lunr/lunr.nl.js | 1 + public/docs/assets/javascripts/lunr/lunr.no.js | 1 + public/docs/assets/javascripts/lunr/lunr.pt.js | 1 + public/docs/assets/javascripts/lunr/lunr.ro.js | 1 + public/docs/assets/javascripts/lunr/lunr.ru.js | 1 + .../javascripts/lunr/lunr.stemmer.support.js | 1 + public/docs/assets/javascripts/lunr/lunr.sv.js | 1 + public/docs/assets/javascripts/lunr/lunr.th.js | 1 + public/docs/assets/javascripts/lunr/lunr.tr.js | 1 + public/docs/assets/javascripts/lunr/tinyseg.js | 1 + public/docs/assets/javascripts/lunr/wordcut.js | 1 + .../docs/assets/javascripts/modernizr.74668098.js | 1 + public/docs/assets/js-sequence.js | 7 + public/docs/assets/luxcena-colors.css | 66 + public/docs/assets/luxcena-colors.js | 21 + public/docs/assets/sequence-diagram.min.js | 9 + public/docs/assets/snap.svg-min.js | 21 + .../stylesheets/application-palette.a8b3c06d.css | 1 + .../assets/stylesheets/application.30686662.css | 1 + public/docs/assets/underscore-min.js | 21 + public/docs/assets/webfont.js | 16 + public/docs/index.html | 627 + public/docs/search/search_index.json | 1 + public/docs/sitemap.xml | 58 + public/docs/sitemap.xml.gz | Bin 0 -> 203 bytes public/global.css | 301 + public/index.html | 75 +- public/logviewer.html | 64 - public/manifest.json | 36 + public/neo_ide.html | 273 - public/scripts.html | 73 - public/settings.html | 50 - public/strip_setup.html | 131 - public/update/index.html | 47 - rollup.config.js | 58 + runDev.js | 346 + src/Logger/index.js | 79 + src/NeoRuntimeManager/RuntimeProcess.js | 150 + src/NeoRuntimeManager/index.js | 309 + src/SSLCert/index.js | 144 + src/SelfUpdater/index.js | 68 + src/SocketIO/index.js | 353 + src/UserData/index.js | 330 + src/compileAndRun/index.js | 75 - src/compileAndRun/process.js | 41 - .../pythonSupportFiles/LuxcenaNeo/Matrix.py | 73 - .../pythonSupportFiles/LuxcenaNeo/NeoBehaviour.py | 29 - .../pythonSupportFiles/LuxcenaNeo/Strip.py | 121 - .../pythonSupportFiles/LuxcenaNeo/__init__.py | 10 - src/compileAndRun/pythonSupportFiles/entry.py | 76 - src/domain/middleware.js | 40 - src/neoRuntime/index.js | 232 - src/public/app.js | 19 - src/public/app.scss | 9 - src/public/components/sidenav.js | 24 - src/public/js/general.js | 10 - src/public/js/index.js | 68 - src/public/js/logviewer.js | 64 - src/public/js/neo_ide.js | 4 - src/public/js/scripts.js | 71 - src/public/scss/general.scss | 44 - src/public/scss/neo_ide.scss | 254 - src/public/scss/scripts.scss | 35 - src/public/scss/setup.scss | 0 src/public/scss/update.scss | 62 - src/runtimeData/index.js | 45 - src/versionChecker/index.js | 58 - src_frontend/App.svelte | 110 + src_frontend/ComponentLib/Button/Button.svelte | 80 + .../ComponentLib/Button/FloatingButton.svelte | 104 + src_frontend/ComponentLib/FloatingSelect.svelte | 45 + src_frontend/ComponentLib/Input.svelte | 14 + src_frontend/ComponentLib/PrettyVar.svelte | 16 + src_frontend/ComponentLib/RoundRange.svelte | 169 + .../Components/Dialogs/ConfirmActionDialog.svelte | 59 + src_frontend/Components/Editor/Controls.svelte | 83 + src_frontend/Components/Editor/Editor.svelte | 296 + src_frontend/Components/Editor/Output.svelte | 54 + src_frontend/Components/Editor/Pane.svelte | 41 + src_frontend/Components/Editor/TopBar.svelte | 62 + src_frontend/Components/LEDConfig/LEDConfig.svelte | 204 + .../Components/LEDConfig/MatrixSegment.svelte | 57 + src_frontend/Components/LEDConfig/Segment.svelte | 38 + src_frontend/Components/Logs/Logs.svelte | 10 + .../Components/MainControls/ControlColors.svelte | 107 + .../MainControls/ControlComponents.svelte | 139 + .../Components/MainControls/ControlOthers.svelte | 36 + src_frontend/Components/MainMenu.svelte | 80 + src_frontend/Components/ModeList/Mode.svelte | 57 + src_frontend/Components/ModeList/ModeList.svelte | 64 + .../Components/ModeList/NewModeDialog.svelte | 153 + src_frontend/Components/NotImplemented.svelte | 7 + src_frontend/Components/Notifs/Notif.svelte | 126 + .../Components/Notifs/NotifsWrapper.svelte | 33 + .../Components/Settings/CreateEditUser.svelte | 93 + .../Components/Settings/InstanceName.svelte | 36 + src_frontend/Components/Settings/SSLCert.svelte | 57 + src_frontend/Components/Settings/Settings.svelte | 25 + src_frontend/Components/Settings/System.svelte | 34 + src_frontend/Components/Settings/Users.svelte | 93 + src_frontend/Components/Settings/Version.svelte | 60 + src_frontend/layout/Desktop.svelte | 48 + src_frontend/layout/Drawer.svelte | 38 + src_frontend/layout/Phone.svelte | 50 + src_frontend/main.js | 7 + src_frontend/routes/EditorRoute.svelte | 9 + src_frontend/routes/LoginRoute.svelte | 106 + src_frontend/routes/MainRoute.svelte | 61 + src_frontend/routes/UnknownRoute.svelte | 21 + src_frontend/routes/WidgetRoute.svelte | 130 + src_frontend/stores/notifs.js | 24 + src_frontend/stores/socketStore.js | 112 + tests/runTests.js | 8 - webpack.config.js | 35 - 257 files changed, 37715 insertions(+), 18114 deletions(-) create mode 100644 NeoRuntime/Runtime/luxcena_neo/__init__.py create mode 100644 NeoRuntime/Runtime/luxcena_neo/color_utils.py create mode 100644 NeoRuntime/Runtime/luxcena_neo/matrix.py create mode 100644 NeoRuntime/Runtime/luxcena_neo/neo_behaviour.py create mode 100644 NeoRuntime/Runtime/luxcena_neo/power_calc.py create mode 100644 NeoRuntime/Runtime/luxcena_neo/strip.py create mode 100644 NeoRuntime/Runtime/neo_runtime.py create mode 100644 NeoRuntime/Runtime/requirements.txt create mode 100644 NeoRuntime/builtin/fade/mode.log create mode 100644 NeoRuntime/builtin/fade/script.py create mode 100644 NeoRuntime/builtin/static/mode.log create mode 100644 NeoRuntime/builtin/static/script.py create mode 100644 NeoRuntime/builtin/strandtest/script.py create mode 100644 NeoRuntime/special/template_base/script.py create mode 100644 bin/build.sh delete mode 100755 bin/runDev.sh create mode 100644 docs/Code Documentation/Design/index.md create mode 100644 docs/Code Documentation/Modules/CompileAndRun.md create mode 100644 docs/Code Documentation/Run/index.md create mode 100644 docs/Code Documentation/SocketIO.md delete mode 100644 docs/Contributing/Modules/CompileAndRun.md create mode 100644 docs/FuturePlan.md delete mode 100644 docs/README.md delete mode 100644 docs/SUMMARY.md delete mode 100644 docs/Scripting/Examples/strandtest.md delete mode 100644 docs/Usage/README.md delete mode 100644 docs/_book/Contributing/Modules/CompileAndRun.html delete mode 100644 docs/_book/Scripting/Examples/strandtest.html delete mode 100644 docs/_book/Scripting/SupportLib/index.html delete mode 100644 docs/_book/Usage/CLI.html delete mode 100644 docs/_book/Usage/Configuration.html delete mode 100644 docs/_book/Usage/Install.html delete mode 100644 docs/_book/Usage/index.html delete mode 100644 docs/_book/gitbook/fonts/fontawesome/FontAwesome.otf delete mode 100644 docs/_book/gitbook/fonts/fontawesome/fontawesome-webfont.eot delete mode 100644 docs/_book/gitbook/fonts/fontawesome/fontawesome-webfont.svg delete mode 100644 docs/_book/gitbook/fonts/fontawesome/fontawesome-webfont.ttf delete mode 100644 docs/_book/gitbook/fonts/fontawesome/fontawesome-webfont.woff delete mode 100644 docs/_book/gitbook/fonts/fontawesome/fontawesome-webfont.woff2 delete mode 100644 docs/_book/gitbook/gitbook-plugin-api/api.css delete mode 100644 docs/_book/gitbook/gitbook-plugin-api/api.js delete mode 100644 docs/_book/gitbook/gitbook-plugin-code/plugin.css delete mode 100644 docs/_book/gitbook/gitbook-plugin-code/plugin.js delete mode 100644 docs/_book/gitbook/gitbook-plugin-comment/plugin.css delete mode 100644 docs/_book/gitbook/gitbook-plugin-comment/plugin.js delete mode 100644 docs/_book/gitbook/gitbook-plugin-emphasize/plugin.css delete mode 100644 docs/_book/gitbook/gitbook-plugin-fontsettings/fontsettings.js delete mode 100644 docs/_book/gitbook/gitbook-plugin-fontsettings/website.css delete mode 100644 docs/_book/gitbook/gitbook-plugin-github/plugin.js delete mode 100644 docs/_book/gitbook/gitbook-plugin-highlight/ebook.css delete mode 100644 docs/_book/gitbook/gitbook-plugin-highlight/website.css delete mode 100644 docs/_book/gitbook/gitbook-plugin-hints/plugin-hints.css delete mode 100644 docs/_book/gitbook/gitbook-plugin-livereload/plugin.js delete mode 100644 docs/_book/gitbook/gitbook-plugin-lunr/lunr.min.js delete mode 100644 docs/_book/gitbook/gitbook-plugin-lunr/search-lunr.js delete mode 100644 docs/_book/gitbook/gitbook-plugin-offline/service-worker-registration.js delete mode 100644 docs/_book/gitbook/gitbook-plugin-pretty-term/terminal.css delete mode 100644 docs/_book/gitbook/gitbook-plugin-pretty-term/terminal.js delete mode 100644 docs/_book/gitbook/gitbook-plugin-search/lunr.min.js delete mode 100644 docs/_book/gitbook/gitbook-plugin-search/search-engine.js delete mode 100644 docs/_book/gitbook/gitbook-plugin-search/search.css delete mode 100644 docs/_book/gitbook/gitbook-plugin-search/search.js delete mode 100644 docs/_book/gitbook/gitbook-plugin-sharing/buttons.js delete mode 100644 docs/_book/gitbook/gitbook.js delete mode 100644 docs/_book/gitbook/images/apple-touch-icon-precomposed-152.png delete mode 100644 docs/_book/gitbook/images/favicon.ico delete mode 100644 docs/_book/gitbook/style.css delete mode 100644 docs/_book/gitbook/theme.js delete mode 100644 docs/_book/index.html delete mode 100644 docs/_book/search_index.json delete mode 100644 docs/_book/service-worker.js create mode 100644 docs/assets/js-sequence.js create mode 100644 docs/assets/luxcena-colors.css create mode 100644 docs/assets/luxcena-colors.js create mode 100644 docs/assets/sequence-diagram.min.js create mode 100644 docs/assets/snap.svg-min.js create mode 100644 docs/assets/underscore-min.js create mode 100644 docs/assets/webfont.js delete mode 100644 docs/book.json create mode 100644 docs/index.md create mode 100644 mkdocs.yml delete mode 100644 public/assets/css/bundle.css create mode 100644 public/assets/img/logo/Icon-0.5x.png create mode 100644 public/assets/img/logo/Icon-192h.png create mode 100644 public/assets/img/logo/Icon-1x.png create mode 100644 public/assets/img/logo/Icon-2x.png create mode 100644 public/assets/img/logo/Icon-512h.png create mode 100644 public/assets/img/logo/Icon-BG-0.5x.png create mode 100644 public/assets/img/logo/Icon-BG-192h.png create mode 100644 public/assets/img/logo/Icon-BG-1x.png create mode 100644 public/assets/img/logo/Icon-BG-2x.png create mode 100644 public/assets/img/logo/Icon-BG-512h.png create mode 100644 public/assets/img/logo/favicon.ico delete mode 100644 public/assets/js/bundle.js delete mode 100644 public/assets/js/jquery-3.2.1.min.js delete mode 100644 public/assets/js/jquery-resizable.js delete mode 100644 public/assets/logo/0.5x/Icon@0.5x.png delete mode 100644 public/assets/logo/150h/Icon.png delete mode 100644 public/assets/logo/1x/Icon.png create mode 100644 public/docs/404.html create mode 100644 public/docs/Code Documentation/Design/index.html create mode 100644 public/docs/Code Documentation/Modules/CompileAndRun/index.html create mode 100644 public/docs/Code Documentation/Run/index.html create mode 100644 public/docs/Code Documentation/SocketIO/index.html create mode 100644 public/docs/FuturePlan/index.html create mode 100644 public/docs/Scripting/Examples/strandtest/index.html create mode 100644 public/docs/Scripting/SupportLib/index.html create mode 100644 public/docs/Usage/CLI/index.html create mode 100644 public/docs/Usage/Configuration/index.html create mode 100644 public/docs/Usage/Install/index.html create mode 100644 public/docs/assets/fonts/font-awesome.css create mode 100644 public/docs/assets/fonts/material-icons.css create mode 100644 public/docs/assets/fonts/specimen/FontAwesome.ttf create mode 100644 public/docs/assets/fonts/specimen/FontAwesome.woff create mode 100644 public/docs/assets/fonts/specimen/FontAwesome.woff2 create mode 100644 public/docs/assets/fonts/specimen/MaterialIcons-Regular.ttf create mode 100644 public/docs/assets/fonts/specimen/MaterialIcons-Regular.woff create mode 100644 public/docs/assets/fonts/specimen/MaterialIcons-Regular.woff2 create mode 100644 public/docs/assets/images/favicon.png create mode 100644 public/docs/assets/images/icons/bitbucket.1b09e088.svg create mode 100644 public/docs/assets/images/icons/github.f0b8504a.svg create mode 100644 public/docs/assets/images/icons/gitlab.6dd19c00.svg create mode 100644 public/docs/assets/javascripts/application.c648116f.js create mode 100644 public/docs/assets/javascripts/lunr/lunr.da.js create mode 100644 public/docs/assets/javascripts/lunr/lunr.de.js create mode 100644 public/docs/assets/javascripts/lunr/lunr.du.js create mode 100644 public/docs/assets/javascripts/lunr/lunr.es.js create mode 100644 public/docs/assets/javascripts/lunr/lunr.fi.js create mode 100644 public/docs/assets/javascripts/lunr/lunr.fr.js create mode 100644 public/docs/assets/javascripts/lunr/lunr.hu.js create mode 100644 public/docs/assets/javascripts/lunr/lunr.it.js create mode 100644 public/docs/assets/javascripts/lunr/lunr.ja.js create mode 100644 public/docs/assets/javascripts/lunr/lunr.jp.js create mode 100644 public/docs/assets/javascripts/lunr/lunr.multi.js create mode 100644 public/docs/assets/javascripts/lunr/lunr.nl.js create mode 100644 public/docs/assets/javascripts/lunr/lunr.no.js create mode 100644 public/docs/assets/javascripts/lunr/lunr.pt.js create mode 100644 public/docs/assets/javascripts/lunr/lunr.ro.js create mode 100644 public/docs/assets/javascripts/lunr/lunr.ru.js create mode 100644 public/docs/assets/javascripts/lunr/lunr.stemmer.support.js create mode 100644 public/docs/assets/javascripts/lunr/lunr.sv.js create mode 100644 public/docs/assets/javascripts/lunr/lunr.th.js create mode 100644 public/docs/assets/javascripts/lunr/lunr.tr.js create mode 100644 public/docs/assets/javascripts/lunr/tinyseg.js create mode 100644 public/docs/assets/javascripts/lunr/wordcut.js create mode 100644 public/docs/assets/javascripts/modernizr.74668098.js create mode 100644 public/docs/assets/js-sequence.js create mode 100644 public/docs/assets/luxcena-colors.css create mode 100644 public/docs/assets/luxcena-colors.js create mode 100644 public/docs/assets/sequence-diagram.min.js create mode 100644 public/docs/assets/snap.svg-min.js create mode 100644 public/docs/assets/stylesheets/application-palette.a8b3c06d.css create mode 100644 public/docs/assets/stylesheets/application.30686662.css create mode 100644 public/docs/assets/underscore-min.js create mode 100644 public/docs/assets/webfont.js create mode 100644 public/docs/index.html create mode 100644 public/docs/search/search_index.json create mode 100644 public/docs/sitemap.xml create mode 100644 public/docs/sitemap.xml.gz create mode 100644 public/global.css delete mode 100644 public/logviewer.html create mode 100644 public/manifest.json delete mode 100644 public/neo_ide.html delete mode 100644 public/scripts.html delete mode 100644 public/settings.html delete mode 100644 public/strip_setup.html delete mode 100644 public/update/index.html create mode 100644 rollup.config.js create mode 100644 runDev.js create mode 100644 src/Logger/index.js create mode 100644 src/NeoRuntimeManager/RuntimeProcess.js create mode 100644 src/NeoRuntimeManager/index.js create mode 100644 src/SSLCert/index.js create mode 100644 src/SelfUpdater/index.js create mode 100644 src/SocketIO/index.js create mode 100644 src/UserData/index.js delete mode 100644 src/compileAndRun/index.js delete mode 100644 src/compileAndRun/process.js delete mode 100644 src/compileAndRun/pythonSupportFiles/LuxcenaNeo/Matrix.py delete mode 100644 src/compileAndRun/pythonSupportFiles/LuxcenaNeo/NeoBehaviour.py delete mode 100644 src/compileAndRun/pythonSupportFiles/LuxcenaNeo/Strip.py delete mode 100644 src/compileAndRun/pythonSupportFiles/LuxcenaNeo/__init__.py delete mode 100644 src/compileAndRun/pythonSupportFiles/entry.py delete mode 100644 src/domain/middleware.js delete mode 100644 src/neoRuntime/index.js delete mode 100644 src/public/app.js delete mode 100644 src/public/app.scss delete mode 100644 src/public/components/sidenav.js delete mode 100644 src/public/js/general.js delete mode 100644 src/public/js/index.js delete mode 100644 src/public/js/logviewer.js delete mode 100644 src/public/js/neo_ide.js delete mode 100644 src/public/js/scripts.js delete mode 100644 src/public/scss/general.scss delete mode 100644 src/public/scss/neo_ide.scss delete mode 100644 src/public/scss/scripts.scss delete mode 100644 src/public/scss/setup.scss delete mode 100644 src/public/scss/update.scss delete mode 100644 src/runtimeData/index.js delete mode 100644 src/versionChecker/index.js create mode 100644 src_frontend/App.svelte create mode 100644 src_frontend/ComponentLib/Button/Button.svelte create mode 100644 src_frontend/ComponentLib/Button/FloatingButton.svelte create mode 100644 src_frontend/ComponentLib/FloatingSelect.svelte create mode 100644 src_frontend/ComponentLib/Input.svelte create mode 100644 src_frontend/ComponentLib/PrettyVar.svelte create mode 100644 src_frontend/ComponentLib/RoundRange.svelte create mode 100644 src_frontend/Components/Dialogs/ConfirmActionDialog.svelte create mode 100644 src_frontend/Components/Editor/Controls.svelte create mode 100644 src_frontend/Components/Editor/Editor.svelte create mode 100644 src_frontend/Components/Editor/Output.svelte create mode 100644 src_frontend/Components/Editor/Pane.svelte create mode 100644 src_frontend/Components/Editor/TopBar.svelte create mode 100644 src_frontend/Components/LEDConfig/LEDConfig.svelte create mode 100644 src_frontend/Components/LEDConfig/MatrixSegment.svelte create mode 100644 src_frontend/Components/LEDConfig/Segment.svelte create mode 100644 src_frontend/Components/Logs/Logs.svelte create mode 100644 src_frontend/Components/MainControls/ControlColors.svelte create mode 100644 src_frontend/Components/MainControls/ControlComponents.svelte create mode 100644 src_frontend/Components/MainControls/ControlOthers.svelte create mode 100644 src_frontend/Components/MainMenu.svelte create mode 100644 src_frontend/Components/ModeList/Mode.svelte create mode 100644 src_frontend/Components/ModeList/ModeList.svelte create mode 100644 src_frontend/Components/ModeList/NewModeDialog.svelte create mode 100644 src_frontend/Components/NotImplemented.svelte create mode 100644 src_frontend/Components/Notifs/Notif.svelte create mode 100644 src_frontend/Components/Notifs/NotifsWrapper.svelte create mode 100644 src_frontend/Components/Settings/CreateEditUser.svelte create mode 100644 src_frontend/Components/Settings/InstanceName.svelte create mode 100644 src_frontend/Components/Settings/SSLCert.svelte create mode 100644 src_frontend/Components/Settings/Settings.svelte create mode 100644 src_frontend/Components/Settings/System.svelte create mode 100644 src_frontend/Components/Settings/Users.svelte create mode 100644 src_frontend/Components/Settings/Version.svelte create mode 100644 src_frontend/layout/Desktop.svelte create mode 100644 src_frontend/layout/Drawer.svelte create mode 100644 src_frontend/layout/Phone.svelte create mode 100644 src_frontend/main.js create mode 100644 src_frontend/routes/EditorRoute.svelte create mode 100644 src_frontend/routes/LoginRoute.svelte create mode 100644 src_frontend/routes/MainRoute.svelte create mode 100644 src_frontend/routes/UnknownRoute.svelte create mode 100644 src_frontend/routes/WidgetRoute.svelte create mode 100644 src_frontend/stores/notifs.js create mode 100644 src_frontend/stores/socketStore.js delete mode 100644 tests/runTests.js delete mode 100644 webpack.config.js diff --git a/.gitignore b/.gitignore index 30d413f..f1e1b70 100644 --- a/.gitignore +++ b/.gitignore @@ -1,245 +1,14 @@ -*.pyc -*.pyo - -build/ -config/ -tmp/ - -public/assets/js/style-bundle.js - -# Created by https://www.gitignore.io/api/node,macos,linux,windows,intellij,intellij+all - -### Intellij ### -# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm -# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 - -# User-specific stuff: -.idea/**/workspace.xml -.idea/**/tasks.xml -.idea/dictionaries - -# Sensitive or high-churn files: -.idea/**/dataSources/ -.idea/**/dataSources.ids -.idea/**/dataSources.xml -.idea/**/dataSources.local.xml -.idea/**/sqlDataSources.xml -.idea/**/dynamic.xml -.idea/**/uiDesigner.xml - -# Gradle: -.idea/**/gradle.xml -.idea/**/libraries - -# CMake -cmake-build-debug/ - -# Mongo Explorer plugin: -.idea/**/mongoSettings.xml - -## File-based project format: -*.iws - -## Plugin-specific files: - -# IntelliJ -/out/ - -# mpeltonen/sbt-idea plugin -.idea_modules/ - -# JIRA plugin -atlassian-ide-plugin.xml - -# Cursive Clojure plugin -.idea/replstate.xml - -# Ruby plugin and RubyMine -/.rakeTasks - -# Crashlytics plugin (for Android Studio and IntelliJ) -com_crashlytics_export_strings.xml -crashlytics.properties -crashlytics-build.properties -fabric.properties - -### Intellij Patch ### -# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721 - -# *.iml -# modules.xml -# .idea/misc.xml -# *.ipr - -# Sonarlint plugin -.idea/sonarlint - -### Intellij+all ### -# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm -# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 - -# User-specific stuff: - -# Sensitive or high-churn files: - -# Gradle: - -# CMake - -# Mongo Explorer plugin: - -## File-based project format: - -## Plugin-specific files: - -# IntelliJ - -# mpeltonen/sbt-idea plugin - -# JIRA plugin - -# Cursive Clojure plugin - -# Ruby plugin and RubyMine - -# Crashlytics plugin (for Android Studio and IntelliJ) - -### Intellij+all Patch ### -# Ignores the whole .idea folder and all .iml files -# See https://github.com/joeblau/gitignore.io/issues/186 and https://github.com/joeblau/gitignore.io/issues/360 +/node_modules/ +/public/build/ -.idea/ - -# Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-249601023 - -*.iml -modules.xml -.idea/misc.xml -*.ipr - -### Linux ### -*~ - -# temporary files which can be created if a process still has a handle open of a deleted file -.fuse_hidden* - -# KDE directory preferences -.directory - -# Linux trash folder which might appear on any partition or disk -.Trash-* - -# .nfs files are created when an open file is removed but is still being accessed -.nfs* - -### macOS ### -*.DS_Store -.AppleDouble -.LSOverride - -# Icon must end with two \r -Icon - -# Thumbnails -._* - -# Files that might appear in the root of a volume -.DocumentRevisions-V100 -.fseventsd -.Spotlight-V100 -.TemporaryItems -.Trashes -.VolumeIcon.icns -.com.apple.timemachine.donotpresent - -# Directories potentially created on remote AFP share -.AppleDB -.AppleDesktop -Network Trash Folder -Temporary Items -.apdisk - -### Node ### -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (http://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# Typescript v1 declaration files -typings/ - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# dotenv environment variables file -.env - - -### Windows ### -# Windows thumbnail cache files -Thumbs.db -ehthumbs.db -ehthumbs_vista.db - -# Folder config file -Desktop.ini - -# Recycle Bin used on file shares -$RECYCLE.BIN/ - -# Windows Installer files -*.cab -*.msi -*.msm -*.msp - -# Windows shortcuts -*.lnk +.DS_Store +__pycache__ +*.pyc +venv +tmp +public/build +public/assets/vendor -# End of https://www.gitignore.io/api/node,macos,linux,windows,intellij,intellij+all +variables.json +globvars.json \ No newline at end of file diff --git a/NeoRuntime/Runtime/luxcena_neo/__init__.py b/NeoRuntime/Runtime/luxcena_neo/__init__.py new file mode 100644 index 0000000..dfec639 --- /dev/null +++ b/NeoRuntime/Runtime/luxcena_neo/__init__.py @@ -0,0 +1,2 @@ +from .neo_behaviour import NeoBehaviour, VariableType +import luxcena_neo.color_utils as utils \ No newline at end of file diff --git a/NeoRuntime/Runtime/luxcena_neo/color_utils.py b/NeoRuntime/Runtime/luxcena_neo/color_utils.py new file mode 100644 index 0000000..a17d8e4 --- /dev/null +++ b/NeoRuntime/Runtime/luxcena_neo/color_utils.py @@ -0,0 +1,21 @@ +def hex_to_rgb(value: str) -> tuple: + """ Convert hex color to rgb tuple. """ + value = value.lstrip("#") + lv = len(value) + return tuple(int(value[i:i + lv // 3], 16) for i in range(0, lv, lv // 3)) + +def rgb_to_hex(rgb: tuple) -> str: + """ Convert rgb color to hex string. """ + return '#%02x%02x%02x' % rgb + +def rgb_from_24bit(color: int) -> tuple: + """ Convert 24-bit color value into a tuple representing the rgb values. """ + # w = (color & 0xFF000000) >> 24 + r = (color & 0x00FF0000) >> 16 + g = (color & 0x0000FF00) >> 8 + b = (color & 0x000000FF) + return (r, g, b) + +def hex_from_24bit(color: int) -> str: + """ Convert 24-bit color value into hex str. """ + rgb_to_hex(rgb_from_24bit(color)) diff --git a/NeoRuntime/Runtime/luxcena_neo/matrix.py b/NeoRuntime/Runtime/luxcena_neo/matrix.py new file mode 100644 index 0000000..b842789 --- /dev/null +++ b/NeoRuntime/Runtime/luxcena_neo/matrix.py @@ -0,0 +1,73 @@ +def get_segment_range(segments, n): + """ Return a list of all the actual led-numbers in a segment """ + # Sum all the segments prior to the one we are looking for + i = 0 + start = 0 + while True: + if i >= n: break + start += segments[i] # Add number of leds in this segment to the start-index + i += 1 + + # Add all numbers in the segment we are looking for to a list + i = start + breakPoint = i + segments[n] + range = [] + while True: + range.append(i) + i += 1 + if i >= breakPoint: break + return range + + +class Matrix: + + def __init__(self, segments, matrix): + self.matrix = [] # Holds the matrix + self.x_len = 0 # The width of the matrix + self.y_len = len(matrix) # The heigth of the matrix + + for y_pos in range(len(matrix)): + y_val = matrix[y_pos] + + this_y = [] + for x_pos in range(len(y_val)): + # This gets the range of segment n + segment_range = get_segment_range(segments, matrix[y_pos][x_pos][0]) + + # This adds the range to the current row's list + # if in the config [, ] + # reversed == true, revese the list before adding it + this_y += reversed(segment_range) if matrix[y_pos][x_pos][1] else segment_range + + # This just finds the longest row in the matrix + if (len(this_y) > self.x_len): + self.x_len = len(this_y) + + self.matrix.append(this_y) + + def get(self, x, y): + """ Return the value of a place in the matrix given x and y coordinates """ + return self.matrix[y][x] + + def dump(self): + n_spacers = (self.x_len*6) // 2 - 6 + print( ("=" * n_spacers) + "Matrix dump" + ("=" * n_spacers) ) + + for y in self.matrix: + this_y_line = "" + for x in y: + this_y_line += ( ' ' * (5 - len(str(x))) ) + str(x) + ' ' + print(this_y_line) + + print("=" * (self.x_len*6)) + + +if __name__ == "__main__": + test_matrix = Matrix( + [2, 2, 2, 2, 2, 2, 2, 2, 2], + [ + [[0, False], [1, True], [2, False]], + [[3, True], [4, False], [5, True]], + [[6, False], [7, True], [8, False]] + ] + ) diff --git a/NeoRuntime/Runtime/luxcena_neo/neo_behaviour.py b/NeoRuntime/Runtime/luxcena_neo/neo_behaviour.py new file mode 100644 index 0000000..9920ca4 --- /dev/null +++ b/NeoRuntime/Runtime/luxcena_neo/neo_behaviour.py @@ -0,0 +1,149 @@ +import json +from os import path +from enum import Enum + +class NeoBehaviour: + """ + This is the base-class "main" should inherit from! + All methods are blocking :) This means that you could potentially loose a "tick" + For example, if "eachSecond" is taking up the thread, and the clock goes from 11:58 to 12:02, "eachHour", will not be called. + """ + + def __init__(self, package_path): + """ + THIS METHOD SHOULD NOT BE OVERIDDEN! Use onStart if you want a setup-method!!! + Contains basic setup + """ + self.vars = Variables(package_path) + + def declare_variables(self): + """ This should be overridden, and ALL variables should be declared here. """ + return + + def on_start(self): + """ This method will be run right after __init__ """ + return + + def each_tick(self): + """ This method will be run every tick, that means every time the program has time """ + return + + def each_second(self): + """ This method is called every second (on the clock), given that the thread is open """ + return + + def each_minute(self): + """ This method is called every mintue (on the clock), given that the thread is open """ + return + + def each_hour(self): + """ This method is called every whole hour (on the clock), given that the thread is open """ + return + + def each_day(self): + """ This method is called every day at noon, given that the thread is open """ + return + +class VariableType(Enum): + TEXT = 1 + INT = 2 + RANGE = 3 + COLOR = 4 + +class Variables: + + def __init__(self, package_path): + self.__vars = {} + self.__vars_save_file = f"{package_path}/variables.json" + self.__saved_variables = {} + self.read_saved_variables() + + def __getattr__(self, name): + if name in ["_Variables__vars", "_Variables__vars_save_file", "_Variables__saved_variables"]: + return super(Variables, self).__getattr__(name) + return self.__vars[name].value + + def __setattr__(self, name, value): + if name in ["_Variables__vars", "_Variables__vars_save_file", "_Variables__saved_variables"]: + super(Variables, self).__setattr__(name, value) + elif type(value) == Variable: + self.__vars[name] = value + else: + self.__vars[name].value = value + + def __delattr__(self, name): + if name in ["_Variables__vars", "_Variables__vars_save_file", "_Variables__saved_variables"]: + super(Variables, self).__delattr__(name) + else: + del self.__vars[name] + + def __getitem__(self, name): + return self.__vars[name] + + def __setitem__(self, name, value): + self.__vars[name].value = value + + def __contains__(self, name): + return name in self.__vars + + def __repr__(self): + return json.dumps({name: var.value for name, var in self.__vars.items()}) + + def __str__(self): + return repr(self) + + def __dir__(self): + return super(Variables, self).__dir__() + [name for name in self.__vars.keys()] + + def __len__(self): + return len(self.__vars) + + def __iter__(self): + return iter(self.__vars.items()) + + def declare(self, name: str, default: any, var_type: VariableType, on_change = None, **kwargs): + """ Declare a new variable. """ + if name in self.__saved_variables: + default = self.__saved_variables[name] + var = Variable(self.save_variables, name, default, var_type, on_change, **kwargs) + self.__setattr__(name, var) + + def read_saved_variables(self): + """ Read saved variable values from file. """ + if not path.exists(self.__vars_save_file): return + try: + with open(self.__vars_save_file, "r") as f: + self.__saved_variables = json.load(f) + except: + print("Could not load saved variables") + + def save_variables(self): + """ Save variable values to file. """ + self.__saved_variables = {name: var.value for name, var in self.__vars.items()} + with open(self.__vars_save_file, "w") as f: + f.write(json.dumps(self.__saved_variables)) + +class Variable: + + def __init__(self, save_func, key, default, var_type, on_change): + self.__save_func = save_func + self.__key = key + self.__value = default + self.__var_type = var_type + self.__on_change = on_change + + @property + def key(self): return self.__key + + @property + def value(self): return self.__value + + @value.setter + def value(self, value): + self.__value = value + self.__save_func() + if self.__on_change is not None: + self.__on_change(self.value) + + @property + def var_type(self): return self.__var_type.name diff --git a/NeoRuntime/Runtime/luxcena_neo/power_calc.py b/NeoRuntime/Runtime/luxcena_neo/power_calc.py new file mode 100644 index 0000000..4f6a6d6 --- /dev/null +++ b/NeoRuntime/Runtime/luxcena_neo/power_calc.py @@ -0,0 +1,6 @@ + + +def calcCurrent(pixels): + current = 0 + for pixel in pixels: + break diff --git a/NeoRuntime/Runtime/luxcena_neo/strip.py b/NeoRuntime/Runtime/luxcena_neo/strip.py new file mode 100644 index 0000000..a65b3f0 --- /dev/null +++ b/NeoRuntime/Runtime/luxcena_neo/strip.py @@ -0,0 +1,184 @@ +import json +from os import path +from .neopixel import * +from .matrix import Matrix, get_segment_range +from .power_calc import calcCurrent + + +class Strip: + + def __init__(self, strip_conf): + self.SEGMENTS = strip_conf["segments"] + + self.LED_FREQ_HZ = strip_conf["led_freq_hz"] # LED signal frequency in hertz (usually 800khz) + self.LED_CHANNEL = strip_conf["led_channel"] # Set to '1' for GPIOs 13, 19, 41, 45, 53 + self.LED_INVERT = strip_conf["led_invert"] # True to invert the signal, (when using NPN transistor level shift) + self.LED_PIN = strip_conf["led_pin"] # 18 uses PWM, 10 uses SPI /dev/spidev0.0 + self.LED_DMA = strip_conf["led_dma"] # DMA channel for generating the signal, on the newer ones, try 10 + self.LED_COUNT = sum(self.SEGMENTS) # Number of LEDs in strip + + if ("color_calibration" in strip_conf) and (strip_conf["color_calibration"] != ""): + self.COLOR_CALIBRATION = strip_conf["led_calibration"] + else: + self.COLOR_CALIBRATION = [(1,1,1) for x in range(self.LED_COUNT)] + + self.TMPCOLORSTATE = [0 for x in range(self.LED_COUNT)] + self.COLORSTATE = [0 for x in range(self.LED_COUNT)] + + self.LED_BRIGHTNESS = 255 + + self.strip = Adafruit_NeoPixel( + self.LED_COUNT, + self.LED_PIN, + self.LED_FREQ_HZ, + self.LED_DMA, + self.LED_INVERT, + self.LED_BRIGHTNESS, + self.LED_CHANNEL + ) + + self.strip.begin() + + # Blank out all the LEDs + i = 0 + while True: + self.strip.setPixelColor(i, 0) + i += 1 + if (i > self.LED_COUNT): break + self.strip.show() + + # Setup matrix + print(" * Generating matrix") + # try: + self.pixelMatrix = Matrix(self.SEGMENTS, strip_conf["matrix"]) + self.pixelMatrix.dump() + # except: + # print("Something went wrong while setting up your self-defined matrix.") + + self.__power_on = True + self.__brightness = 255 + self.__actual_brightness = self.__brightness + + self.__globvars_path = path.join(path.split(path.dirname(path.abspath(__file__)))[0], "globvars.json") + if path.exists(self.__globvars_path): + try: + with open(self.__globvars_path, "r") as f: + globvars = json.load(f) + self.power_on = globvars["power_on"] + self.brightness = globvars["brightness"] + except: + print("Could not load saved globvars...") + + + def save_globvars(self): + with open(self.__globvars_path, "w") as f: + f.write(json.dumps({ + "power_on": self.__power_on, + "brightness": self.__brightness + })) + + @property + def power_on(self): + return self.__power_on + + @power_on.setter + def power_on(self, value: bool): + self.__power_on = value + if (self.power_on): + self.__actual_brightness = self.__brightness + # self.strip.setBrightness(self.__brightness) + else: + self.__actual_brightness = 0 + # self.strip.setBrightness(0) + self.save_globvars() + + @property + def brightness(self): + # return self.strip.getBrightness() + return self.__actual_brightness + + @brightness.setter + def brightness(self, value: int): + if 0 <= value <= 255: + self.__brightness = value + if (self.power_on): + self.__actual_brightness = value + # self.strip.setBrightness(value) + self.save_globvars() + else: + raise Exception(f"Value ({value}) outside allowed range (0-255)") + + def show(self): + """Update the display with the data from the LED buffer.""" + self.COLORSTATE = self.TMPCOLORSTATE + self.strip.show() + + def set_pixel_color(self, n, *color): + """Set LED at position n to the provided 24-bit color value (in RGB order). + """ + c = detect_format_convert_color(*color) + self.TMPCOLORSTATE[n] = c + # self.strip.setPixelColor(n, ) + + def set_pixel_color_XY(self, x, y, *color): + """Set LED at position n to the provided 24-bit color value (in RGB order). + """ + self.set_pixel_color(self.pixelMatrix.get(x, y), *color) + + def set_segment_color(self, segment, *color): + """Set a whole segment to the provided red, green and blue color. + Each color component should be a value from 0 to 255 (where 0 is the + lowest intensity and 255 is the highest intensity).""" + for n in get_segment_range(self.SEGMENTS, segment): + self.set_pixel_color(n, *color) + + def get_pixels(self): + """Return an object which allows access to the LED display data as if + it were a sequence of 24-bit RGB values. + """ + return self.strip.getPixels() + + def num_pixels(self): + """Return the number of pixels in the display.""" + return self.LED_COUNT + + def get_pixel_color(self, n): + """Get the 24-bit RGB color value for the LED at position n.""" + return self.strip.getPixelColor(n) + + +def color_from_rgb(red, green, blue, white=0): + """ + Convert the provided red, green, blue color to a 24-bit color value. + Each color component should be a value 0-255 + where 0 is the lowest intensity and 255 is the highest intensity. + """ + return (white << 24) | (red << 16) | (green << 8) | blue + + +def color_from_hex(hex_color: str): + """ Convert the provided hex code to a 24-bit color value. """ + value = hex_color.lstrip('#') + lv = len(value) + rgb = tuple(int(value[i:i+lv//3], 16) for i in range(0, lv, lv//3)) + return color_from_rgb(red=rgb[1], green=rgb[0], blue=rgb[2]) + + +def detect_format_convert_color(*color) -> int: + """ + Detect format of a color and return its 24-bit color value. + + If parameter is only a str, it will be treated as a hex value. + If parameter is a tuple, the first three items in that tuple will be treated as a rgb value. + If parameter is a int, it will be treated as a 24-bit color value. + If there are 3 parameters, these will be treated as a rgb value. + """ + if (len(color) == 1) and (isinstance(color[0], str)): + return color_from_hex(color[0]) + if (len(color) == 1) and (isinstance(color[0], tuple)): + return color_from_rgb(*(color[0])) + if (len(color) == 1) and (isinstance(color[0], int)): + return color[0] + if (len(color) == 3): + return color_from_rgb(*color) + raise ValueError("Invalid parameters provided, check documentation.") \ No newline at end of file diff --git a/NeoRuntime/Runtime/neo_runtime.py b/NeoRuntime/Runtime/neo_runtime.py new file mode 100644 index 0000000..e5941e2 --- /dev/null +++ b/NeoRuntime/Runtime/neo_runtime.py @@ -0,0 +1,177 @@ +# This is the entry-point for all Luxcena-Neo python-scripts +# The script should be in the same folder as this, and be named "script.py" +# In the future you could possibly have more files and stuff alongside the "script.py"-file as well +import sys +import json +import importlib +import datetime +import argparse +import configparser +import time +import threading +import select +import traceback +from os import path + +from luxcena_neo.strip import Strip + +def init_strip(strip_config_file): + """ Initialize a strip object with a config file path. """ + print("> Loading pixel-configuration...") + strip_config_obj = configparser.ConfigParser() + strip_config_obj.read(args.strip_config) + strip_config = dict(strip_config_obj.items("DEFAULT")) + strip_config["matrix"] = json.loads(strip_config["matrix"].replace('"', "")) + strip_config["segments"] = [int(x) for x in strip_config["segments"].split(" ")] + strip_config["led_channel"] = int(strip_config["led_channel"]) + strip_config["led_dma"] = int(strip_config["led_dma"]) + strip_config["led_freq_hz"] = int(strip_config["led_freq_hz"]) + strip_config["led_invert"] = (strip_config["led_invert"] == "false") + strip_config["led_pin"] = int(strip_config["led_pin"]) + strip = Strip(strip_config) + return strip + +def init_package(package_path, entry_module, strip): + """ Initialize the package we are going to run. """ + print ("> Initializing package (mode)...") + sys.path.append(package_path) + module = importlib.import_module(entry_module) + module_entry_instance = module.Main(package_path) + + # Make the strip instance available in our modules + setattr(module, "strip", strip) + + module_entry_instance.declare_variables() + return module_entry_instance + +def exec_module(module_executor_loop_func): + """ Create and start a new thread to run the package loop. """ + th = threading.Thread(target=module_executor_loop_func, daemon=True) + th.start() + return th + +class NeoRuntime: + + + def __init__(self, package_path, entry_module, strip_config_file): + self.__strip = init_strip(strip_config_file) + self.__module_entry_instance = init_package(package_path, entry_module, self.__strip) + self.__module_th = None + + + def start(self): + # The mode is starting in it's own thread + print("> Running the mode...") + self.__module_th = exec_module(self.__module_loop) + + # This will run in this thread. + print("> Starting to listen on stdin") + try: + self.__command_listener_loop() + except KeyboardInterrupt: + print("Exiting...") + except Exception as e: + traceback.print_exc() + + + def __command_listener_loop(self): + last_send = time.perf_counter() + while True: + if not self.__module_th.is_alive(): break + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: + line = sys.stdin.readline() + if line: + line = line.replace("\n", "") + if (line[0:10] == ":::setvar:"): + name, value = (line.split(" ", 1)[1]).replace("\"", "").split(":", 1) + if name in self.__module_entry_instance.vars: + self.__module_entry_instance.vars[name] = value + elif (line[0:11] == ":::setglob:"): + name, value = (line.split(" ", 1)[1]).replace("\"", "").split(":", 1) + if name == "brightness": + self.__strip.brightness = int(value) + elif name == "power_on": + self.__strip.power_on = value == "true" + else: + print(f"Unknown globvar \"{name}\"") + else: + if (time.perf_counter() - last_send) > 0.5: + _vars = "{" + for name, var in self.__module_entry_instance.vars: + _vars += f" \"{name}\" : {{ \"value\": \"{var.value}\", \"var_type\": \"{var.var_type}\" }}, " + if len(_vars) > 2: + _vars = _vars[0:-2] + _vars += "}" + + globvars = "{ \"power_on\": " + str(self.__strip.power_on).lower() + ", " + globvars += " \"brightness\":" + str(self.__strip.brightness) + " }" + print(f"{{ \":::data:\": {{ \"variables\": {_vars}, \"globvars\": {globvars} }} }}") + last_send = time.perf_counter() + + + + def __module_loop(self): + self.__module_entry_instance.on_start() + + self.__module_last_tick = time.perf_counter() + self.__module_last_second = time.perf_counter() + self.__module_last_minute = self.__module_last_second + self.__module_last_hour = self.__module_last_second + self.__module_last_day = self.__module_last_second + + while True: + c_time = time.perf_counter() + try: + self.__module_tick(c_time, c_time - self.__module_last_tick) + except Exception as e: + traceback.print_exc() + self.__module_last_tick = time.perf_counter() + + + def __module_tick(self, runningtime, deltatime): + self.__module_entry_instance.each_tick() + + if (runningtime - self.__module_last_second > 1): + self.__module_entry_instance.each_second() + self.__module_last_second = time.perf_counter() + + if (((runningtime - self.__module_last_minute) % 60) > 1): + self.__module_entry_instance.each_minute() + self.__module_last_minute = time.perf_counter() + + if (((runningtime - self.__module_last_hour) % 3600) > 1): + self.__module_entry_instance.each_minute() + self.__module_last_hour = time.perf_counter() + + if (((runningtime - self.__module_last_day) % 86400) > 1): + self.__module_entry_instance.each_minute() + self.__module_last_day = time.perf_counter() + + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument('--strip-config', help='Path to the strip config file.') + parser.add_argument('--mode-path', help='Path of the folder the mode is in.') + parser.add_argument('--mode-entry', help='Path of the module that is the entry-point of the module.') + args = parser.parse_args() + + args.strip_config = args.strip_config.replace("\"", "") + args.mode_path = args.mode_path.replace("\"", "") + args.mode_entry = args.mode_entry.replace("\"", "") + if not path.exists(args.strip_config): + print(f"Strip config not found ({args.strip_config}).") + sys.exit(1) + if not path.exists(args.mode_path): + print(f"Mode path not found ({args.mode_path}).") + sys.exit(1) + if not path.exists(f"{args.mode_path}/{args.mode_entry}.py"): + print(f"Mode entry not found in mode path ({args.mode_path}/{args.mode_entry}).") + sys.exit(1) + + print(f"StripConfig: {args.strip_config}") + print(f"Module : {args.mode_path}/{args.mode_entry}") + + print(f"> Starting \"{args.mode_path}\" in NeoRuntime.") + runtime = NeoRuntime(args.mode_path, args.mode_entry, args.strip_config) + runtime.start() + print ("> NeoRuntime exited...") diff --git a/NeoRuntime/Runtime/requirements.txt b/NeoRuntime/Runtime/requirements.txt new file mode 100644 index 0000000..7a38911 --- /dev/null +++ b/NeoRuntime/Runtime/requirements.txt @@ -0,0 +1 @@ +websockets \ No newline at end of file diff --git a/NeoRuntime/builtin/fade/mode.log b/NeoRuntime/builtin/fade/mode.log new file mode 100644 index 0000000..b4e0fcf --- /dev/null +++ b/NeoRuntime/builtin/fade/mode.log @@ -0,0 +1,5062 @@ + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== +Matrix dump +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread Thread-1: +====stdout==== +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stderr==== + self.run() +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 103, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread +====stdout==== +> Starting to listen on stdin +====stderr==== +Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stderr==== + +====stderr==== + + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== +self.run() +====stderr==== + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + +====stderr==== +return self.__vars[name].value +====stderr==== + +KeyError: 'color' +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 88, in __command_listener_loop + if (time.perf_counter() - last_send) > 2: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread Thread-1 +====stdout==== +> Starting to listen on stdin +====stderr==== +: +Traceback (most recent call last): +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stderr==== + +====stderr==== +self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + +====stderr==== +self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop +====stderr==== + +====stderr==== +self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + return self.__vars[name].value +====stderr==== + +====stderr==== +KeyError +====stderr==== +: 'color' + + +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread Thread-1 +====stderr==== +: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stdout==== +> Starting to listen on stdin +====stderr==== + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") +====stderr==== + return self.__vars[name].value +KeyError: 'color' +====stderr==== +Traceback (most recent call last): +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in +====stderr==== + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start +====stderr==== + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 88, in __command_listener_loop +====stderr==== + if (time.perf_counter() - last_send) > 2: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread +====stderr==== +Thread-1: +====stderr==== +Traceback (most recent call last): +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stdout==== +> Starting to listen on stdin +====stderr==== + self.run() +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + +====stderr==== +self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop +====stderr==== + +====stderr==== +self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + print(f"Script started, color: {self.vars.color}") +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + +====stderr==== +return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stdout==== +> Starting to listen on stdin +====stderr==== + self.run() +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread +====stderr==== +Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stdout==== +> Starting to listen on stdin +====stderr==== + self.run() +====stderr==== + +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop +====stderr==== + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + print(f"Script started, color: {self.vars.color}") +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + return self.__vars[name].value +====stderr==== +KeyError: 'color' +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +> Starting to listen on stdin +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stderr==== + +====stderr==== +self.run() +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) +====stderr==== + + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop +====stderr==== + self.__module_entry_instance.on_start() +====stderr==== + + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + +====stderr==== +print(f"Script started, color: {self.vars.color}") +====stderr==== + + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + +====stderr==== +return self.__vars[name].value +KeyError +====stderr==== +: 'color' +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== + +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stdout==== +> Starting to listen on stdin +====stderr==== + +====stderr==== +self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop +====stderr==== + self.__module_entry_instance.on_start() +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + +====stderr==== +return self.__vars[name].value +KeyError: 'color' +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +====stdout==== +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== + +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== +self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + +====stderr==== + +KeyError: 'color' +====stderr==== +return self.__vars[name].value +====stderr==== + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop +====stdout==== +> Starting to listen on stdin +====stderr==== + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +Matrix dump +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread +====stderr==== +Thread-1: +====stderr==== +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +> Starting to listen on stdin + +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +====stdout==== +> Loading pixel-configuration... +====stdout==== + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread +====stderr==== +Thread-1 +====stderr==== +: +Traceback (most recent call last): +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stdout==== +> Starting to listen on stdin +====stderr==== + self.run() +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop +====stderr==== + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + print(f"Script started, color: {self.vars.color}") +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== +KeyError +====stderr==== + return self.__vars[name].value +====stderr==== + +====stderr==== +: 'color' +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== + +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +====stdout==== + * Generating matrix +====stdout==== +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread +====stdout==== +> Starting to listen on stdin +====stderr==== +Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stderr==== + self.run() +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +Matrix dump +====stdout==== + + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread +====stderr==== +Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stderr==== + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stdout==== +> Starting to listen on stdin +====stderr==== + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop +====stderr==== + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + +====stderr==== +return self.__vars[name].value +KeyError: 'color' +====stderr==== + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== +Matrix dump +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread Thread-1: +====stderr==== +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stderr==== + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + return self.__vars[name].value +KeyError: 'color' +====stderr==== + +====stdout==== +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stderr==== + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stderr==== + self.__module_entry_instance.on_start() +====stdout==== +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +Matrix dump +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stdout==== +> Starting to listen on stdin +====stderr==== + self.run() +====stderr==== + + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + +====stderr==== +self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop +====stderr==== + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + +====stderr==== +return self.__vars[name].value +KeyError +====stderr==== +: 'color' +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +====stdout==== + +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== +Matrix dump +====stdout==== + + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread Thread-1 +====stdout==== +> Starting to listen on stdin +====stderr==== +: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stderr==== + +====stderr==== +self.run() +====stderr==== + + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + +====stderr==== + +====stderr==== +self._target(*self._args, **self._kwargs) +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop +====stderr==== + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + +====stderr==== +print(f"Script started, color: {self.vars.color}") +====stderr==== + + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + return self.__vars[name].value +KeyError: 'color' +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== + +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +> Starting to listen on stdin +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread +====stdout==== +> Starting to listen on stdin +====stderr==== +Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + return self.__vars[name].value +KeyError: +====stderr==== +'color' +====stderr==== +Traceback (most recent call last): +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in +====stderr==== + +====stderr==== +runtime.start() +====stderr==== + +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start +====stderr==== + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop +====stderr==== + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt +====stderr==== + + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + +Matrix dump + +====stdout==== + * Generating matrix +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stderr==== +Exception in thread Thread-1: +====stderr==== + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +> Starting to listen on stdin + +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread Thread-1: +====stderr==== +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stdout==== +> Starting to listen on stdin +====stderr==== + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + +====stderr==== +return self.__vars[name].value +KeyError: 'color' +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +Matrix dump +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread +====stderr==== +Thread-1: +Traceback (most recent call last): +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stdout==== +> Starting to listen on stdin +====stderr==== + +====stderr==== +self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + return self.__vars[name].value +KeyError: 'color' +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +====stdout==== +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stdout==== +> Starting to listen on stdin +====stderr==== + self.run() +====stderr==== + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop +====stderr==== + self.__module_entry_instance.on_start() +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + return self.__vars[name].value +KeyError: 'color' +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stderr==== + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stdout==== +> Starting to listen on stdin +====stderr==== + +====stderr==== + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop +====stderr==== + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== +print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + +====stderr==== +return self.__vars[name].value +====stderr==== + +KeyError: +====stderr==== +'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stdout==== +> Starting to listen on stdin +====stderr==== + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + return self.__vars[name].value +KeyError +====stderr==== +: 'color' +====stderr==== + +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread Thread-1 +====stderr==== +: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stdout==== +> Starting to listen on stdin +====stderr==== + +====stderr==== +self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop +====stderr==== + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + return self.__vars[name].value +====stderr==== + +====stderr==== +KeyError +====stderr==== +: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + + +====stdout==== + * Generating matrix +Matrix dump +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stdout==== +> Starting to listen on stdin +====stderr==== + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + return self.__vars[name].value +KeyError: 'color' +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +====stdout==== +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== + +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread +====stderr==== +Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stderr==== + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread +====stderr==== +Thread-1: +====stderr==== +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop +====stdout==== +> Starting to listen on stdin +====stderr==== + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== +Matrix dump +====stdout==== + + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread +====stderr==== +Thread-1: +Traceback (most recent call last): +====stdout==== +> Starting to listen on stdin +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stderr==== + +====stderr==== +self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop +====stderr==== + +====stderr==== +self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + +====stderr==== +return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stdout==== +> Starting to listen on stdin +====stderr==== + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) +====stderr==== + + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop +====stderr==== + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + return self.__vars[name].value +====stderr==== +KeyError: 'color' +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread +====stderr==== +Thread-1: +Traceback (most recent call last): +====stdout==== +> Starting to listen on stdin +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stderr==== + self.run() +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + +====stderr==== +self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop +====stderr==== + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + return self.__vars[name].value +====stderr==== + +KeyError: +====stderr==== +'color' +====stderr==== + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +====stdout==== +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +====stdout==== +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== +Matrix dump +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread +====stdout==== +> Starting to listen on stdin +====stderr==== +Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +====stdout==== +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== +Matrix dump +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread +====stderr==== +Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stdout==== +> Starting to listen on stdin +====stderr==== + +====stderr==== +self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop +====stderr==== + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + return self.__vars[name].value +====stderr==== +KeyError: 'color' +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in +====stderr==== + +====stderr==== +runtime.start() +====stderr==== + +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start +====stderr==== + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop +====stderr==== + +====stderr==== +while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +====stderr==== +KeyboardInterrupt + + +====stdout==== +> Loading pixel-configuration... +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +====stdout==== + * Generating matrix +====stdout==== + +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread Thread-1 +====stdout==== +> Starting to listen on stdin +====stderr==== +: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stderr==== + +====stderr==== +self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + return self.__vars[name].value +====stderr==== + +KeyError: 'color' +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread +====stderr==== +Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stdout==== +> Starting to listen on stdin +====stderr==== + +====stderr==== +self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop +====stderr==== + self.__module_entry_instance.on_start() +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + print(f"Script started, color: {self.vars.color}") +====stderr==== + + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + +====stderr==== +return self.__vars[name].value +KeyError: 'color' + +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== + * Generating matrix +Matrix dump + +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stderr==== + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in +====stderr==== + runtime.start() +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start +====stderr==== + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +Matrix dump +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread Thread-1: +====stdout==== +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stderr==== + +====stderr==== +self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + +====stderr==== +self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop +====stderr==== + +====stderr==== +self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + +====stderr==== +print(f"Script started, color: {self.vars.color}") +====stderr==== + +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + +====stderr==== +: 'color' +====stderr==== +return self.__vars[name].value +KeyError +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread +====stderr==== +Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stdout==== +> Starting to listen on stdin +====stderr==== + self.run() +====stderr==== + +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + print(f"Script started, color: {self.vars.color}") +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + +====stderr==== +return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread +====stdout==== +> Starting to listen on stdin +====stderr==== +Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stderr==== + +====stderr==== +self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop +====stderr==== + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + +====stderr==== +print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread +====stderr==== +Thread-1: +Traceback (most recent call last): +====stdout==== +> Starting to listen on stdin +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stderr==== + +====stderr==== +self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop +====stderr==== + + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + self.__module_entry_instance.on_start() +====stderr==== + print(f"Script started, color: {self.vars.color}") +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + return self.__vars[name].value +====stderr==== +KeyError: 'color' +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== + * Generating matrix +====stdout==== +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread +====stderr==== +Thread-1: +====stderr==== +Traceback (most recent call last): +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stdout==== +> Starting to listen on stdin +====stderr==== + self.run() +====stderr==== + +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + +====stderr==== +return self.__vars[name].value +====stderr==== + +KeyError +====stderr==== +: 'color' + +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== + +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread +====stdout==== +> Starting to listen on stdin +====stderr==== +Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +Matrix dump +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread +====stderr==== +Thread-1: +Traceback (most recent call last): +====stdout==== +> Starting to listen on stdin +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stderr==== + +====stderr==== +self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + +====stderr==== +self._target(*self._args, **self._kwargs) +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop +====stderr==== + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + return self.__vars[name].value +====stderr==== +KeyError: 'color' + + +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +====stdout==== +> Loading pixel-configuration... +====stdout==== +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +====stdout==== + * Generating matrix +====stdout==== +Matrix dump +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread +====stdout==== +> Starting to listen on stdin +====stderr==== +Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stderr==== + self.run() +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop +====stderr==== + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + print(f"Script started, color: {self.vars.color}") +====stderr==== + + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + +====stderr==== +return self.__vars[name].value +====stderr==== +KeyError: 'color' +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +> Running the mode... +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +====stdout==== + +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== +Matrix dump +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread +====stdout==== +> Starting to listen on stdin +====stderr==== +Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stderr==== + self.run() +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop +====stderr==== + self.__module_entry_instance.on_start() +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + return self.__vars[name].value +====stderr==== +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin + +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread Thread-1 +====stdout==== +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stderr==== +: +====stderr==== + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + +====stderr==== +print(f"Script started, color: {self.vars.color}") +====stderr==== + + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== +return self.__vars[name].value +====stderr==== +KeyError: 'color' +====stderr==== + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin + +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin + +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin + +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 104, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== +=================================Matrix dump================================= +====stdout==== + * Generating matrix +====stdout==== + 0 1 2 3 4 9 8 7 6 5 +====stdout==== + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stdout==== +> Starting to listen on stdin +====stderr==== + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 100, in __module_loop + self.__module_entry_instance.on_start() +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + return self.__vars[name].value +====stderr==== +KeyError: 'color' +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 159, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 59, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 67, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread +====stderr==== +Thread-1: +Traceback (most recent call last): +====stdout==== +> Starting to listen on stdin +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stderr==== + +====stderr==== +self.run() +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) +====stderr==== + + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 100, in __module_loop +====stderr==== + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + +====stderr==== + +====stderr==== +return self.__vars[name].value +KeyError: 'color' +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 159, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 59, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 67, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread +====stderr==== +Thread-1: +====stdout==== +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stderr==== + +====stderr==== +self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + +====stderr==== +self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 100, in __module_loop +====stderr==== + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + +KeyError +====stderr==== + + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + self.__module_entry_instance.on_start() +====stderr==== + return self.__vars[name].value +====stderr==== +: 'color' +====stderr==== + +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 159, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 59, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 67, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +====stdout==== + * Generating matrix +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread +====stdout==== +> Starting to listen on stdin +====stderr==== +Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stderr==== + self.run() +====stderr==== + + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) +====stderr==== + + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 100, in __module_loop +====stderr==== + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + +====stderr==== +print(f"Script started, color: {self.vars.color}") +====stderr==== + + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== +: 'color' +====stderr==== + return self.__vars[name].value +KeyError +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 159, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 59, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 67, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 +====stdout==== + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread Thread-1 +====stdout==== +> Starting to listen on stdin +====stderr==== +: +Traceback (most recent call last): +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stderr==== + +====stderr==== +self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) +====stderr==== + + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 100, in __module_loop +====stderr==== + +====stderr==== + + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + self.__module_entry_instance.on_start() +====stderr==== +print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + return self.__vars[name].value +KeyError: 'color' +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 159, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 59, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 67, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread +====stderr==== +Thread-1: +Traceback (most recent call last): +====stdout==== +> Starting to listen on stdin +====stderr==== + self.run() +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stderr==== + + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 100, in __module_loop +====stderr==== + +====stderr==== + + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + print(f"Script started, color: {self.vars.color}") +====stderr==== + self._target(*self._args, **self._kwargs) +====stderr==== +self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + return self.__vars[name].value +KeyError +====stderr==== +: 'color' +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 159, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 59, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 67, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +====stdout==== + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread +====stderr==== +Thread-1 +====stdout==== +> Starting to listen on stdin +====stderr==== +: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stderr==== + +====stderr==== +self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 100, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' + + +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 159, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 59, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 84, in __command_listener_loop + if (time.perf_counter() - last_send) > 0.5: +KeyboardInterrupt +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +====stdout==== + * Generating matrix +====stdout==== +=================================Matrix dump================================= +====stdout==== + 0 1 2 3 4 9 8 7 6 5 +====stdout==== +============================================================================== +====stdout==== + 14 13 12 11 10 15 16 17 18 19 20 21 22 +====stdout==== +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread +====stderr==== +Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stdout==== +> Starting to listen on stdin +====stderr==== + self.run() +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 100, in __module_loop +====stderr==== + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + print(f"Script started, color: {self.vars.color}") +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + return self.__vars[name].value +====stderr==== + +====stderr==== +KeyError: 'color' + +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 159, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 59, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 67, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + + +====close==== +Script exited with code 1 +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + +====close==== +Script exited with code 1 + +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + + +====close==== +Script exited with code 1 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +====stderr==== + +====stderr==== + +====stderr==== +runtime = NeoRuntime(args.mode_path, args.mode_entry, args.strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 49, in __init__ +====stderr==== +self.__strip = init_strip(strip_config_file) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 24, in init_strip +====stderr==== +Traceback (most recent call last): +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 160, in +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stderr==== + +====stderr==== +strip = Strip(strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/strip.py", line 18, in __init__ +====stderr==== + +====stderr==== +self.LED_COUNT = sum(self.SEGMENTS) # Number of LEDs in strip +TypeError +====stderr==== +: unsupported operand type(s) for +: 'int' and 'str' + +====close==== +Script exited with code 1 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== +{'segments': '5 5 5 5', 'matrix': [[[0, False], [1, True]], [[2, True], [3, False]]], 'led_channel': '0', 'led_dma': '10', 'led_freq_hz': '800000', 'led_invert': 'false', 'led_pin': '18'} +====stderr==== + runtime = NeoRuntime(args.mode_path, args.mode_entry, args.strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 50, in __init__ + self.__strip = init_strip(strip_config_file) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 25, in init_strip + strip = Strip(strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/strip.py", line 18, in __init__ +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 161, in +====stderr==== + self.LED_COUNT = sum(self.SEGMENTS) # Number of LEDs in strip +TypeError: unsupported operand type(s) for +: 'int' and 'str' + + +====close==== +Script exited with code 1 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +====stdout==== +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +====stdout==== +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +====stdout==== +> Loading pixel-configuration... +====stdout==== +{'segments': '5 5 5 5', 'matrix': [[[0, False], [1, True]], [[2, True], [3, False]]], 'led_channel': '0', 'led_dma': '10', 'led_freq_hz': '800000', 'led_invert': 'false', 'led_pin': '18'} +====stderr==== +Traceback (most recent call last): +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 161, in +====stderr==== + +====stderr==== +runtime = NeoRuntime(args.mode_path, args.mode_entry, args.strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 50, in __init__ +====stderr==== + +====stderr==== +self.__strip = init_strip(strip_config_file) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 25, in init_strip +====stderr==== + +====stderr==== +strip = Strip(strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/strip.py", line 18, in __init__ +====stderr==== + +====stderr==== +self.LED_COUNT = sum(self.SEGMENTS) # Number of LEDs in strip +TypeError: unsupported operand type(s) for +: 'int' and 'str' + + +====close==== +Script exited with code 1 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +====stdout==== +> Loading pixel-configuration... +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 166, in + runtime = NeoRuntime(args.mode_path, args.mode_entry, args.strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 55, in __init__ + self.__strip = init_strip(strip_config_file) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 27, in init_strip + strip_config["led_freq_hz"] = int(strip_config["led_freq_hq"]) +KeyError +====stderr==== +: 'led_freq_hq' + + +====close==== +Script exited with code 1 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +====stdout==== +> Loading pixel-configuration... +====stdout==== + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stdout==== +> Starting to listen on stdin +====stderr==== + +====stderr==== +self.run() +====stderr==== + + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 108, in __module_loop +====stderr==== + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + return self.__vars[name].value +====stderr==== +KeyError: 'color' + + +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 167, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 67, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 75, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread Thread-1: +====stderr==== +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stdout==== +> Starting to listen on stdin +====stderr==== + self.run() +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 108, in __module_loop +====stderr==== + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + return self.__vars[name].value +KeyError: 'color' +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 167, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 67, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 75, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stdout==== +> Starting to listen on stdin +====stderr==== + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 108, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + return self.__vars[name].value +KeyError: 'color' +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 167, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 67, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 75, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): +====stdout==== +> Starting to listen on stdin +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stderr==== + self.run() +====stderr==== + + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 108, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + return self.__vars[name].value +KeyError: 'color' +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 167, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 67, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 75, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +====stdout==== +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== +========================Matrix dump======================== +====stdout==== + 0 1 2 3 4 9 8 7 6 5 +====stdout==== + +============================================================ +====stdout==== + 14 13 12 11 10 15 16 17 18 19 +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread Thread-1 +====stderr==== +: +====stderr==== +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner +====stdout==== +> Starting to listen on stdin +====stderr==== + self.run() +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run +====stderr==== + self._target(*self._args, **self._kwargs) +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 114, in __module_loop +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start +====stderr==== + self.__module_entry_instance.on_start() +====stderr==== + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/neo_behaviour.py", line 64, in __getattr__ +====stderr==== + return self.__vars[name].value +====stderr==== +: 'color' +====stderr==== +KeyError +====stdout==== +> NeoRuntime exited... + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ + +====stdout==== +> Initializing package (mode)... + +====stdout==== +> Running the mode... + +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + +====stderr==== + self.run() + +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + +====stderr==== + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 114, in __module_loop + +====stderr==== + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + +====stderr==== + print(f"Script started, color: {self.vars.color}") + +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/neo_behaviour.py", line 64, in __getattr__ + +====stderr==== + return self.__vars[name].value + +====stderr==== +KeyError: 'color' + +====stdout==== +> Starting to listen on stdin +====stdout==== +> NeoRuntime exited... + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + +====stdout==== + * Generating matrix +========================Matrix dump======================== + +====stdout==== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ + +====stdout==== +> Initializing package (mode)... + +====stdout==== +> Running the mode... +====stderr==== +Exception in thread Thread-1: + +====stdout==== +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + +====stderr==== + +====stderr==== +self.run() + +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + +====stderr==== + self._target(*self._args, **self._kwargs) + +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 114, in __module_loop + +====stderr==== + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + +====stderr==== +KeyError: 'color' + +====stderr==== + +====stderr==== +return self.__vars[name].value + +====stderr==== + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/neo_behaviour.py", line 64, in __getattr__ + +====stdout==== +> NeoRuntime exited... + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + +====stdout==== + * Generating matrix +====stdout==== + +========================Matrix dump======================== + +====stdout==== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + +====stderr==== + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + +====stderr==== + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 114, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + +====stderr==== + print(f"Script started, color: {self.vars.color}") + +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/neo_behaviour.py", line 64, in __getattr__ + return self.__vars[name].value +KeyError: 'color' + +====stdout==== +> Starting to listen on stdin +====stdout==== +> NeoRuntime exited... + + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +====stdout==== +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +====stdout==== +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +====stdout==== +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== +========================Matrix dump======================== +====stdout==== + 0 1 2 3 4 9 8 7 6 5 + +====stdout==== + 14 13 12 11 10 15 16 17 18 19 +============================================================ + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + +====stdout==== +> Starting to listen on stdin +====stderr==== + self.run() + +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + +====stderr==== + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 114, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + +====stderr==== + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/neo_behaviour.py", line 64, in __getattr__ + +====stderr==== + return self.__vars[name].value +KeyError: 'color' + +====stdout==== +> NeoRuntime exited... + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + +====stdout==== + 14 13 12 11 10 15 16 17 18 19 +============================================================ + +====stdout==== + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + +====stdout==== +> Initializing package (mode)... + +====stdout==== +> Running the mode... + +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + +====stdout==== +> Starting to listen on stdin + +====stderr==== + self.run() +====stderr==== + + +====stderr==== + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + +====stderr==== +self._target(*self._args, **self._kwargs) +====stderr==== + + +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 114, in __module_loop + +====stderr==== + self.__module_entry_instance.on_start() +====stderr==== + + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + +====stderr==== + +====stderr==== +print(f"Script started, color: {self.vars.color}") +====stderr==== + + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/neo_behaviour.py", line 64, in __getattr__ + +====stderr==== + +====stderr==== +return self.__vars[name].value +====stderr==== + +KeyError: 'color' + +====stdout==== +> NeoRuntime exited... + + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + +====stdout==== + * Generating matrix +====stdout==== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 + +====stdout==== + +========================Matrix dump======================== + +====stdout==== +============================================================ + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stderr==== +Exception in thread Thread-1: +Traceback (most recent call last): + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner + +====stdout==== +> Starting to listen on stdin +====stderr==== + self.run() + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run + self._target(*self._args, **self._kwargs) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 114, in __module_loop + self.__module_entry_instance.on_start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script.py", line 7, in on_start + +====stderr==== + print(f"Script started, color: {self.vars.color}") + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/neo_behaviour.py", line 64, in __getattr__ + +====stderr==== + return self.__vars[name].value +KeyError: 'color' + +====stdout==== +> NeoRuntime exited... + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. + +====stdout==== +> Loading pixel-configuration... + +====stdout==== + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ + +====stdout==== +> Initializing package (mode)... + +====stdout==== +> Running the mode... + +====stdout==== +> Starting to listen on stdin +====stdout==== +Exiting... +> NeoRuntime exited... + + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + +====stdout==== + * Generating matrix +====stdout==== +==============================Matrix dump============================== + +====stdout==== + 0 1 2 3 4 9 8 7 6 5 + 15 14 13 12 11 10 16 17 18 19 20 21 + +====stdout==== +======================================================================== +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +==============================Matrix dump============================== + 0 1 2 3 4 9 8 7 6 5 + 15 14 13 12 11 10 16 17 18 19 20 21 +======================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +==============================Matrix dump============================== + 0 1 2 3 4 9 8 7 6 5 + 15 14 13 12 11 10 16 17 18 19 20 21 +======================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +==============================Matrix dump============================== + 0 1 2 3 4 9 8 7 6 5 + 15 14 13 12 11 10 16 17 18 19 20 21 +======================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +==============================Matrix dump============================== + 0 1 2 3 4 9 8 7 6 5 + 15 14 13 12 11 10 16 17 18 19 20 21 +======================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +==============================Matrix dump============================== + 0 1 2 3 4 9 8 7 6 5 + 15 14 13 12 11 10 16 17 18 19 20 21 +======================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +==============================Matrix dump============================== + 0 1 2 3 4 9 8 7 6 5 + 15 14 13 12 11 10 16 17 18 19 20 21 +======================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +==============================Matrix dump============================== + 0 1 2 3 4 9 8 7 6 5 + 15 14 13 12 11 10 16 17 18 19 20 21 +======================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +==============================Matrix dump============================== + 0 1 2 3 4 9 8 7 6 5 + 15 14 13 12 11 10 16 17 18 19 20 21 +======================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +==============================Matrix dump============================== + 0 1 2 3 4 9 8 7 6 5 + 15 14 13 12 11 10 16 17 18 19 20 21 +======================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +==============================Matrix dump============================== + 0 1 2 3 4 9 8 7 6 5 + 15 14 13 12 11 10 16 17 18 19 20 21 +======================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +==============================Matrix dump============================== + 0 1 2 3 4 9 8 7 6 5 + 15 14 13 12 11 10 16 17 18 19 20 21 +======================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +==============================Matrix dump============================== + 0 1 2 3 4 9 8 7 6 5 + 15 14 13 12 11 10 16 17 18 19 20 21 +======================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +==============================Matrix dump============================== + 0 1 2 3 4 9 8 7 6 5 + 15 14 13 12 11 10 16 17 18 19 20 21 +======================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +==============================Matrix dump============================== + 0 1 2 3 4 9 8 7 6 5 + 15 14 13 12 11 10 16 17 18 19 20 21 +======================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +==============================Matrix dump============================== + 0 1 2 3 4 9 8 7 6 5 + 15 14 13 12 11 10 16 17 18 19 20 21 +======================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +==============================Matrix dump============================== + 0 1 2 3 4 9 8 7 6 5 + 15 14 13 12 11 10 16 17 18 19 20 21 +======================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +==============================Matrix dump============================== + 0 1 2 3 4 9 8 7 6 5 + 15 14 13 12 11 10 16 17 18 19 20 21 +======================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +==============================Matrix dump============================== + 0 1 2 3 4 9 8 7 6 5 + 15 14 13 12 11 10 16 17 18 19 20 21 +======================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +==============================Matrix dump============================== + 0 1 2 3 4 9 8 7 6 5 + 15 14 13 12 11 10 16 17 18 19 20 21 +======================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +==============================Matrix dump============================== + 0 1 2 3 4 9 8 7 6 5 + 15 14 13 12 11 10 16 17 18 19 20 21 +======================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +==============================Matrix dump============================== + 0 1 2 3 4 9 8 7 6 5 + 15 14 13 12 11 10 16 17 18 19 20 21 +======================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +==============================Matrix dump============================== + 0 1 2 3 4 9 8 7 6 5 + 15 14 13 12 11 10 16 17 18 19 20 21 +======================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +==============================Matrix dump============================== + 0 1 2 3 4 9 8 7 6 5 + 15 14 13 12 11 10 16 17 18 19 20 21 +======================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +==============================Matrix dump============================== + 0 1 2 3 4 9 8 7 6 5 + 15 14 13 12 11 10 16 17 18 19 20 21 +======================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +==============================Matrix dump============================== + 0 1 2 3 4 9 8 7 6 5 + 15 14 13 12 11 10 16 17 18 19 20 21 +======================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +==============================Matrix dump============================== + 0 1 2 3 4 9 8 7 6 5 + 15 14 13 12 11 10 16 17 18 19 20 21 +======================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +==============================Matrix dump============================== + 0 1 2 3 4 9 8 7 6 5 + 15 14 13 12 11 10 16 17 18 19 20 21 +======================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +==============================Matrix dump============================== + 0 1 2 3 4 9 8 7 6 5 + 15 14 13 12 11 10 16 17 18 19 20 21 +======================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +==============================Matrix dump============================== + 0 1 2 3 4 9 8 7 6 5 + 15 14 13 12 11 10 16 17 18 19 20 21 +======================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/fade" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +==============================Matrix dump============================== + 0 1 2 3 4 9 8 7 6 5 + 15 14 13 12 11 10 16 17 18 19 20 21 +======================================================================== +> Initializing package (mode)... +> Running the mode... +> Starting to listen on stdin + +====stdout==== +Exiting... +> NeoRuntime exited... + + diff --git a/NeoRuntime/builtin/fade/script.py b/NeoRuntime/builtin/fade/script.py new file mode 100644 index 0000000..c88650d --- /dev/null +++ b/NeoRuntime/builtin/fade/script.py @@ -0,0 +1,8 @@ +from luxcena_neo import NeoBehaviour +import time + +class Main(NeoBehaviour): + + def on_start(self): + pass + diff --git a/NeoRuntime/builtin/static/mode.log b/NeoRuntime/builtin/static/mode.log new file mode 100644 index 0000000..8e28968 --- /dev/null +++ b/NeoRuntime/builtin/static/mode.log @@ -0,0 +1,13291 @@ + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #3cff2e +Color var changed: #3cff2e +> Starting to listen on stdin +====stdout==== +{ ":::data:": { "variables": { "color" : { "value": "#3cff2e", "var_type": "COLOR" }}, "globvars": { "power_on": true, "brightness":147 } } } +====stdout==== +{ ":::data:": { "variables": { "color" : { "value": "#3cff2e", "var_type": "COLOR" }}, "globvars": { "power_on": true, "brightness":147 } } } +====stdout==== +{ ":::data:": { "variables": { "color" : { "value": "#3cff2e", "var_type": "COLOR" }}, "globvars": { "power_on": true, "brightness":147 } } } +====stdout==== +{ ":::data:": { "variables": { "color" : { "value": "#3cff2e", "var_type": "COLOR" }}, "globvars": { "power_on": true, "brightness":147 } } } +====stdout==== +{ ":::data:": { "variables": { "color" : { "value": "#3cff2e", "var_type": "COLOR" }}, "globvars": { "power_on": true, "brightness":147 } } } +====stdout==== +{ ":::data:": { "variables": { "color" : { "value": "#3cff2e", "var_type": "COLOR" }}, "globvars": { "power_on": true, "brightness":147 } } } +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #3cff2e +Color var changed: #3cff2e +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #3cff2e +Color var changed: #3cff2e +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #3cff2e +Color var changed: #3cff2e +> Starting to listen on stdin +====stdout==== +Color var changed: #fcfff2 +====stdout==== +Color var changed: #ff0000 +====stdout==== +Color var changed: #ffb619 +====stdout==== +Color var changed: #ffcc00 +====stdout==== +Color var changed: #ff8b6b +====stdout==== +Color var changed: #ff575a +====stdout==== +Color var changed: #ff5e61 +====stdout==== +Color var changed: #ff6e75 +====stdout==== +Color var changed: #ff7d86 +====stdout==== +Color var changed: #ff99a7 +====stdout==== +Color var changed: #ffabbc +====stdout==== +Color var changed: #ffcce7 +====stdout==== +Color var changed: #ffd6fc +====stdout==== +Color var changed: #d1ccff +====stdout==== +Color var changed: #abbeff +====stdout==== +Color var changed: #99b6ff +====stdout==== +Color var changed: #8aafff +====stdout==== +Color var changed: #6e9cff +====stdout==== +Color var changed: #5c8fff +====stdout==== +Color var changed: #5487ff +====stdout==== +Color var changed: #4d82ff +====stdout==== +Color var changed: #3d74ff +====stdout==== +Color var changed: #386dff +====stdout==== +Color var changed: #2b5dff +====stdout==== +Color var changed: #2151ff +====stdout==== +Color var changed: #1f4fff +====stdout==== +Color var changed: #1c49ff +====stdout==== +Color var changed: #1c4dff +====stdout==== +Color var changed: #2151ff +====stdout==== +Color var changed: #2453ff +====stdout==== +Color var changed: #295eff +====stdout==== +Color var changed: #fffd6e +====stdout==== +Color var changed: #b3b14d +====stdout==== +Color var changed: #d9d75e +====stdout==== +Color var changed: #faf86c +====stdout==== +Color var changed: #fcfa6d +====stdout==== +Color var changed: #fffd6e +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #fffd6e +Color var changed: #fffd6e +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #fffd6e> Starting to listen on stdin + +Color var changed: #fffd6e +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #fffd6e> Starting to listen on stdin +Color var changed: #fffd6e + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #fffd6e +Color var changed: #fffd6e +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #fffd6e +Color var changed: #fffd6e +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #fffd6e +Color var changed: #fffd6e +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #fffd6e> Starting to listen on stdin +Color var changed: #fffd6e + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 161, in + runtime = NeoRuntime(args.mode_path, args.mode_entry, args.strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 51, in __init__ + self.__strip = init_strip(strip_config_file) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 22, in init_strip + strip = Strip(strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/strip.py", line 57, in __init__ + globvars = json.load(f) + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/__init__.py", line 293, in load + return loads(fp.read(), + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/__init__.py", line 346, in loads + return _default_decoder.decode(s) + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/decoder.py", line 337, in decode + obj, end = self.raw_decode(s, idx=_w(s, 0).end()) + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/decoder.py", line 355, in raw_decode + raise JSONDecodeError("Expecting value", s, err.value) from None +json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) + + +====close==== +Script exited with code 1 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 161, in + runtime = NeoRuntime(args.mode_path, args.mode_entry, args.strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 51, in __init__ + self.__strip = init_strip(strip_config_file) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 22, in init_strip + strip = Strip(strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/strip.py", line 57, in __init__ + globvars = json.load(f) + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/__init__.py", line 293, in load + return loads(fp.read(), + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/__init__.py", line 346, in loads + return _default_decoder.decode(s) + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/decoder.py", line 337, in decode + obj, end = self.raw_decode(s, idx=_w(s, 0).end()) + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/decoder.py", line 355, in raw_decode + raise JSONDecodeError("Expecting value", s, err.value) from None +json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) + + +====close==== +Script exited with code 1 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 161, in + runtime = NeoRuntime(args.mode_path, args.mode_entry, args.strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 51, in __init__ + self.__strip = init_strip(strip_config_file) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 22, in init_strip + strip = Strip(strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/strip.py", line 57, in __init__ + globvars = json.load(f) + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/__init__.py", line 293, in load + return loads(fp.read(), + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/__init__.py", line 346, in loads + return _default_decoder.decode(s) + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/decoder.py", line 337, in decode + obj, end = self.raw_decode(s, idx=_w(s, 0).end()) + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/decoder.py", line 355, in raw_decode + raise JSONDecodeError("Expecting value", s, err.value) from None +json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) + + +====close==== +Script exited with code 1 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 161, in + runtime = NeoRuntime(args.mode_path, args.mode_entry, args.strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 51, in __init__ + self.__strip = init_strip(strip_config_file) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 22, in init_strip + strip = Strip(strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/strip.py", line 57, in __init__ + globvars = json.load(f) + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/__init__.py", line 293, in load + return loads(fp.read(), + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/__init__.py", line 346, in loads + return _default_decoder.decode(s) + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/decoder.py", line 337, in decode + obj, end = self.raw_decode(s, idx=_w(s, 0).end()) + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/decoder.py", line 355, in raw_decode + raise JSONDecodeError("Expecting value", s, err.value) from None +json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) + + +====close==== +Script exited with code 1 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 161, in + runtime = NeoRuntime(args.mode_path, args.mode_entry, args.strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 51, in __init__ + self.__strip = init_strip(strip_config_file) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 22, in init_strip + strip = Strip(strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/LuxcenaNeo/strip.py", line 57, in __init__ + globvars = json.load(f) + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/__init__.py", line 293, in load + return loads(fp.read(), + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/__init__.py", line 346, in loads + return _default_decoder.decode(s) + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/decoder.py", line 337, in decode + obj, end = self.raw_decode(s, idx=_w(s, 0).end()) + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/decoder.py", line 355, in raw_decode + raise JSONDecodeError("Expecting value", s, err.value) from None +json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) + + +====close==== +Script exited with code 1 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #fffd6e +Color var changed: #fffd6e +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #fffd6e +Color var changed: #fffd6e +> Starting to listen on stdin +====stdout==== +Color var changed: #ffbb0f +====stdout==== +Color var changed: #ffb70f +====stdout==== +Color var changed: #ffb30f +====stdout==== +Color var changed: #ffaf0f +====stdout==== +Color var changed: #ffab0f +====stdout==== +Color var changed: #ffa60d +====stdout==== +Color var changed: #ffa30f +====stdout==== +Color var changed: #ffa20d +====stdout==== +Color var changed: #ff9e0d +====stdout==== +Color var changed: #ff9a0d +====stdout==== +Color var changed: #ff960d +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ff960d> Starting to listen on stdin + +Color var changed: #ff960d +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ff960d +Color var changed: #ff960d +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ff960d> Starting to listen on stdin + +Color var changed: #ff960d +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ff960d> Starting to listen on stdin + +Color var changed: #ff960d +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ff960d> Starting to listen on stdin +Color var changed: #ff960d + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ff960d +Color var changed: #ff960d +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ff960d> Starting to listen on stdin +Color var changed: #ff960d + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ff960d +Color var changed: #ff960d +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ff960d> Starting to listen on stdin +Color var changed: #ff960d + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ff960d +Color var changed: #ff960d +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ff960d> Starting to listen on stdin + +Color var changed: #ff960d +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ff960d> Starting to listen on stdin + +Color var changed: #ff960d +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ff960d> Starting to listen on stdin +Color var changed: #ff960d + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ff960d +Color var changed: #ff960d +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +Script started, color: #ff960d +Color var changed: #ff960d +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ff960d> Starting to listen on stdin +Color var changed: #ff960d + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ff960d> Starting to listen on stdin +Color var changed: #ff960d + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ff960d> Starting to listen on stdin +Color var changed: #ff960d + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ff960d +Color var changed: #ff960d +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ff960d> Starting to listen on stdin +Color var changed: #ff960d + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ff960d> Starting to listen on stdin + +Color var changed: #ff960d +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ff960d +Color var changed: #ff960d +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ff960d +Color var changed: #ff960d +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ff960d +Color var changed: #ff960d +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ff960d +Color var changed: #ff960d +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ff960d +Color var changed: #ff960d +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ff960d +Color var changed: #ff960d +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ff960d +Color var changed: #ff960d +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ff960d +Color var changed: #ff960d +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ff960d +Color var changed: #ff960d +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ff960d> Starting to listen on stdin + +Color var changed: #ff960d +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ff960d> Starting to listen on stdin + +Color var changed: #ff960d +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ff960d +Color var changed: #ff960d +> Starting to listen on stdin +====stdout==== +Color var changed: #8fc9ff +====stdout==== +Color var changed: #b3fff7 +====stdout==== +Color var changed: #ff504a +====stdout==== +Color var changed: #32ff17 +====stdout==== +Color var changed: #f7ff19 +====stdout==== +Color var changed: #ffb833 +====stdout==== +Color var changed: #ffb536 +====stdout==== +Color var changed: #ffb236 +====stdout==== +Color var changed: #ffaf38 +====stdout==== +Color var changed: #ffac38 +====stdout==== +Color var changed: #ffaa3b +====stdout==== +Color var changed: #ffa73b +====stdout==== +Color var changed: #ffa53d +====stdout==== +Color var changed: #ffa13d +====stdout==== +Color var changed: #ff9c40 +====stdout==== +Color var changed: #ff9742 +====stdout==== +Color var changed: #ff9645 +====stdout==== +Color var changed: #ff9147 +====stdout==== +Color var changed: #ff8c4a +====stdout==== +Color var changed: #ff894a +====stdout==== +Color var changed: #ff884d +====stdout==== +Color var changed: #ff854d +====stdout==== +Color var changed: #ff824d +====stdout==== +Color var changed: #ff8052 +====stdout==== +Color var changed: #ff7d52 +====stdout==== +Color var changed: #ff7a52 +====stdout==== +Color var changed: #ff7954 +====stdout==== +Color var changed: #ff7654 +====stdout==== +Color var changed: #ff7354 +====stdout==== +Color var changed: #ff7154 +====stdout==== +Color var changed: #ff6a57 +====stdout==== +Color var changed: #ff6857 +====stdout==== +Color var changed: #ff6557 +====stdout==== +Color var changed: #ff6257 +====stdout==== +Color var changed: #ff5f57 +====stdout==== +Color var changed: #ff5c57 +====stdout==== +Color var changed: #ff5a57 +====stdout==== +Color var changed: #ff5757 +====stdout==== +Color var changed: #ff5757 +====stdout==== +Color var changed: #ff5959 +====stdout==== +Color var changed: #ff595c +====stdout==== +Color var changed: #ff1774 +====stdout==== +Color var changed: #ff1f6d +====stdout==== +Color var changed: #ff2660 +====stdout==== +Color var changed: #ff383b +====stdout==== +Color var changed: #ff5d38 +====stdout==== +Color var changed: #ff6d33 +====stdout==== +Color var changed: #ff8a24 +====stdout==== +Color var changed: #ff9d0a +====stdout==== +Color var changed: #ffbf00 +====stdout==== +Color var changed: #ffcc00 +====stdout==== +Color var changed: #a8ffb5 +====stdout==== +Color var changed: #a3ffb4 +====stdout==== +Color var changed: #94ffab +====stdout==== +Color var changed: #8affa9 +====stdout==== +Color var changed: #85ffa7 +====stdout==== +Color var changed: #80ffa8 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #80ffa8> Starting to listen on stdin +Color var changed: #80ffa8 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #80ffa8> Starting to listen on stdin +Color var changed: #80ffa8 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #80ffa8 +Color var changed: #80ffa8 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #80ffa8 +Color var changed: #80ffa8 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #80ffa8 +Color var changed: #80ffa8 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #80ffa8> Starting to listen on stdin +Color var changed: #80ffa8 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #80ffa8 +Color var changed: #80ffa8 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #80ffa8 +> Starting to listen on stdinColor var changed: #80ffa8 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #80ffa8> Starting to listen on stdin + +Color var changed: #80ffa8 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #80ffa8 +Color var changed: #80ffa8 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #80ffa8 +Color var changed: #80ffa8 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #80ffa8 +Color var changed: #80ffa8 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #80ffa8 +Color var changed: #80ffa8 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #80ffa8 +Color var changed: #80ffa8 +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 162, in +====stderr==== + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start +====stderr==== + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop +====stderr==== + +====stderr==== +while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +====stderr==== + +====stderr==== +KeyboardInterrupt + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #80ffa8 +Color var changed: #80ffa8 +> Starting to listen on stdin + + +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 162, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +> Running the mode... +====stdout==== +Script started, color: #80ffa8 +====stdout==== +Color var changed: #80ffa8 +====stdout==== +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #80ffa8 +Color var changed: #80ffa8 +> Starting to listen on stdin +====stdout==== +Color var changed: #ffcb94 +====stdout==== +Color var changed: #fff70f +====stdout==== +Color var changed: #ffd817 +====stdout==== +Color var changed: #e6ff03 +====stdout==== +Color var changed: #edff29 +====stdout==== +Color var changed: #e3ff47 +====stdout==== +Color var changed: #ffae00 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffae00> Starting to listen on stdin +Color var changed: #ffae00 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffae00> Starting to listen on stdin + +Color var changed: #ffae00 +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 162, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffae00 +====stdout==== + +Color var changed: #ffae00 +====stdout==== +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 162, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt +====stderr==== + + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffae00> Starting to listen on stdin +Color var changed: #ffae00 + +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== + +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffae00 +Color var changed: #ffae00 +====stdout==== +> Starting to listen on stdin + +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffae00 +====stdout==== + +Color var changed: #ffae00 +====stdout==== +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in +====stderr==== + runtime.start() +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start +====stderr==== + self.__command_listener_loop() +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop +====stderr==== + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +====stderr==== +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== + +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffae00 +Color var changed: #ffae00 +====stdout==== +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in +====stderr==== + +====stderr==== +runtime.start() +====stderr==== + +====stderr==== +self.__command_listener_loop() +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start +====stderr==== + +====stderr==== + +====stderr==== + +====stderr==== +while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +====stderr==== + +====stderr==== +KeyboardInterrupt +====stderr==== + + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +====stdout==== +> Loading pixel-configuration... +====stdout==== + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffae00 +====stdout==== +> Starting to listen on stdin + +====stdout==== +Color var changed: #ffae00 +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffae00 +Color var changed: #ffae00 +====stdout==== +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffae00 +Color var changed: #ffae00 +====stdout==== +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in +====stderr==== + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffae00 +Color var changed: #ffae00 +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffae00> Starting to listen on stdin +Color var changed: #ffae00 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffae00 +Color var changed: #ffae00 +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in +====stderr==== + +====stderr==== +runtime.start() +====stderr==== + +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start +====stderr==== + +====stderr==== +self.__command_listener_loop() +====stderr==== + +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop +====stderr==== + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +====stderr==== +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== + +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffae00 +Color var changed: #ffae00 +====stdout==== +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffae00 +====stdout==== +> Starting to listen on stdin +====stdout==== + +Color var changed: #ffae00 +====stderr==== +Traceback (most recent call last): +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in +====stderr==== + runtime.start() +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start +====stderr==== + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop +====stderr==== + +====stderr==== +while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +====stderr==== + +====stderr==== +KeyboardInterrupt +====stderr==== + + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +====stdout==== + +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffae00 +====stdout==== +Color var changed: #ffae00 +====stdout==== +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== + +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffae00 +====stdout==== + +Color var changed: #ffae00 +====stdout==== +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +====stdout==== +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +====stdout==== +> Loading pixel-configuration... +====stdout==== + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffae00 +====stdout==== + +Color var changed: #ffae00 +====stdout==== +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop +====stderr==== + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffae00 +Color var changed: #ffae00 +====stdout==== +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in +====stderr==== + +====stderr==== +runtime.start() +====stderr==== + +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start +====stderr==== + +====stderr==== +self.__command_listener_loop() +====stderr==== + +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop +====stderr==== + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt +====stderr==== + + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +====stdout==== +> Loading pixel-configuration... +====stdout==== + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffae00 +====stdout==== +> Starting to listen on stdin +Color var changed: #ffae00 +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in +====stderr==== + +====stderr==== +runtime.start() +====stderr==== + +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start +====stderr==== + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop +====stderr==== + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +====stderr==== +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffae00 +====stdout==== +Color var changed: #ffae00 +====stdout==== +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in +====stderr==== + +====stderr==== +runtime.start() +====stderr==== + + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop +====stderr==== + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== + +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffae00 +====stdout==== +> Starting to listen on stdin + +Color var changed: #ffae00 +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffae00 +====stdout==== +> Starting to listen on stdin +====stdout==== + +Color var changed: #ffae00 +====stderr==== +Traceback (most recent call last): +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in +====stderr==== + +====stderr==== +runtime.start() +====stderr==== + +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start +====stderr==== + +====stderr==== +self.__command_listener_loop() +====stderr==== + +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop +====stderr==== + +====stderr==== +while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +====stderr==== + +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffae00 +Color var changed: #ffae00 +====stdout==== +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +====stdout==== +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== +Matrix dump + +====stdout==== +> Initializing package (mode)... +> Running the mode... +====stdout==== +Script started, color: #ffae00 +Color var changed: #ffae00 +====stdout==== +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffae00 +====stdout==== +> Starting to listen on stdin + +====stdout==== +Color var changed: #ffae00 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffae00 +====stdout==== + +> Starting to listen on stdinColor var changed: #ffae00 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffae00 +Color var changed: #ffae00 +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in +====stderr==== + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop +====stderr==== + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +====stdout==== +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +====stdout==== +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== +Matrix dump +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffae00 +Color var changed: #ffae00 +====stdout==== +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in +====stderr==== + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop +====stderr==== + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffae00 +Color var changed: #ffae00 +====stdout==== +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +====stdout==== +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== + +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffae00 +====stdout==== +> Starting to listen on stdin +Color var changed: #ffae00 +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +====stdout==== + * Generating matrix +====stdout==== +> Loading pixel-configuration... +====stdout==== +Matrix dump + +====stdout==== +> Initializing package (mode)... +> Running the mode... +====stdout==== +Script started, color: #ffae00> Starting to listen on stdin +====stdout==== + +Color var changed: #ffae00 +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +Matrix dump +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffae00> Starting to listen on stdin + +Color var changed: #ffae00 +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== + +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffae00 +Color var changed: #ffae00 +====stdout==== +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffae00 +====stdout==== + +Color var changed: #ffae00 +====stdout==== +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + +====stderr==== +self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffae00 +Color var changed: #ffae00 +====stdout==== +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in +====stderr==== + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffae00 +Color var changed: #ffae00 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffae00 +Color var changed: #ffae00 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffae00 +Color var changed: #ffae00 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffae00> Starting to listen on stdin + +Color var changed: #ffae00 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffae00 +Color var changed: #ffae00 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffae00> Starting to listen on stdin +Color var changed: #ffae00 + +====stderr==== +Traceback (most recent call last): +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in +====stderr==== + +====stderr==== +runtime.start() +====stderr==== + +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start +====stderr==== + +====stderr==== +self.__command_listener_loop() +====stderr==== + +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop +====stderr==== + +====stderr==== +while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +====stderr==== + +====stderr==== +KeyboardInterrupt +====stderr==== + + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffae00> Starting to listen on stdin +Color var changed: #ffae00 + +====stdout==== +Color var changed: #ff9b0f +====stdout==== +Color var changed: #ff9f0f +====stdout==== +Color var changed: #ffa412 +====stdout==== +Color var changed: #ffa812 +====stdout==== +Color var changed: #ffa914 +====stdout==== +Color var changed: #ffad14 +====stdout==== +Color var changed: #ffb114 +====stdout==== +Color var changed: #ffb217 +====stdout==== +Color var changed: #ffb617 +====stdout==== +Color var changed: #ffb917 +====stdout==== +Color var changed: #ffbd17 +====stdout==== +Color var changed: #ffbe19 +====stdout==== +Color var changed: #ffc219 +====stdout==== +Color var changed: #ffc619 +====stdout==== +Color var changed: #ffc919 +====stdout==== +Color var changed: #ffcd19 +====stdout==== +Color var changed: #ffce1c +====stdout==== +Color var changed: #ffd21c +====stdout==== +Color var changed: #ffcd57 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffd24d> Starting to listen on stdin +Color var changed: #ffd24d + +====stdout==== +Color var changed: #6bff8b +====stderr==== +Traceback (most recent call last): +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in +====stderr==== + +====stderr==== +runtime.start() +====stderr==== + +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start +====stderr==== + +====stderr==== +self.__command_listener_loop() +====stderr==== + +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop +====stderr==== + +====stderr==== +while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +====stderr==== + +====stderr==== +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #6bff8b> Starting to listen on stdin +Color var changed: #6bff8b + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #6bff8b +Color var changed: #6bff8b +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #6bff8b> Starting to listen on stdin +Color var changed: #6bff8b + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #6bff8b +Color var changed: #6bff8b +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #6bff8b +Color var changed: #6bff8b +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #6bff8b +> Starting to listen on stdinColor var changed: #6bff8b + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #6bff8b> Starting to listen on stdin + +Color var changed: #6bff8b +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #6bff8b> Starting to listen on stdin +Color var changed: #6bff8b + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #6bff8b> Starting to listen on stdin + +Color var changed: #6bff8b +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #6bff8b> Starting to listen on stdin + +Color var changed: #6bff8b +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #6bff8b +Color var changed: #6bff8b +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #6bff8b +Color var changed: #6bff8b +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #6bff8b> Starting to listen on stdin + +Color var changed: #6bff8b +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #6bff8b> Starting to listen on stdin +Color var changed: #6bff8b + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #6bff8b +Color var changed: #6bff8b +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #6bff8b +Color var changed: #6bff8b +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #6bff8b +Color var changed: #6bff8b +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #6bff8b> Starting to listen on stdin + +Color var changed: #6bff8b +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #6bff8b +Color var changed: #6bff8b +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #6bff8b +Color var changed: #6bff8b +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #6bff8b +Color var changed: #6bff8b +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #6bff8b> Starting to listen on stdin +Color var changed: #6bff8b + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #6bff8b> Starting to listen on stdin + +Color var changed: #6bff8b +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #6bff8b +Color var changed: #6bff8b +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #6bff8b +Color var changed: #6bff8b +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #6bff8b +Color var changed: #6bff8b +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #6bff8b> Starting to listen on stdin +Color var changed: #6bff8b + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #6bff8b> Starting to listen on stdin +Color var changed: #6bff8b + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #6bff8b +Color var changed: #6bff8b +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #6bff8b +Color var changed: #6bff8b +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #6bff8b +Color var changed: #6bff8b +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #6bff8b +Color var changed: #6bff8b> Starting to listen on stdin + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #6bff8b> Starting to listen on stdin + +Color var changed: #6bff8b + +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in +====stderr==== + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +====stdout==== +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #6bff8b +====stdout==== +> Starting to listen on stdinColor var changed: #6bff8b +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== + +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #6bff8b +====stdout==== + +Color var changed: #6bff8b +====stdout==== +> Starting to listen on stdin +====stdout==== +Color var changed: #67ff38 +====stdout==== +Color var changed: #ff4000 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ff4000 +Color var changed: #ff4000 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ff4000> Starting to listen on stdin +Color var changed: #ff4000 + +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ff4000 +Color var changed: #ff4000 +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ff4000 +Color var changed: #ff4000 +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +====stdout==== +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== + +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ff4000 +====stdout==== +Color var changed: #ff4000 +====stdout==== +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ff4000> Starting to listen on stdin +Color var changed: #ff4000 + + +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +Script started, color: #ff4000 +Color var changed: #ff4000 +====stdout==== +> Starting to listen on stdin +====stdout==== +Color var changed: #faff73 +====stdout==== +Color var changed: #34ff14 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #34ff14 +Color var changed: #34ff14 +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #34ff14 +Color var changed: #34ff14 +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #34ff14> Starting to listen on stdin +Color var changed: #34ff14 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #34ff14 +Color var changed: #34ff14 +> Starting to listen on stdin +====stdout==== +Color var changed: #ffe524 +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in +====stderr==== + +====stderr==== +runtime.start() +====stderr==== + +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start +====stderr==== + +====stderr==== +self.__command_listener_loop() +====stderr==== + + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +====stdout==== + +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +====stdout==== + +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== +Matrix dump +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffe524 +Color var changed: #ffe524 +====stdout==== +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in +====stderr==== + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +====stdout==== +Matrix dump + +====stdout==== +> Loading pixel-configuration... + * Generating matrix +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffe524 +====stdout==== +> Starting to listen on stdin + +====stdout==== +Color var changed: #ffe524 +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in +====stderr==== + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffe524 +Color var changed: #ffe524 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffe524> Starting to listen on stdin +Color var changed: #ffe524 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffe524> Starting to listen on stdin + +Color var changed: #ffe524 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffe524 +Color var changed: #ffe524 +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +====stdout==== +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== + +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffe524 +Color var changed: #ffe524 +====stdout==== +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffe524 +Color var changed: #ffe524 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffe524 +Color var changed: #ffe524 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffe524 +Color var changed: #ffe524 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffe524> Starting to listen on stdin + +Color var changed: #ffe524 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffe524 +Color var changed: #ffe524 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffe524 +Color var changed: #ffe524 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffe524 +Color var changed: #ffe524 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffe524 +Color var changed: #ffe524 +> Starting to listen on stdin + +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 88, in __command_listener_loop + if (time.perf_counter() - last_send) > 0.5: +KeyboardInterrupt + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffe524 +====stdout==== + +Color var changed: #ffe524 +====stdout==== +> Starting to listen on stdin + + +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== + +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffe524 +====stdout==== +Color var changed: #ffe524 +====stdout==== +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffe524 +Color var changed: #ffe524 +> Starting to listen on stdin +====stdout==== +Color var changed: #00ff0d +====stdout==== +Color var changed: #c180ff +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #c180ff +Color var changed: #c180ff +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #c180ff +Color var changed: #c180ff +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in +====stderr==== + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #c180ff +Color var changed: #c180ff +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #c180ff +====stdout==== +> Starting to listen on stdinColor var changed: #c180ff +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #c180ff +====stdout==== + +Color var changed: #c180ff +====stdout==== +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #c180ff +====stdout==== +> Starting to listen on stdin +====stdout==== + +Color var changed: #c180ff +====stdout==== +Color var changed: #ffa640 +====stdout==== +Color var changed: #40ccff +====stdout==== +Color var changed: #ff7a5c +====stdout==== +Color var changed: #60ff17 +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #60ff17 +====stdout==== +> Starting to listen on stdin +====stdout==== + +Color var changed: #60ff17 +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +====stdout==== +> Loading pixel-configuration... +====stdout==== + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #60ff17 +Color var changed: #60ff17 +====stdout==== +> Starting to listen on stdin +====stdout==== +Color var changed: #75ffe1 +====stdout==== +Color var changed: #b3ffd9 +====stdout==== +Color var changed: #b8ffd5 +====stdout==== +Color var changed: #bdffd2 +====stdout==== +Color var changed: #bdffce +====stdout==== +Color var changed: #bfffcc +====stdout==== +Color var changed: #c2ffc5 +====stdout==== +Color var changed: #c5ffc2 +====stdout==== +Color var changed: #d0ffc2 +====stdout==== +Color var changed: #d6ffc2 +====stdout==== +Color var changed: #dfffbf +====stdout==== +Color var changed: #e2ffbd +====stdout==== +Color var changed: #e7ffb8 +====stdout==== +Color var changed: #eaffb5 +====stdout==== +Color var changed: #efffad +====stdout==== +Color var changed: #f6ffa6 +====stdout==== +Color var changed: #faffa1 +====stdout==== +Color var changed: #fdff9c +====stdout==== +Color var changed: #fffa91 +====stdout==== +Color var changed: #fff58c +====stdout==== +Color var changed: #ffee80 +====stdout==== +Color var changed: #ffe873 +====stdout==== +Color var changed: #ffe16b +====stdout==== +Color var changed: #ffdd63 +====stdout==== +Color var changed: #ffd454 +====stdout==== +Color var changed: #ffd24d +====stdout==== +Color var changed: #ffcd42 +====stdout==== +Color var changed: #ffc73b +====stdout==== +Color var changed: #ffc533 +====stdout==== +Color var changed: #ffc02e +====stdout==== +Color var changed: #ffbe26 +====stdout==== +Color var changed: #ffbc1f +====stdout==== +Color var changed: #ffbb1c +====stdout==== +Color var changed: #ffba19 +====stdout==== +Color var changed: #ffb917 +====stdout==== +Color var changed: #ffb812 +====stdout==== +Color var changed: #ffb70f +====stdout==== +Color var changed: #ffb60d +====stdout==== +Color var changed: #ffba0a +====stdout==== +Color var changed: #ffba0d +====stdout==== +Color var changed: #ffbf0f +====stdout==== +Color var changed: #00eaff +====stdout==== +Color var changed: #00f2ff +====stdout==== +Color var changed: #00ffee +====stdout==== +Color var changed: #00ffc8 +====stdout==== +Color var changed: #00ff95 +====stdout==== +Color var changed: #00ff6e +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e> Starting to listen on stdin +Color var changed: #00ff6e + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e> Starting to listen on stdin +Color var changed: #00ff6e + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e +Color var changed: #00ff6e +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e +Color var changed: #00ff6e +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e +Color var changed: #00ff6e +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e +Color var changed: #00ff6e +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e +Color var changed: #00ff6e +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e> Starting to listen on stdin +Color var changed: #00ff6e + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e +Color var changed: #00ff6e +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e> Starting to listen on stdin + +Color var changed: #00ff6e + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e> Starting to listen on stdin +Color var changed: #00ff6e + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e +Color var changed: #00ff6e +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e> Starting to listen on stdin +Color var changed: #00ff6e + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e> Starting to listen on stdin + +Color var changed: #00ff6e + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #00ff6e +Color var changed: #00ff6e +====stdout==== +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e> Starting to listen on stdin +Color var changed: #00ff6e + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e +Color var changed: #00ff6e +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e> Starting to listen on stdin +Color var changed: #00ff6e + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e +Color var changed: #00ff6e +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #00ff6e> Starting to listen on stdin +Color var changed: #00ff6e + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e +Color var changed: #00ff6e +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e +Color var changed: #00ff6e +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e +Color var changed: #00ff6e +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +====stdout==== +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== + +Matrix dump + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #00ff6e +====stdout==== +> Starting to listen on stdin +Color var changed: #00ff6e +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e +Color var changed: #00ff6e +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +====stdout==== +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e> Starting to listen on stdin +Color var changed: #00ff6e + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e +Color var changed: #00ff6e +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e +Color var changed: #00ff6e +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e +Color var changed: #00ff6e +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e +Color var changed: #00ff6e +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +Matrix dump + +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e> Starting to listen on stdin + +Color var changed: #00ff6e +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 71, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== + * Generating matrix +====stdout==== + 0 1 2 3 4 9 8 7 6 5 +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +====stdout==== + +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + 14 13 12 11 10 15 16 17 18 19 20 21 22 +====stdout==== +=================================Matrix dump================================= +====stdout==== +============================================================================== +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #00ff6e +Color var changed: #00ff6e +====stdout==== +> Starting to listen on stdin + + +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 163, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 63, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 98, in __command_listener_loop + print(f"{{ \":::data:\": {{ \"variables\": {_vars}, \"globvars\": {globvars} }} }}") +KeyboardInterrupt +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #00ff6e +====stdout==== +> Starting to listen on stdin +Color var changed: #00ff6e +====stdout==== + + +====stdout==== + + +====stdout==== + + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e +> Starting to listen on stdinColor var changed: #00ff6e + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e +Color var changed: #00ff6e +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e +Color var changed: #00ff6e +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e +Color var changed: #00ff6e +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e +Color var changed: #00ff6e +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e> Starting to listen on stdin +Color var changed: #00ff6e + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e +Color var changed: #00ff6e +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e +Color var changed: #00ff6e +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e +Color var changed: #00ff6e +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e> Starting to listen on stdin +Color var changed: #00ff6e + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e> Starting to listen on stdin +Color var changed: #00ff6e + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e +Color var changed: #00ff6e +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #00ff6e +Color var changed: #00ff6e +> Starting to listen on stdin +====stdout==== +Color var changed: #ffdb78 +====stdout==== + + + + + +====stdout==== + + + +====stdout==== + + +====stdout==== + + + +====stdout==== + + +====stdout==== + + +====stdout==== + + + + + + + + + +====stdout==== + + + +====stdout==== + + +====stdout==== + + + +====stdout==== + + +====stdout==== + + + + +====stdout==== + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin + +Color var changed: #ffdb78 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +> Starting to listen on stdinColor var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +> Starting to listen on stdinColor var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +====stdout==== +> Initializing package (mode)... +====stdout==== + +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +====stdout==== +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin + +Color var changed: #ffdb78 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin + +Color var changed: #ffdb78 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin + +Color var changed: #ffdb78 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +====stdout==== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin + +Color var changed: #ffdb78 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin + +Color var changed: #ffdb78 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin + +Color var changed: #ffdb78 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin + +Color var changed: #ffdb78 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin + +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin + +Color var changed: #ffdb78 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin + +Color var changed: #ffdb78 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin + +Color var changed: #ffdb78 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin + +Color var changed: #ffdb78 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +====stdout==== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin + +Color var changed: #ffdb78 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin + +Color var changed: #ffdb78 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin + +Color var changed: #ffdb78 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin + +Color var changed: #ffdb78 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +> Starting to listen on stdinColor var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin + +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin + +Color var changed: #ffdb78 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== + + + + + + + + + + + + + + + + + + + + + + + +====stdout==== + + + + + + + + + + + + + + + + + + + + + +====stdout==== + + + + + + + + + + + + + + + + + + + + + + +====stdout==== + + + + + + + + + + + + + + + + + + + + + + + +====stdout==== + + + + + + + + + + + + + + + + + + + + + + +====stdout==== + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +====stdout==== + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +====stdout==== + + + + + + + + + + + + + + + + + + + + + + + + + + + +====stdout==== + + + + + + + + + + + + + + + + + + + + + + +====stdout==== + + + + + + + + + + + + + + + + + + + + + + + +====stdout==== + + + + + + + + + + + + + + + + + + + + + + + + + +====stdout==== + + + + + + + + + + + + + + + + + + + + + + + + + +====stdout==== + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin + +Color var changed: #ffdb78 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin + +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin + +Color var changed: #ffdb78 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +> Starting to listen on stdinColor var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin + +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin + +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 14, in + from luxcena_neo.strip import Strip +ModuleNotFoundError: No module named 'luxcena_neo' + +====close==== +Script exited with code 1 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin + +Color var changed: #ffdb78 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin + +Color var changed: #ffdb78 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin + +Color var changed: #ffdb78 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 159, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 59, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 67, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +====stdout==== + +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffdb78 +====stdout==== +Color var changed: #ffdb78 +====stdout==== +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 159, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 59, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 67, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffdb78 +Color var changed: #ffdb78 +====stdout==== +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 159, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 59, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 67, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffdb78 +====stdout==== +> Starting to listen on stdin + +Color var changed: #ffdb78 +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 159, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 59, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 67, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +====stdout==== +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +====stdout==== + +============================================================================== +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffdb78 +Color var changed: #ffdb78 +====stdout==== +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 159, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 59, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 67, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== +=================================Matrix dump================================= +====stdout==== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffdb78 +Color var changed: #ffdb78 +====stdout==== +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 159, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 59, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 67, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +====stderr==== + +====stderr==== +KeyboardInterrupt +====stderr==== + + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 159, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 59, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 67, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +=================================Matrix dump================================= +====stdout==== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ffdb78 +====stdout==== + +> Starting to listen on stdinColor var changed: #ffdb78 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin + +Color var changed: #ffdb78 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +> Starting to listen on stdin +Color var changed: #ffdb78 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin + +Color var changed: #ffdb78 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin + +Color var changed: #ffdb78 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin + +Color var changed: #ffdb78 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin + +Color var changed: #ffdb78 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin + +Color var changed: #ffdb78 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin + +Color var changed: #ffdb78 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin + +Color var changed: #ffdb78 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin + +Color var changed: #ffdb78 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78 +Color var changed: #ffdb78 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin + +Color var changed: #ffdb78 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ffdb78> Starting to listen on stdin +Color var changed: #ffdb78 + +====stdout==== +Color var changed: #ccff96 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin + +Color var changed: #ccff96 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 159, in +====stderr==== + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 59, in start +====stderr==== + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 67, in __command_listener_loop +====stderr==== + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +=================================Matrix dump================================= +====stdout==== + + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 159, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 59, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 67, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== + +=================================Matrix dump================================= +====stdout==== + 0 1 2 3 4 9 8 7 6 5 +====stdout==== + + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ccff96 +====stdout==== +Color var changed: #ccff96 +====stdout==== +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +====stdout==== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin +Color var changed: #ccff96 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin +Color var changed: #ccff96 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin +Color var changed: #ccff96 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin + +Color var changed: #ccff96 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin + +Color var changed: #ccff96 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin + +Color var changed: #ccff96 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin + +Color var changed: #ccff96 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ccff96 +Color var changed: #ccff96 +====stdout==== + +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin + +Color var changed: #ccff96 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin +Color var changed: #ccff96 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin + +Color var changed: #ccff96 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin +Color var changed: #ccff96 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin + +Color var changed: #ccff96 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin + +Color var changed: #ccff96 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +> Starting to listen on stdinColor var changed: #ccff96 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin +Color var changed: #ccff96 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin +Color var changed: #ccff96 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +====stdout==== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin + +Color var changed: #ccff96 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin + +Color var changed: #ccff96 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +> Starting to listen on stdinColor var changed: #ccff96 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin + +Color var changed: #ccff96 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin +Color var changed: #ccff96 + + + + + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin + +Color var changed: #ccff96 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin +Color var changed: #ccff96 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin +Color var changed: #ccff96 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin +Color var changed: #ccff96 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin + +Color var changed: #ccff96 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +====stdout==== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin + +Color var changed: #ccff96 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin + + + + + + + + + + + + + + + + + + + + + + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin +Color var changed: #ccff96 + + + + + + + +====stdout==== + + + + + + + +====stdout==== + + + + + + + + + + + + + + + + + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin +Color var changed: #ccff96 + + + + +====stdout==== + + + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin +Color var changed: #ccff96 + + + +====stdout==== + + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin +Color var changed: #ccff96 + + + + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin +Color var changed: #ccff96 + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin +Color var changed: #ccff96 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin + +Color var changed: #ccff96 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin +Color var changed: #ccff96 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin + +Color var changed: #ccff96 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +====stdout==== +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin + +Color var changed: #ccff96 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +> Starting to listen on stdinColor var changed: #ccff96 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin + +Color var changed: #ccff96 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin + +Color var changed: #ccff96 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin + +Color var changed: #ccff96 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== + + +====stdout==== + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin + +Color var changed: #ccff96 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin + +Color var changed: #ccff96 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin +Color var changed: #ccff96 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin + +Color var changed: #ccff96 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +=================================Matrix dump================================= + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 20 21 22 +============================================================================== +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin +Color var changed: #ccff96 + +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + + +====close==== +Script exited with code 1 +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + + +====close==== +Script exited with code 1 +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + + +====close==== +Script exited with code 1 +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + + +====close==== +Script exited with code 1 +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + + +====close==== +Script exited with code 1 +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + + +====close==== +Script exited with code 1 +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). +====close==== +Script exited with code 1 + + +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + +====close==== +Script exited with code 1 + +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + + +====close==== +Script exited with code 1 +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + + +====close==== +Script exited with code 1 +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + + +====close==== +Script exited with code 1 +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + + +====close==== +Script exited with code 1 +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). +====close==== +Script exited with code 1 + + +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + + +====close==== +Script exited with code 1 +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + + +====close==== +Script exited with code 1 +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + + +====close==== +Script exited with code 1 +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + + +====close==== +Script exited with code 1 +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + + +====close==== +Script exited with code 1 +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + + +====close==== +Script exited with code 1 +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + + +====close==== +Script exited with code 1 +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + + +====close==== +Script exited with code 1 +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + + +====close==== +Script exited with code 1 +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + + +====close==== +Script exited with code 1 +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + + +====close==== +Script exited with code 1 +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + + +====close==== +Script exited with code 1 +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + + +====close==== +Script exited with code 1 +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + + +====close==== +Script exited with code 1 +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + + +====close==== +Script exited with code 1 +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + + +====close==== +Script exited with code 1 +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + + +====close==== +Script exited with code 1 +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + + +====close==== +Script exited with code 1 +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + + +====close==== +Script exited with code 1 +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + + +====close==== +Script exited with code 1 +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + + +====close==== +Script exited with code 1 +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + + +====close==== +Script exited with code 1 +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + + +====close==== +Script exited with code 1 +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + +====close==== +Script exited with code 1 + +====stdout==== +Strip config not found (/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.json). + + +====close==== +Script exited with code 1 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 160, in + runtime = NeoRuntime(args.mode_path, args.mode_entry, args.strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 49, in __init__ + self.__strip = init_strip(strip_config_file) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 23, in init_strip + strip_config["matrix"] = json.load(strip_config["matrix"].replace('"', "")) + File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/__init__.py", line 293, in load + return loads(fp.read(), +AttributeError: 'str' object has no attribute 'read' + +====close==== +Script exited with code 1 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stderr==== +Traceback (most recent call last): +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 160, in +====stderr==== + runtime = NeoRuntime(args.mode_path, args.mode_entry, args.strip_config) +====stderr==== + + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 49, in __init__ +====stderr==== + +====stderr==== + strip = Strip(strip_config) +====stderr==== +self.__strip = init_strip(strip_config_file) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 24, in init_strip +====stderr==== + + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/strip.py", line 18, in __init__ +====stderr==== + +====stderr==== +self.LED_COUNT = sum(self.SEGMENTS) # Number of LEDs in strip +TypeError: unsupported operand type(s) for +: 'int' and 'str' + + +====close==== +Script exited with code 1 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +====stdout==== +> Loading pixel-configuration... +====stdout==== +{'segments': '5 5 5 5', 'matrix': [[[0, False], [1, True]], [[2, True], [3, False]]], 'led_channel': '0', 'led_dma': '10', 'led_freq_hz': '800000', 'led_invert': 'false', 'led_pin': '18'} +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 161, in +====stderr==== + +====stderr==== +runtime = NeoRuntime(args.mode_path, args.mode_entry, args.strip_config) +====stderr==== + + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 50, in __init__ +====stderr==== + +====stderr==== +self.__strip = init_strip(strip_config_file) +====stderr==== + +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 25, in init_strip +====stderr==== + +====stderr==== +strip = Strip(strip_config) +====stderr==== + +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/strip.py", line 18, in __init__ +====stderr==== + self.LED_COUNT = sum(self.SEGMENTS) # Number of LEDs in strip +TypeError: unsupported operand type(s) for +: 'int' and 'str' + + +====close==== +Script exited with code 1 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== +{'segments': '5 5 5 5', 'matrix': [[[0, False], [1, True]], [[2, True], [3, False]]], 'led_channel': '0', 'led_dma': '10', 'led_freq_hz': '800000', 'led_invert': 'false', 'led_pin': '18'} +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 161, in +====stderr==== + runtime = NeoRuntime(args.mode_path, args.mode_entry, args.strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 50, in __init__ +====stderr==== + self.__strip = init_strip(strip_config_file) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 25, in init_strip +====stderr==== + self.LED_COUNT = sum(self.SEGMENTS) # Number of LEDs in strip +TypeError: unsupported operand type(s) for +: 'int' and 'str' +====stderr==== + strip = Strip(strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/strip.py", line 18, in __init__ + + +====close==== +Script exited with code 1 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +====stderr==== +Traceback (most recent call last): +====stdout==== +> Loading pixel-configuration... +====stderr==== + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 166, in +====stderr==== + +====stderr==== +runtime = NeoRuntime(args.mode_path, args.mode_entry, args.strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 55, in __init__ +====stderr==== + +====stderr==== +self.__strip = init_strip(strip_config_file) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 27, in init_strip +====stderr==== + +====stderr==== +strip_config["led_freq_hz"] = int(strip_config["led_freq_hq"]) +KeyError: 'led_freq_hq' + + +====close==== +Script exited with code 1 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +====stdout==== +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== +========================Matrix dump======================== +====stdout==== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +====stdout==== +============================================================ +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ccff96 +====stdout==== +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin + +Color var changed: #ccff96 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 167, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 67, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 75, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== +========================Matrix dump======================== +====stdout==== + 0 1 2 3 4 9 8 7 6 5 +====stdout==== + 14 13 12 11 10 15 16 17 18 19 +============================================================ +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ccff96 +====stdout==== + +Color var changed: #ccff96 +====stdout==== +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 167, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 67, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 75, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +====stdout==== +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +====stdout==== + +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ccff96 +Color var changed: #ccff96 +====stdout==== +> Starting to listen on stdin +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 167, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 67, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 75, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +====stdout==== +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +====stdout==== +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +====stdout==== +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== +========================Matrix dump======================== +====stdout==== + 0 1 2 3 4 9 8 7 6 5 +====stdout==== + 14 13 12 11 10 15 16 17 18 19 +============================================================ +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ccff96 +====stdout==== +> Starting to listen on stdin +====stdout==== +Color var changed: #ccff96 +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 167, in + runtime.start() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 67, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 75, in __command_listener_loop + while sys.stdin in select.select([sys.stdin], [], [], 0)[0]: +KeyboardInterrupt + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +====stdout==== + +========================Matrix dump======================== +====stdout==== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ccff96 +Color var changed: #ccff96 +====stdout==== +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 166, in + runtime = NeoRuntime(args.mode_path, args.mode_entry, args.strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 55, in __init__ + self.__strip = init_strip(strip_config_file) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 30, in init_strip + strip = Strip(strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/strip.py", line 45, in __init__ + self.pixelMatrix = Matrix(self.SEGMENTS, strip_conf["matrix"]) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/matrix.py", line 35, in __init__ + segment_range = get_segment_range(segments, matrix[y_pos][x_pos][0]) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/matrix.py", line 8, in get_segment_range + start += segments[i] # Add number of leds in this segment to the start-index +IndexError: list index out of range + + +====close==== +Script exited with code 1 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 166, in + runtime = NeoRuntime(args.mode_path, args.mode_entry, args.strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 55, in __init__ + self.__strip = init_strip(strip_config_file) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 30, in init_strip + strip = Strip(strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/strip.py", line 45, in __init__ + self.pixelMatrix = Matrix(self.SEGMENTS, strip_conf["matrix"]) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/matrix.py", line 35, in __init__ + segment_range = get_segment_range(segments, matrix[y_pos][x_pos][0]) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/matrix.py", line 8, in get_segment_range + start += segments[i] # Add number of leds in this segment to the start-index +IndexError: list index out of range + + +====close==== +Script exited with code 1 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 166, in + runtime = NeoRuntime(args.mode_path, args.mode_entry, args.strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 55, in __init__ + self.__strip = init_strip(strip_config_file) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 30, in init_strip + strip = Strip(strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/strip.py", line 45, in __init__ + self.pixelMatrix = Matrix(self.SEGMENTS, strip_conf["matrix"]) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/matrix.py", line 35, in __init__ + segment_range = get_segment_range(segments, matrix[y_pos][x_pos][0]) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/matrix.py", line 8, in get_segment_range + start += segments[i] # Add number of leds in this segment to the start-index +IndexError: list index out of range + + +====close==== +Script exited with code 1 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 166, in + runtime = NeoRuntime(args.mode_path, args.mode_entry, args.strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 55, in __init__ + self.__strip = init_strip(strip_config_file) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 30, in init_strip + strip = Strip(strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/strip.py", line 45, in __init__ + self.pixelMatrix = Matrix(self.SEGMENTS, strip_conf["matrix"]) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/matrix.py", line 35, in __init__ + segment_range = get_segment_range(segments, matrix[y_pos][x_pos][0]) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/matrix.py", line 8, in get_segment_range + start += segments[i] # Add number of leds in this segment to the start-index +IndexError: list index out of range + + +====close==== +Script exited with code 1 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 166, in + runtime = NeoRuntime(args.mode_path, args.mode_entry, args.strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 55, in __init__ + self.__strip = init_strip(strip_config_file) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 30, in init_strip + strip = Strip(strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/strip.py", line 45, in __init__ + self.pixelMatrix = Matrix(self.SEGMENTS, strip_conf["matrix"]) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/matrix.py", line 35, in __init__ + segment_range = get_segment_range(segments, matrix[y_pos][x_pos][0]) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/matrix.py", line 8, in get_segment_range + start += segments[i] # Add number of leds in this segment to the start-index +IndexError: list index out of range + +====close==== +Script exited with code 1 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 166, in + runtime = NeoRuntime(args.mode_path, args.mode_entry, args.strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 55, in __init__ + self.__strip = init_strip(strip_config_file) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 30, in init_strip + strip = Strip(strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/strip.py", line 45, in __init__ + self.pixelMatrix = Matrix(self.SEGMENTS, strip_conf["matrix"]) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/matrix.py", line 35, in __init__ + segment_range = get_segment_range(segments, matrix[y_pos][x_pos][0]) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/matrix.py", line 8, in get_segment_range + start += segments[i] # Add number of leds in this segment to the start-index +IndexError: list index out of range + + +====close==== +Script exited with code 1 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 166, in + runtime = NeoRuntime(args.mode_path, args.mode_entry, args.strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 55, in __init__ + self.__strip = init_strip(strip_config_file) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 30, in init_strip + strip = Strip(strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/strip.py", line 45, in __init__ + self.pixelMatrix = Matrix(self.SEGMENTS, strip_conf["matrix"]) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/matrix.py", line 35, in __init__ + segment_range = get_segment_range(segments, matrix[y_pos][x_pos][0]) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/matrix.py", line 8, in get_segment_range + start += segments[i] # Add number of leds in this segment to the start-index +IndexError: list index out of range + + +====close==== +Script exited with code 1 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 166, in + runtime = NeoRuntime(args.mode_path, args.mode_entry, args.strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 55, in __init__ + self.__strip = init_strip(strip_config_file) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 30, in init_strip + strip = Strip(strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/strip.py", line 45, in __init__ + self.pixelMatrix = Matrix(self.SEGMENTS, strip_conf["matrix"]) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/matrix.py", line 35, in __init__ + segment_range = get_segment_range(segments, matrix[y_pos][x_pos][0]) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/matrix.py", line 8, in get_segment_range + start += segments[i] # Add number of leds in this segment to the start-index +IndexError: list index out of range + + +====close==== +Script exited with code 1 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 166, in + runtime = NeoRuntime(args.mode_path, args.mode_entry, args.strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 55, in __init__ + self.__strip = init_strip(strip_config_file) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 30, in init_strip + strip = Strip(strip_config) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/strip.py", line 45, in __init__ + self.pixelMatrix = Matrix(self.SEGMENTS, strip_conf["matrix"]) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/matrix.py", line 35, in __init__ + segment_range = get_segment_range(segments, matrix[y_pos][x_pos][0]) + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/luxcena_neo/matrix.py", line 8, in get_segment_range + start += segments[i] # Add number of leds in this segment to the start-index +IndexError: list index out of range + + +====close==== +Script exited with code 1 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin + +Color var changed: #ccff96 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin +Color var changed: #ccff96 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +> NeoRuntime exited... +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 68, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 78, in __command_listener_loop + if not self.__module_th.is_alive(): break +AttributeError: 'NoneType' object has no attribute 'is_alive' + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin + +Color var changed: #ccff96 +> NeoRuntime exited... +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 68, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 78, in __command_listener_loop + if not self.__module_th.is_alive(): break +AttributeError: 'NoneType' object has no attribute 'is_alive' + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +> NeoRuntime exited... +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 68, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 78, in __command_listener_loop + if not self.__module_th.is_alive(): break +AttributeError: 'NoneType' object has no attribute 'is_alive' + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +> NeoRuntime exited... +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 68, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 78, in __command_listener_loop + if not self.__module_th.is_alive(): break +AttributeError: 'NoneType' object has no attribute 'is_alive' + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin +Color var changed: #ccff96 + +> NeoRuntime exited... +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 68, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 78, in __command_listener_loop + if not self.__module_th.is_alive(): break +AttributeError: 'NoneType' object has no attribute 'is_alive' + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +> NeoRuntime exited... +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 69, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 79, in __command_listener_loop + if not self.__module_th.is_alive(): break +AttributeError: 'NoneType' object has no attribute 'is_alive' + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +> NeoRuntime exited... +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 69, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 79, in __command_listener_loop + if not self.__module_th.is_alive(): break +AttributeError: 'NoneType' object has no attribute 'is_alive' + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin +Color var changed: #ccff96 + +> NeoRuntime exited... +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 69, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 79, in __command_listener_loop + if not self.__module_th.is_alive(): break +AttributeError: 'NoneType' object has no attribute 'is_alive' + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +> NeoRuntime exited... +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 69, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 79, in __command_listener_loop + if not self.__module_th.is_alive(): break +AttributeError: 'NoneType' object has no attribute 'is_alive' + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin + +Color var changed: #ccff96 +> NeoRuntime exited... +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 69, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 79, in __command_listener_loop + if not self.__module_th.is_alive(): break +AttributeError: 'NoneType' object has no attribute 'is_alive' + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +> NeoRuntime exited... +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 69, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 79, in __command_listener_loop + if not self.__module_th.is_alive(): break +AttributeError: 'NoneType' object has no attribute 'is_alive' + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +> NeoRuntime exited... +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 69, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 79, in __command_listener_loop + if not self.__module_th.is_alive(): break +AttributeError: 'NoneType' object has no attribute 'is_alive' + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin +Color var changed: #ccff96 + +> NeoRuntime exited... +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 69, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 79, in __command_listener_loop + if not self.__module_th.is_alive(): break +AttributeError: 'NoneType' object has no attribute 'is_alive' + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +> NeoRuntime exited... +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 69, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 79, in __command_listener_loop + if not self.__module_th.is_alive(): break +AttributeError: 'NoneType' object has no attribute 'is_alive' + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin +Color var changed: #ccff96 + +> NeoRuntime exited... +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 69, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 79, in __command_listener_loop + if not self.__module_th.is_alive(): break +AttributeError: 'NoneType' object has no attribute 'is_alive' + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +> NeoRuntime exited... +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 69, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 79, in __command_listener_loop + if not self.__module_th.is_alive(): break +AttributeError: 'NoneType' object has no attribute 'is_alive' + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +> NeoRuntime exited... +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 69, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 79, in __command_listener_loop + if not self.__module_th.is_alive(): break +AttributeError: 'NoneType' object has no attribute 'is_alive' + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +> NeoRuntime exited... +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 69, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 79, in __command_listener_loop + if not self.__module_th.is_alive(): break +AttributeError: 'NoneType' object has no attribute 'is_alive' + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +> NeoRuntime exited... +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 69, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 79, in __command_listener_loop + if not self.__module_th.is_alive(): break +AttributeError: 'NoneType' object has no attribute 'is_alive' + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin +Color var changed: #ccff96 + +> NeoRuntime exited... +====stderr==== +Traceback (most recent call last): + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 69, in start + self.__command_listener_loop() + File "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/Runtime/neo_runtime.py", line 79, in __command_listener_loop + if not self.__module_th.is_alive(): break +AttributeError: 'NoneType' object has no attribute 'is_alive' + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +Exiting... +> NeoRuntime exited... + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... +====stdout==== + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... +====stdout==== +Script started, color: #ccff96 +====stdout==== +> Starting to listen on stdin + +Color var changed: #ccff96 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin +Color var changed: #ccff96 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin + +Color var changed: #ccff96 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin + +Color var changed: #ccff96 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin +Color var changed: #ccff96 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +> Starting to listen on stdin +Color var changed: #ccff96 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +> Starting to listen on stdinColor var changed: #ccff96 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin + +Color var changed: #ccff96 +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin +Color var changed: #ccff96 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96> Starting to listen on stdin + +Color var changed: #ccff96 + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ +> Initializing package (mode)... +> Running the mode... +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin +====stdout==== +Exiting... +> NeoRuntime exited... + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ + +====stdout==== +> Initializing package (mode)... + +====stdout==== +> Running the mode... +====stdout==== +> Starting to listen on stdin + +====stdout==== +Script started, color: #ccff96 +====stdout==== +Color var changed: #ccff96 + + +====stdout==== +Exiting... +> NeoRuntime exited... + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + +====stdout==== + * Generating matrix +====stdout==== + +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... + +====stdout==== +Script started, color: #ccff96 +Color var changed: #ccff96 + +====stdout==== +> Starting to listen on stdin +====stdout==== +Exiting... +> NeoRuntime exited... + + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + +====stdout==== + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ + +====stdout==== +> Initializing package (mode)... + +====stdout==== +> Running the mode... + +====stdout==== +Script started, color: #ccff96 +Color var changed: #ccff96 +> Starting to listen on stdin + +====stdout==== +Exiting... +> NeoRuntime exited... + + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + * Generating matrix +========================Matrix dump======================== + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 +============================================================ + +====stdout==== +> Initializing package (mode)... + +====stdout==== +> Running the mode... + +====stdout==== +Script started, color: #ccff96 +Color var changed: #ccff96 + +====stdout==== +> Starting to listen on stdin + +====stdout==== +Exiting... +> NeoRuntime exited... + + + +====stdout==== +StripConfig: /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/tmp/userdata/config/strip.ini +====stdout==== + +Module : /Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static/script +> Starting "/Users/jakobstendahl/_code/Personal projects/nodejs/Luxcena-Neo/NeoRuntime/builtin/static" in NeoRuntime. +> Loading pixel-configuration... + +====stdout==== + * Generating matrix +====stdout==== +========================Matrix dump======================== +====stdout==== + + 0 1 2 3 4 9 8 7 6 5 + 14 13 12 11 10 15 16 17 18 19 + +====stdout==== +============================================================ + +====stdout==== +> Initializing package (mode)... +====stdout==== +> Running the mode... + +====stdout==== +Color var changed: #ccff96 + +====stdout==== +Script started, color: #ccff96 + +====stdout==== +> Starting to listen on stdin + +====stdout==== +Exiting... +> NeoRuntime exited... + + diff --git a/NeoRuntime/builtin/static/script.py b/NeoRuntime/builtin/static/script.py new file mode 100644 index 0000000..0f07304 --- /dev/null +++ b/NeoRuntime/builtin/static/script.py @@ -0,0 +1,38 @@ +from luxcena_neo import NeoBehaviour, VariableType, utils +import time + +class Main(NeoBehaviour): + + def declare_variables(self): + self.vars.declare("color", "#fafafa", VariableType.COLOR, self.set_color) + + def on_start(self): + print(f"Script started, color: {self.vars.color}") + self.set_color(self.vars.color) + strip.power_on = True + # self.current_color = self.vars.color + + def set_color(self, value): + print(f"Color var changed: {value}") + # transition_color(self.current_color, value, 1) + +def lerp(a, b, u): + return (1 - u) * a + u * b + +def transition_color(start_color, end_color, duration): + start_color = utils.hex_to_rgb(start_color) + end_color = utils.hex_to_rgb(end_color) + interval = 10 + steps = duration / interval + step_u = 1.0 / steps + u = 0 + + while u < 1: + r = round(lerp(start_color[0], end_color[0], u)) + g = round(lerp(start_color[1], end_color[1], u)) + b = round(lerp(start_color[2], end_color[2], u)) + for i in len(strip.LED_COUNT): + strip.set_pixel_color(i, (r, g, b)) + strip.show() + + time.sleep(interval / 100) \ No newline at end of file diff --git a/NeoRuntime/builtin/strandtest/script.py b/NeoRuntime/builtin/strandtest/script.py new file mode 100644 index 0000000..f7d013a --- /dev/null +++ b/NeoRuntime/builtin/strandtest/script.py @@ -0,0 +1,76 @@ +from luxcena_neo import NeoBehaviour, util +import time + +def colorWipe(*color, wait_ms=50): + """Wipe color across display a pixel at a time.""" + for i in range(strip.num_pixels()): + strip.set_pixel_color(i, *color) + strip.show() + time.sleep(wait_ms/1000.0) + +def theaterChase(*color, wait_ms=50, iterations=10): + """Movie theater light style chaser animation.""" + for j in range(iterations): + for q in range(3): + for i in range(0, strip.num_pixels(), 3): + strip.set_pixel_color(i+q, *color) + strip.show() + time.sleep(wait_ms/1000.0) + for i in range(0, strip.num_pixels(), 3): + strip.set_pixel_color(i+q, 0) + +def wheel(pos): + """Generate rainbow colors across 0-255 positions.""" + if pos < 85: + return Color(pos * 3, 255 - pos * 3, 0) + elif pos < 170: + pos -= 85 + return Color(255 - pos * 3, 0, pos * 3) + else: + pos -= 170 + return Color(0, pos * 3, 255 - pos * 3) + +def rainbow(wait_ms=20, iterations=1): + """Draw rainbow that fades across all pixels at once.""" + for j in range(256*iterations): + for i in range(strip.num_pixels()): + strip.set_pixel_color(i, wheel((i+j) & 255)) + strip.show() + time.sleep(wait_ms/1000.0) + +def rainbowCycle(wait_ms=20, iterations=5): + """Draw rainbow that uniformly distributes itself across all pixels.""" + for j in range(256*iterations): + for i in range(strip.num_pixels()): + strip.set_pixel_color(i, wheel(((i * 256 / strip.num_pixels()) + j) & 255)) + strip.show() + time.sleep(wait_ms/1000.0) + +def theaterChaseRainbow(wait_ms=50): + """Rainbow movie theater light style chaser animation.""" + for j in range(256): + for q in range(3): + for i in range(0, strip.num_pixels(), 3): + strip.set_pixel_color(i+q, wheel((i+j) % 255)) + strip.show() + time.sleep(wait_ms/1000.0) + for i in range(0, strip.num_pixels(), 3): + strip.set_pixel_color(i+q, 0) + + +class Main(NeoBehaviour): + + def onStart(self): + # Do an endless loop with some default ixel test patterns + while True: + colorWipe(*(255, 0, 0)) # Red wipe + colorWipe(*(0, 255, 0)) # Blue wipe + colorWipe(*(0, 0, 255)) # Green wipe + + theaterChase(*(127, 127, 127)) # White theater chase + theaterChase(*(127, 0, 0)) # Red theater chase + theaterChase(*( 0, 0, 127)) # Blue theater chase + + rainbow() + rainbowCycle() + theaterChaseRainbow() \ No newline at end of file diff --git a/NeoRuntime/special/template_base/script.py b/NeoRuntime/special/template_base/script.py new file mode 100644 index 0000000..208a924 --- /dev/null +++ b/NeoRuntime/special/template_base/script.py @@ -0,0 +1,11 @@ +from luxcena_neo import NeoBehaviour + +class Main(NeoBehaviour): + + def on_start(self): + """ Execute when mode is selected. """ + print("Script started") + + def each_second(self): + """ Execute once every second. """ + print("A second has passed") \ No newline at end of file diff --git a/README.md b/README.md index 254b100..5ace3aa 100644 --- a/README.md +++ b/README.md @@ -12,5 +12,4 @@ To install, follow the guide here: [Install Luxcena-Neo](https://github.com/Jako The link there won't work on github, only when starting the software. So here is the link to the configuration-guide: [Configuring Luxcena-Neo](https://github.com/JakobST1n/Luxcena-Neo/blob/master/docs/Usage/Configuration.md) -## Issues -*There might still be a bit hard for someone not having spent hours looking at the source to use this software. But i assure you that it will be really easy to use shortly* +*SHOULD ADD RELATIVE PATH PROTECTION ON ALL PLACES USERS CAN ENTER PATHS.* \ No newline at end of file diff --git a/app.js b/app.js index a4d9651..0196645 100644 --- a/app.js +++ b/app.js @@ -1,264 +1,109 @@ let fse = require("fs-extra"); -let express = require("express"); -let http = require("http"); -let app = express(); -let server = http.createServer(app); -let io = require("socket.io").listen(server); +let events = require('events'); // Firstly we set up all globals, check that the usrData dir exists, if not, we run the setup -let srcDir = __dirname; -let installDir = "/home/lux-neo/" -if (process.argv.length >= 3) { installDir = process.argv[2]; } -let dataDir = installDir + "/userdata/"; -if (!fse.existsSync(dataDir)) { throw new Error("APPDIR not found! Exiting..."); } - -// Secondly we setup the logger, and the global access to "runtimeData"; a jSON-file containing some runtimeData -global.runtimeData = new (require("./src/runtimeData"))(dataDir); // This is a global registry that everyone can access data from, it is saved as JSON to file -global.log = (logString, logLevel) => { - let broadcastEntry = (rawEntry) => { io.sockets.emit("newLogEntry", rawEntry); }; - - fse.ensureFileSync(installDir + "/logs/logger.log"); - - let CDate = new Date(); - let timeStr = CDate.getDay() + "." + - CDate.getMonth() + "." + - CDate.getFullYear() + " " + - CDate.getHours().toString() + ":" + - CDate.getMinutes().toString() + ":" + - CDate.getSeconds().toString() + ":" + - CDate.getMilliseconds().toString(); - - try { - let logFileText = `\n[${timeStr}] ${logLevel.toUpperCase()} ${logString}`; - fse.appendFile(installDir + "/logs/logger.log", logFileText, (err) => { - if (err) throw err; - }); - } catch (e) { - let logFileText = `\n[${timeStr}] ERROR ${logString}; Additionally, something went wrong with the logger.`; - fse.appendFile(installDir + "/logs/logger.log", logFileText, (err) => { - if (err) throw err; - }); - } - broadcastEntry({ - time: timeStr, - type: logLevel.toUpperCase(), - details: logString - }); -}; - -global.log("Starting Luxcena-Neo...", "event"); - -// Generate all user-folders -fse.ensureDirSync(dataDir + "/"); -fse.ensureDirSync(dataDir + "/config/"); -fse.ensureDirSync(dataDir + "/usrCode/"); -fse.ensureDirSync(dataDir + "/remoteCode/"); -// Generate config-files -if (!fse.existsSync(dataDir + "/config/versionChecker.json")) { - fse.writeFileSync(dataDir + "/config/versionChecker.json", JSON.stringify({ - "branch": "dev", - "checkInterval": 5 - }, null, 4)); -} -if (!fse.existsSync(dataDir + "/config/strip.json")) { - fse.writeFileSync(dataDir + "/config/strip.json", JSON.stringify({ - "segments": [], - "matrix": [], - "segmentConfiguration": "snake", - "led_pin": 18, - "led_freq_hz": 800000, - "led_dma": 10, - "led_invert": false, - "led_channel": 0 - }, null, 4)); +let userDir = "/home/lux-neo"; +if (process.argv.length >= 3) { userDir = process.argv[2]; } +if (!fse.existsSync(userDir + "/userdata/")) { + console.log(`CRITICAL UserDir not found '${userDir}'! Exiting...`); + process.exit(1); } +// Global path variables +global.__basedir = __dirname + ""; +global.__datadir = userDir + "/userdata"; +global.__logdir = userDir + "/logs"; +// global eventEmitter +global.__event = new events.EventEmitter(); -// All the domain-things are now setup, we are ready to run our main program... -let versionChecker = require("./src/versionChecker")(dataDir + "/config/versionChecker.json", srcDir + "/package.json"); -let neoRuntime = require("./src/neoRuntime")(dataDir); - -// Setup static assets -app.use(express.static("public/assets")); -// Serve docs -app.use("/docs", express.static("docs/_book/")); -// Gave up using webpack to compile monaco, therefore, loading the already-compiled code. Probably the slowest way possible, but so it goes. -app.use("/monaco-editor", express.static("node_modules/monaco-editor/")); -// Setup all our custom middleware -app.use(require("./src/domain/middleware") ({ - srcDir: __dirname -})); +// Secondly we setup the logger, +let logger = require("./src/logger"); +logger.info("Starting Luxcena-Neo..."); -// SocketIo -io.on("connection", (client) => { +let neoModules = {}; +neoModules.userData = require("./src/UserData")(neoModules); +neoModules.SSLCert = require("./src/SSLCert")(neoModules); +neoModules.selfUpdater = require("./src/SelfUpdater")(neoModules); +neoModules.neoRuntimeManager = require("./src/NeoRuntimeManager")(neoModules); - client.on("UpdaterStatus", () => { - client.emit("updaterStatus", global.runtimeData.get("udpaterMessage")); - }); - - client.on("GetScripts", () => { - client.emit("updatedScriptList", neoRuntime.listScripts()); - client.emit("callback", { - success: true, - error: {}, - request: "GetScripts", - scriptList: neoRuntime.listScripts() - }); - }); +neoModules.neoRuntimeManager.mode.set(neoModules.userData.config.activeMode); - client.on("SelectScript", (arguments) => { - neoRuntime.selectScript(arguments["scriptPath"]); - client.emit("callback", { - success: true, - error: {}, - request: "SelectScript" - }); - }); - - client.on("DeleteScript", (arguments) => { - neoRuntime.deleteScript(arguments["scriptPath"]); - client.emit("callback", { - success: true, - error: {}, - request: "DeleteScript" - }); - }); - - client.on("CreateEmptyScript", (arguments) => { - neoRuntime.createEmptyScript(arguments["scriptName"]); - client.emit("callback", { - success: true, - error: {}, - request: "CreateEmptyScript" - }); - }); +// All the domain-things are now setup, we are ready to run our main program... +let express = require("express"); +let https = require("https"); +let app = express(); +let server = https.createServer({ + key: fse.readFileSync(__datadir + "/config/certs/privkey.pem"), + cert: fse.readFileSync(__datadir + "/config/certs/cert.pem") + }, + app +); +let io = require("socket.io")(server); +require("./src/SocketIO")(neoModules, io); +app.use("/", express.static(__basedir + "/public")); + +server.listen(neoModules.userData.config.HTTP.port, () => { + let host = server.address().address; + let port = server.address().port; + logger.info(`Webserver now listening at *:${port}`); +}); - client.on("NeoIde_GetScript", (arguments) => { - let script = neoRuntime.getScript(arguments["scriptPath"]); - if (!script) { - client.emit("callback", { - success: false, - error: {}, - request: "NeoIde_GetScript" - }); - } else { - client.emit("callback", { - success: true, - error: {}, - request: "NeoIde_GetScript", - data: { - script: script +/** + * Get a local network address + * + * @return {string} ip address + */ +function getNetworkAddress() { + const { networkInterfaces } = require('os'); + const nets = networkInterfaces(); + const results = Object.create(null); // Or just '{}', an empty object + for (const name of Object.keys(nets)) { + for (const net of nets[name]) { + // Skip over non-IPv4 and internal (i.e. 127.0.0.1) addresses + if (net.family === 'IPv4' && !net.internal) { + if (!results[name]) { + results[name] = []; } - }); - } - }); - - client.on("NeoIde_RunScript", (arguments) => { - neoRuntime.selectScript(arguments["scriptPath"]); - }); - - client.on("NeoIde_StopScript", (arguments) => { - let res = neoRuntime.stopScript(); - if (!res.success) { - client.emit("callback", { - success: false, - error: res.error, - request: "NeoIde_StopScript" - }) - } else { - client.emit("callback", { - success: true, - error: {}, - request: "NeoIde_StopScript" - }); + results[name].push(net.address); + } } - }); - - client.on("NeoIde_GetScriptOutput", (arguments) => { - let res = neoRuntime.getScriptOutput(arguments["scriptPath"]); - if (res.success) { - client.emit("callback", { - success: true, - request: "NeoIde_GetScriptOutput", - output: res.output - }) - } else { - client.emit("callback", { - success: false, - request: "NeoIde_GetScriptOutput", - error: res.error + } + if (Object.keys(results).length > 1) { + logger.info("Multiple network addresses found!!!") + } + return results[Object.keys(results)[0]][0] +} +function tryBroadcastSelf() { + if (neoModules.userData.config.DiscoveryServer.broadcastSelf) { + const data = JSON.stringify({ + address: `https://${getNetworkAddress()}:${neoModules.userData.config.HTTP.port}`, + name: neoModules.userData.config.instanceName, + widgetaddr: "/#/widget" }) - } - }); - - client.on("NeoIde_SaveScript", (arguments) => { - neoRuntime.saveScript(arguments.script, (res) => { - if (res.success) { - client.emit("callback", { - success : true, - error: {}, - request: "NeoIde_SaveScript" - }); - } else { - client.emit("callback", { - success : false, - error: res.error, - request: "NeoIde_SaveScript" - }); + const options = { + hostname: `${neoModules.userData.config.DiscoveryServer.address}`, + port: 443, + path: "/HEY", + method: "POST", + headers: { + "Content-Type": "application/json", + "Content-length": data.length } - }); - }); - - client.on("GetLog", (arguments) => { - let filter = null; - let reqEntryN = 10; - if (arguments.filter !== undefined) { filter = arguments.filter.split(' ').map(x => x.toUpperCase()); } - if (arguments.entryN !== undefined) { reqEntryN = arguments.entryN; } - - - fse.readFile(installDir + "/logs/logger.log", 'utf8', function (err, rawLog) { - if (err) { return global.log(err, "error"); } - - let logEntries = rawLog.split('\n').filter(n => n); - let collectedEntryN = 0; - let collectedEntries = []; - for (let i = logEntries.length - 1; i >= 0; i--) { - let entry = logEntries[i]; - if (entry === "") { continue; } - - let index1 = entry.indexOf("]"); - let time = entry.substring(1, index1 - 1); - let index2 = entry.indexOf(" ", index1 + 2); - let type = entry.substring(index1 + 2, index2); - let details = entry.substring(index2); - - if ( (filter == null) || filter.includes(type) ) { - collectedEntries.push({ - time : time, - type : type.toUpperCase(), - details : details - }); - - if ((collectedEntryN++) >= reqEntryN-1) { break; } - } - + }; + let req = https.request(options, res => { + if (res.statusCode != 200) { + res.on("data", (d) => logger.warning(d.toString())); + } else { + res.on("data", (d) => logger.info(d.toString())); + logger.info("Broadcasted self") } - - client.emit("lastLogEntries", collectedEntries); }); + req.on("error", (error) => logger.warning(error.toString())) + req.write(data); + req.end(); + } +} +// setInterval(tryBroadcastSelf, 30000); +// tryBroadcastSelf(); - }); - - client.on("GetGeneralInfo", () => { - client.emit("generalInfo", neoRuntime.status()); - }) - -}); - -server.listen(8080, () => { - let host = server.address().address; - let port = server.address().port; - global.log(`Webserver now listening at *:${port}`, "success"); -}); - -//setInterval(() => { global.log("I feel FANTASTIC, an I'm still alive. Uptime: " + neoRuntime.uptime(), "debug"); }, 5000); +// setInterval(() => { logger.notice("I feel FANTASTIC, an I'm still alive. Uptime: " + process.uptime()); }, 600000); diff --git a/bin/build.sh b/bin/build.sh new file mode 100644 index 0000000..6c10225 --- /dev/null +++ b/bin/build.sh @@ -0,0 +1,12 @@ +echo "> Install node modules needed for build" +NODE_ENV="development" +npm i + +echo "> Make sure all python dependencies for build is installed" +pip3 install mkdocs mkdocs-gitbook pygments pymdown-extensions + +echo "> Compile es6 and sass to bundles" +npx webpack -p + +echo "> Generate html docs using sphinx" +mkdocs build diff --git a/bin/runDev.sh b/bin/runDev.sh deleted file mode 100755 index e0e70bc..0000000 --- a/bin/runDev.sh +++ /dev/null @@ -1,12 +0,0 @@ -printf "%s\n" "> webpack" -npx webpack - -printf "%s\n" "> node app.js" -if [ "$#" -gt "1" ]; then - node app.js $1 -else - mkdir -p tmp - mkdir -p tmp/userdata - mkdir -p tmp/logs - node app.js "$PWD/tmp/" -fi diff --git a/docs/Code Documentation/Design/index.md b/docs/Code Documentation/Design/index.md new file mode 100644 index 0000000..5355af6 --- /dev/null +++ b/docs/Code Documentation/Design/index.md @@ -0,0 +1,4 @@ +# Design +We are using googles material design. + +[Link to the components](https://material.io/components/) diff --git a/docs/Code Documentation/Modules/CompileAndRun.md b/docs/Code Documentation/Modules/CompileAndRun.md new file mode 100644 index 0000000..535ed5f --- /dev/null +++ b/docs/Code Documentation/Modules/CompileAndRun.md @@ -0,0 +1,58 @@ +## Index +--- +## Locals + +### var `pythonSupportFiles` + +Points to the files for our python support code. They should be in a subdir of the module itself. + +## Exported + +### class `Python` + +This is exported as Python, just so that we could add other languages later. Used to build and run python-scripts with our support-code. + +### method `Python.constructor` + +Takes one parameter, which is the full path to the folder where the script is located. + +When initializing the class, this will be called. Can be done like this: + +```javascript +new compileRun.Python(global.DirSwap + "/usrData/usrCode/example"); +``` + +### method `Python.compile` + +This deletes old build-folder, and makes a new one. It then moves all required files into the build-folder, making us ready for running the script. + +### method `Python.run` + +Spawns a new process, starting entry.py in our build-folder. It also attaches event-listners on our class-object. All of them is in the example below: + +```javascript +let sc = new compileRun.Python(global.DirSwap + "/usrData/usrCode/example"); +​ +// When data is printed from the python-script +sc.on("stdout::data", (_stdout) => { }); +// Last write when script closes, any exiting messages +sc.on("stdout::end", (_stdout) => { }); +// When something is printed from the python-script to the error-out. Usually when a `throw` is called +sc.on("stderr::out", (_stderr) => { }); +// Last words when process is dying from an error :`( +sc.on("stderr::end", (_stderr) => { }); +// When script exits, _code is the exit-code +sc.on("close", (_code) => { }); +``` + +## Python + +This is the support-files for user-made scripts. + +## Entry.py + +The entry-point when running a script. A file called script.py, containing the user-script, should be placed next to this file. Starting it should be done like this (Where app-root is where our app.js is located): + +``` +python entry.py +``` diff --git a/docs/Code Documentation/Run/index.md b/docs/Code Documentation/Run/index.md new file mode 100644 index 0000000..54031d1 --- /dev/null +++ b/docs/Code Documentation/Run/index.md @@ -0,0 +1,79 @@ +# Run when developing +I have made a simple script, that can be run both on a rPI and a normal computer. +(You will obviously not get any script to do anything on you pc) + +I have only tested this on my mac... + +To start it run: +```bash +npm run dev +``` +You have to run these commands beforehand: +```bash +npm i +pip3 install mkdocs mkdocs-gitbook pygments pymdown-extensions +``` + +!!! warning "Starting" + It will when starting freak out a little. All the filewatchers fires an event for every file, + they find for some reason. But node should be killed each time, and when you end up with + only two processes, it should work as you'd expect. + +This will create a folder named `tmp` in you working directory. where all the user-files will be stored. + +## Build watcher. +It starts to watch these directories: +``` +- /build/ +``` +If a change is detected, it runs: +```bash +mkdocs build +``` + +## Node watcher +It starts to watch these directories: +``` +- src/ (Except /src/public/ and /src/js/) +- app.js +``` + +It then shuts down node and starts it again: +```bash +node app.js /tmp/ +``` + +## webpack +It just starts this command, witch rebundles when anything is changed: +```bash +npx webpack -p -w --mode=development +``` + +## Inteface +- `fsWatch`-window: logs when one of the watchers (not webpack obv.) detects a filesystem-change. `NODE` means node-watcher, and `DOCS` means docs-watcher. +- `Actions`-window: Logs all events with processes, like starting one, when one exits, when we try to kill one etc. +- `Node`-window: Shows the output of node. +- `mkDocs`-window: Show the output from running mkDocs. +- `Active Processes`-table: Shows a table of currently active processes started by the app. Use arrow keys to navigate it. +- `Webpack`-window: Shows the output from our webpack-process. +!!! tip + All the log-windows respond to holding your cursor over and scrolling. + +### `Exit` +The script will exit when pressing `q`, `s`, `escape`, `Control+c`. +It will then send a kill signal to all processes, wait 10 seconds and then exit. + +## Edit file-watchers. +Each of the file-watchers have explanatory names: `watcher_node` and `watcher_docs`. + +To add files or paths they should watch, find the init of the variable, and modify that code: +```javascript +e.g. +let; watcher_node = chokidar.watch([ + "app.js", + 'src/' // Add new entrys here + +]).on('all', (event, path) => { // ... +``` + +For the node-watcher, specify paths it should ignore in the `path.includes` block. diff --git a/docs/Code Documentation/SocketIO.md b/docs/Code Documentation/SocketIO.md new file mode 100644 index 0000000..b605857 --- /dev/null +++ b/docs/Code Documentation/SocketIO.md @@ -0,0 +1,116 @@ +# SocketIO + +## Client +Socketio is setup in the file `globals`. +This means, import `globals`, and then you can use `Socket` from there. + +### Connect +1. Client first needs to get an Authentication token, + this can be obtained by doing this: + ```javascript + import {setCookie} from "../../../cookies"; + let CryptoJS = require("crypto-js"); + let passwordHash = CryptoJS.SHA256(;).toString(); + + Socket.emit("authenticate", , passwordHash, (token) => { + // Token will be a string if username/password combo is right, + // if not, it is false. + setCookie("session_token", token, 500); + };) + ``` +2. Then the user can authenticate like this: + ```javascript + import {getCookie} from "../../../cookies"; + let cookieToken = getCookie("session_token"); + + Socket.emit("authenticateToken", cookieToken, (res) => { + // Res is true if we got authenticated, + // If not, it is false. + }); + ``` +3. We are now authenticated, and all actions and events are available to the client. + +### "Actions" +```javascript +Socket.emit(Action, *Arguments, (Return) => { +};) +``` + +##### NeoRuntime/status + + +| Name | Type | Description | +| ------ | ------ | ----------- | +| status | object | | + +??? info "Return/status" + + | Name | Type | Description | + | -------------- | ------- | ----------------------------- | + | currentScript | string | "None"/Name of current script | + | scriptIsExited | boolean | | + | uptime | number | | + +##### NeoRuntime/Script/Create + +??? info "Arguments" + + | Name | Type | Description | + | ---------- | ------ | ------------------------------------- | + | scriptPath | string | Path of the new script, local/example | + +??? info "Return" + + | Name | Type | Description | + | ------ | ------- | --------------------- | + | res | boolean | success | + | resMsg | string | if fail, errorMessage | + + +##### NeoRuntime/Script/Delete + +??? info "Arguments" + + | Name | Type | Description | + | ---------- | ------ | ------------------------------------------- | + | scriptPath | string | Path of the script to delete, local/example | + +??? info "Return" + + | Name | Type | Description | + | ------ | ------- | --------------------- | + | res | boolean | success | + | resMsg | string | if fail, errorMessage | + +##### NeoRuntime/Script/Select + +??? info "Arguments" + + | Name | Type | Description | + | ---------- | ------ | ------------------------------------------ | + | scriptPath | string | Path of the script to start, local/example | + +##### NeoRuntime/Scripts/get + +??? info "Return" + + | Name | Type | Description | + | ------ | ------- | --------------------- | + | local | list | local scripts | + | remote | list | remote scripts | + +### "Events" +```javascript +// Listen for a event +Socket.emit(event + "::join"); +Socket.on(event, (*Return); => { + +}) +``` +```javascript +// Stop listening for an event +Socket.emit(event + "::leave") +``` + + +## Server diff --git a/docs/Contributing/Modules/CompileAndRun.md b/docs/Contributing/Modules/CompileAndRun.md deleted file mode 100644 index 535ed5f..0000000 --- a/docs/Contributing/Modules/CompileAndRun.md +++ /dev/null @@ -1,58 +0,0 @@ -## Index ---- -## Locals - -### var `pythonSupportFiles` - -Points to the files for our python support code. They should be in a subdir of the module itself. - -## Exported - -### class `Python` - -This is exported as Python, just so that we could add other languages later. Used to build and run python-scripts with our support-code. - -### method `Python.constructor` - -Takes one parameter, which is the full path to the folder where the script is located. - -When initializing the class, this will be called. Can be done like this: - -```javascript -new compileRun.Python(global.DirSwap + "/usrData/usrCode/example"); -``` - -### method `Python.compile` - -This deletes old build-folder, and makes a new one. It then moves all required files into the build-folder, making us ready for running the script. - -### method `Python.run` - -Spawns a new process, starting entry.py in our build-folder. It also attaches event-listners on our class-object. All of them is in the example below: - -```javascript -let sc = new compileRun.Python(global.DirSwap + "/usrData/usrCode/example"); -​ -// When data is printed from the python-script -sc.on("stdout::data", (_stdout) => { }); -// Last write when script closes, any exiting messages -sc.on("stdout::end", (_stdout) => { }); -// When something is printed from the python-script to the error-out. Usually when a `throw` is called -sc.on("stderr::out", (_stderr) => { }); -// Last words when process is dying from an error :`( -sc.on("stderr::end", (_stderr) => { }); -// When script exits, _code is the exit-code -sc.on("close", (_code) => { }); -``` - -## Python - -This is the support-files for user-made scripts. - -## Entry.py - -The entry-point when running a script. A file called script.py, containing the user-script, should be placed next to this file. Starting it should be done like this (Where app-root is where our app.js is located): - -``` -python entry.py -``` diff --git a/docs/FuturePlan.md b/docs/FuturePlan.md new file mode 100644 index 0000000..9448397 --- /dev/null +++ b/docs/FuturePlan.md @@ -0,0 +1,23 @@ +# Plans for the future + +## Planned and implemented +* [ ] Add authentication to our middelware. +* [ ] Make service worker cache bundles localy on client, and use a spinner when loading them. PWA. + * [ ] Do some kind of code-splitting as well here. +* Socketio + * [X] Make all action respond to the client, so that it knows wether the action was a success or not. + * [ ] ~~Make timout thing.~~ + * [ ] Make logout function +* Editor + * [ ] Add intellisense for `neo_behaviour` + * [ ] Make alternative to scripting, something like mindstorms or scratch block-coding, (blockly). +* [ ] Setup GitHub pages + * https://www.mkdocs.org/user-guide/deploying-your-docs/ +* [X] Make update-button + * [X] Think about making it auto-update. + +## Ideas that might get implemented at some point in time +* Make a ws281x-library that doesn't require root. +* Check OS security-patch setup +* Get diff-thingy on local scripts/ Git tracking +* Maybe add a rest API diff --git a/docs/README.md b/docs/README.md deleted file mode 100644 index 6dea371..0000000 --- a/docs/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Luxcena-Neo -Dependencies [![dependencies Status](https://david-dm.org/jakobst1n/luxcena-neo/dev/status.svg)](https://david-dm.org/jakobst1n/luxcena-neo)[![devDependencies Status](https://david-dm.org/jakobst1n/luxcena-neo/dev/dev-status.svg)](https://david-dm.org/jakobst1n/luxcena-neo?type=dev) - -Branch (dev) [![dependencies Status](https://david-dm.org/jakobst1n/luxcena-neo/dev/status.svg)](https://david-dm.org/jakobst1n/luxcena-neo/dev)[![devDependencies Status](https://david-dm.org/jakobst1n/luxcena-neo/dev/dev-status.svg)](https://david-dm.org/jakobst1n/luxcena-neo/dev?type=dev) - - -## Install -Please refer to this guide for installing: [Install Luxcena-neo](Usage/Install.md). -## Issues -*There might still be a bit hard for someone not having spent hours looking at the source to use this software. -But i assure you that it will be really easy to use shortly* diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md deleted file mode 100644 index d99bf4f..0000000 --- a/docs/SUMMARY.md +++ /dev/null @@ -1,14 +0,0 @@ -# Summary - -* [Introduction](README.md) -* [Usage](Usage/README.md) - * [Install](Usage/Install.md) - * [Configuration](Usage/Configuration.md) - * [CLI](Usage/CLI.md) -* Scripting - * [Support Library](Scripting\SupportLib/README.md) - * Examples - * [Strandtest](Scripting\Examples/strandtest.md) -* Contributing - * Modules - * [CompileAndRun](Contributing/Modules/CompileAndRun.md) diff --git a/docs/Scripting/Examples/strandtest.md b/docs/Scripting/Examples/strandtest.md deleted file mode 100644 index 89173d3..0000000 --- a/docs/Scripting/Examples/strandtest.md +++ /dev/null @@ -1,90 +0,0 @@ -# Strandtest - ---- -This script just does some fancy patterns to show of the neopixels' capabilities. -Runs in an endless loop, take a look at the code to see what it does more -precisely. - -```Python -import LuxcenaNeo as neo # Can be imported as LuxcenaNeo as well. but anything else and it will fail... -import time - -def colorWipe(color, wait_ms=50): - """Wipe color across display a pixel at a time.""" - for i in range(neo.strip.numPixels()): - neo.strip.setPixelColor(i, color) - neo.strip.show() - time.sleep(wait_ms/1000.0) - -def theaterChase(color, wait_ms=50, iterations=10): - """Movie theater light style chaser animation.""" - for j in range(iterations): - for q in range(3): - for i in range(0, neo.strip.numPixels(), 3): - neo.strip.setPixelColor(i+q, color) - neo.strip.show() - time.sleep(wait_ms/1000.0) - for i in range(0, neo.strip.numPixels(), 3): - neo.strip.setPixelColor(i+q, 0) - -def wheel(pos): - """Generate rainbow colors across 0-255 positions.""" - if pos < 85: - return neo.Color(pos * 3, 255 - pos * 3, 0) - elif pos < 170: - pos -= 85 - return neo.Color(255 - pos * 3, 0, pos * 3) - else: - pos -= 170 - return neo.Color(0, pos * 3, 255 - pos * 3) - -def rainbow(wait_ms=20, iterations=1): - """Draw rainbow that fades across all pixels at once.""" - for j in range(256*iterations): - for i in range(neo.strip.numPixels()): - neo.strip.setPixelColor(i, wheel((i+j) & 255)) - neo.strip.show() - time.sleep(wait_ms/1000.0) - -def rainbowCycle(wait_ms=20, iterations=5): - """Draw rainbow that uniformly distributes itself across all pixels.""" - for j in range(256*iterations): - for i in range(strip.numPixels()): - neo,strip.setPixelColor(i, wheel(((i * 256 / neo.strip.numPixels()) + j) & 255)) - neo.strip.show() - time.sleep(wait_ms/1000.0) - -def theaterChaseRainbow(wait_ms=50): - """Rainbow movie theater light style chaser animation.""" - for j in range(256): - for q in range(3): - for i in range(0, neo.strip.numPixels(), 3): - neo.strip.setPixelColor(i+q, wheel((i+j) % 255)) - neo.strip.show() - time.sleep(wait_ms/1000.0) - for i in range(0, neo.strip.numPixels(), 3): - neo.strip.setPixelColor(i+q, 0) - - -class Main(neo.NeoBehaviour): - - def onStart(self): - # Change the brightness of the strip - neo.strip.setBrightness(100) - - # Do an endless loop with some default neopixel test patterns - while True: - colorWipe(neo.Color(255, 0, 0)) # Red wipe - colorWipe(neo.Color(0, 255, 0)) # Blue wipe - colorWipe(neo.Color(0, 0, 255)) # Green wipe - - theaterChase(neo.Color(127, 127, 127)) # White theater chase - theaterChase(neo.Color(127, 0, 0)) # Red theater chase - theaterChase(neo.Color( 0, 0, 127)) # Blue theater chase - - rainbow() - rainbowCycle() - theaterChaseRainbow() - - -``` diff --git a/docs/Scripting/SupportLib/README.md b/docs/Scripting/SupportLib/README.md index 537a6ba..92f69c4 100644 --- a/docs/Scripting/SupportLib/README.md +++ b/docs/Scripting/SupportLib/README.md @@ -6,61 +6,59 @@ This is the object you are refeering to when you want to do things with LED's. You shouldn't have to do instantiate your own new strip-object as you can use the one set up by the software itself. -```python -LuxcenaNeo.strip -or -neo.strip -``` -### Strip.show() +### strip.show() Display all the changes made to the LEDs, on the actual LEDs. -### Strip.setPixelColor(`n`, `color`) +### strip.set_pixel_color(`n`, `*color`) Set LED at position n to the provided 24-bit color value (in RGB order). -### Strip.setPixelColorXY(`x`, `y`, `color`) +### strip.set_pixel_color_XY(`x`, `y`, `*color`) Set LED at position (x, y) in the defined matrix to the provided 24-bit color value (in RGB order). -### Strip.setPixelColorRGB(`n`, `red`, `green`, `blue`, `white = 0`) -Set LED at position n to the provided red, green, and blue color. -Each color component should be a value from 0 to 255 (where 0 is the -lowest intensity and 255 is the highest intensity). - -### Strip.setPixelColorXYRGB(`x`, `y`, `red`, `green`, `blue`, `white = 0`) -Set LED at position (x, y) in the defined matrix to the provided red, green, and blue color. -Each color component should be a value from 0 to 255 (where 0 is the -lowest intensity and 255 is the highest intensity). - -### Strip.setSegmentColorRGB(`segment`, `red`, `green`, `blue`, `white = 0`) +### strip.set_segment_color(`segment`, `*color`) Set a whole segment to the provided red, green and blue color. Each color component should be a value from 0 to 255 (where 0 is the lowest intensity and 255 is the highest intensity). -### Strip.setBrightness(`brightness`) -Scale each LED in the buffer by the provided brightness. A brightness -of 0 is the darkest and 255 is the brightest. - -### Strip.getBrightness(): -Get the brightness value for each LED in the buffer. A brightness -of 0 is the darkest and 255 is the brightest. - -### Strip.getPixels(): +### strip.get_pixels(): Return an object which allows access to the LED display data as if it were a sequence of 24-bit RGB values. -### Strip.numPixels(): +### strip.num_pixels(): Return the number of pixels in the display. -### Strip.getPixelColor(`n`) +### strip.get_pixel_color(`n`) Get the 24-bit RGB color value for the LED at position n. +## `*color`` +All functions that take in this, will automatically parse the value provided. + +If parameter is only a str, it will be treated as a hex value. e.g. `set_pixel_color(0, "#fafafa")` +If parameter is a tuple, the first three items in that tuple will be treated as a rgb value. e.g. `set_pixel_color(0, (255, 238, 10))` +If parameter is a int, it will be treated as a 24-bit color value. e.g. `set_pixel_color(0, 2812873)` +If there are 3 parameters, these will be treated as a rgb value. e.g. `set_pixel_color(0, 255, 238, 10)` +This means that all of these have the same effect: +``` +set_pixel_color(0, "#fafafa") +set_pixel_color(0, 16448250) +set_pixel_color(0, 250, 250, 250) +set_pixel_color(0, (250, 250, 250)) +``` + --- -## Color(`red`, `green`, `blue`, `white = 0`) -Convert the provided red, green, blue color to a 24-bit color value. -Each color component should be a value 0-255 where 0 is the lowest intensity -and 255 is the highest intensity. +These are in `utils`, can be imported with `from luxcena_neo import utils`. + +## utils.hex_to_rgb(`value`) +Convert provided hex color to a tuple with rgb colors. (r, g, b). + +## utils.rgb_to_hex(`rgb`) +Converts rgb colors in tuple to hex string. + +## utils.rgb_from_24bit(`color`) +Takes a 24bit color value and returns a rgb tuple. -## hexColor(`value`) -Convert the provided hexadecimal color to a 24-bit color value. +## utils.rgb_from_24bit(`color`) +Takes a 24bit color value and returns a hex string. diff --git a/docs/Usage/CLI.md b/docs/Usage/CLI.md index 6052193..979521a 100644 --- a/docs/Usage/CLI.md +++ b/docs/Usage/CLI.md @@ -9,9 +9,8 @@ or is alias ```bash $ lux-neo ``` -{% hint style='danger' %} -This CLI assumes root access, so please run it with `sudo` -{% endhint %} +!!! danger "Important!" + This CLI assumes root access, so please run it with `sudo` ## Options ### `sudo lux-neo uninstall` @@ -93,4 +92,5 @@ Luxcena-neo-cli [args: 'version'] ### `sudo lux-neo selectBranch ` This will change what branch you are on to . Stashing changes (shouldn't be a concern, but just saying it anyways). -*Please note that the version-checker now will just be useless, as it does not now what branch we really are on.* +!!! note + Please note that the version-checker now will just be useless, as it does not now what branch we really are on. diff --git a/docs/Usage/Configuration.md b/docs/Usage/Configuration.md index f13d639..c715a75 100644 --- a/docs/Usage/Configuration.md +++ b/docs/Usage/Configuration.md @@ -22,9 +22,9 @@ When running the command above, a config file should appear in the editor 'nano' "led_channel": 0 } ``` -{% hint style='tip' %} -If you rather want to use vim or another editor, the file is at `/home/lux-neo/userdata/config/strip.json` -{% endhint %} + +??? tip "Tip - Change editor" + If you rather want to use vim or another editor, the file is at `/home/lux-neo/userdata/config/strip.json` ## led_count @@ -49,15 +49,15 @@ This is a two dimensonal array, used to arrange the segments in a matrix of your ] ``` Each entry looks is a list, with two parameters, `[, ]` -{% hint style='danger' %} -If you don't have a reference to all the segments or something, the matrix setup will fail. And fall back to 'segmentsconfiguration' -{% endhint %} +!!! danger "Warning" + If you don't have a reference to all the segments or something, the matrix setup will fail. And fall back to 'segmentsconfiguration' + ## segmentconfiguration If the matrix-option is empty or badly setup. The matrix will be set up using one of these defaults: -``` +```json "snake": "line": "random": @@ -67,9 +67,9 @@ If the matrix-option is empty or badly setup. The matrix will be set up using on If using the luxcena-shield, you shouldn't have to worry about this option. But set it to the GPIO-port connected to your pixel's din-port. ## led_dma -{% hint style='danger' %} -If using a newer RPi (3 or newer), leave this as 10! Or your file-system might crash. -{% endhint %} +!!! danger "Warning" + If using a newer RPi (3 or newer), leave this as 10! Or your file-system might crash. + This is the dma-channel used to generate the data-stream. If you for some reason need channel 10 for something else, you can change it. But i strongly recommend leaving it to 10! ## led_invert diff --git a/docs/Usage/Install.md b/docs/Usage/Install.md index 5f19d39..b9a48ee 100644 --- a/docs/Usage/Install.md +++ b/docs/Usage/Install.md @@ -13,21 +13,23 @@ If you want to install luxcena-neo to use it, these are the instructions: 1. Start with logging into your Raspberry Pi 2. Run these commands ```bash -$ git clone https://github.com/JakobST1n/Luxcena-Neo -$ cd Luxcena-Neo -$ sudo ./bin/install.sh +git clone https://github.com/JakobST1n/Luxcena-Neo +cd Luxcena-Neo +sudo ./bin/install.sh ``` 3. Follow the instructions on screen. You should answer yes to most of the questions. 4. The install-process might seem to hang, but there is just no output being sent to the console. If you want to see a bit more verbose output. Open another terminal session, and run this command: ```bash -$ tail -n 10 -f /tmp/luxcena-neo.install.log +tail -n 10 -f /tmp/luxcena-neo.install.log ``` This is also where you will find possible reasons for a failed install. 4. Luxcena-Neo should now be installed. Start it with this command ```bash -$ luxcena-neo start +luxcena-neo start ``` +!!! Default User "neo":"luxcena-neo" + ## Troubleshooting We haven't encountered any troubles yet, but once we do, we will post fix'es here. diff --git a/docs/Usage/README.md b/docs/Usage/README.md deleted file mode 100644 index ce62034..0000000 --- a/docs/Usage/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Usage - - -## [Install](/Usage/Install.md) -Want to install luxcena-neo? This is the guide! - -## [Configuration](/Usage/Configuration.md) -Just installed luxcena-neo, or you have changed your setup? This is the guide! - -## [CLI](/Usage/CLI.md) -Ready to start the thing? Or change something? diff --git a/docs/_book/Contributing/Modules/CompileAndRun.html b/docs/_book/Contributing/Modules/CompileAndRun.html deleted file mode 100644 index 8cc982c..0000000 --- a/docs/_book/Contributing/Modules/CompileAndRun.html +++ /dev/null @@ -1,477 +0,0 @@ - - - - - - - CompileAndRun · Luxcena-Neo wiki - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - -
- -
- -
- - - - - - - - -
-
- -
-
- -
- -

Index

-
-

Locals

-

var pythonSupportFiles

-

Points to the files for our python support code. They should be in a subdir of the module itself.

-

Exported

-

class Python

-

This is exported as Python, just so that we could add other languages later. Used to build and run python-scripts with our support-code.

-

method Python.constructor

-

Takes one parameter, which is the full path to the folder where the script is located.

-

When initializing the class, this will be called. Can be done like this:

-
new compileRun.Python(global.DirSwap + "/usrData/usrCode/example");
-
-

method Python.compile

-

This deletes old build-folder, and makes a new one. It then moves all required files into the build-folder, making us ready for running the script.

-

method Python.run

-

Spawns a new process, starting entry.py in our build-folder. It also attaches event-listners on our class-object. All of them is in the example below:

-
let sc = new compileRun.Python(global.DirSwap + "/usrData/usrCode/example");
-​
-// When data is printed from the python-script
-sc.on("stdout::data", (_stdout) => { });
-// Last write when script closes, any exiting messages
-sc.on("stdout::end", (_stdout) => { });
-// When something is printed from the python-script to the error-out. Usually when a `throw` is called
-sc.on("stderr::out", (_stderr) => { });
-// Last words when process is dying from an error :`(
-sc.on("stderr::end", (_stderr) => { });
-// When script exits, _code is the exit-code
-sc.on("close", (_code) => { });
-
-

Python

-

This is the support-files for user-made scripts.

-

Entry.py

-

The entry-point when running a script. A file called script.py, containing the user-script, should be placed next to this file. Starting it should be done like this (Where app-root is where our app.js is located):

-
python entry.py <pathToAppRoot>
-
- -
- -
-
-
- -

results matching ""

-
    - -
    -
    - -

    No results matching ""

    - -
    -
    -
    - -
    -
    - -
    - - - - - - -
    - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/_book/Scripting/Examples/strandtest.html b/docs/_book/Scripting/Examples/strandtest.html deleted file mode 100644 index e5ad40a..0000000 --- a/docs/_book/Scripting/Examples/strandtest.html +++ /dev/null @@ -1,527 +0,0 @@ - - - - - - - Strandtest · Luxcena-Neo wiki - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - - - - - - - - -
    - -
    - -
    - - - - - - - - -
    -
    - -
    -
    - -
    - -

    Strandtest

    -
    -

    This script just does some fancy patterns to show of the neopixels' capabilities. -Runs in an endless loop, take a look at the code to see what it does more -precisely.

    -
    import LuxcenaNeo as neo  # Can be imported as LuxcenaNeo as well. but anything else and it will fail...
    -import time
    -
    -def colorWipe(color, wait_ms=50):
    -    """Wipe color across display a pixel at a time."""
    -    for i in range(neo.strip.numPixels()):
    -        neo.strip.setPixelColor(i, color)
    -        neo.strip.show()
    -        time.sleep(wait_ms/1000.0)
    -
    -def theaterChase(color, wait_ms=50, iterations=10):
    -    """Movie theater light style chaser animation."""
    -    for j in range(iterations):
    -        for q in range(3):
    -            for i in range(0, neo.strip.numPixels(), 3):
    -                neo.strip.setPixelColor(i+q, color)
    -            neo.strip.show()
    -            time.sleep(wait_ms/1000.0)
    -            for i in range(0, neo.strip.numPixels(), 3):
    -                neo.strip.setPixelColor(i+q, 0)
    -
    -def wheel(pos):
    -    """Generate rainbow colors across 0-255 positions."""
    -    if pos < 85:
    -        return neo.Color(pos * 3, 255 - pos * 3, 0)
    -    elif pos < 170:
    -        pos -= 85
    -        return neo.Color(255 - pos * 3, 0, pos * 3)
    -    else:
    -        pos -= 170
    -        return neo.Color(0, pos * 3, 255 - pos * 3)
    -
    -def rainbow(wait_ms=20, iterations=1):
    -    """Draw rainbow that fades across all pixels at once."""
    -    for j in range(256*iterations):
    -        for i in range(neo.strip.numPixels()):
    -            neo.strip.setPixelColor(i, wheel((i+j) & 255))
    -        neo.strip.show()
    -        time.sleep(wait_ms/1000.0)
    -
    -def rainbowCycle(wait_ms=20, iterations=5):
    -    """Draw rainbow that uniformly distributes itself across all pixels."""
    -    for j in range(256*iterations):
    -        for i in range(strip.numPixels()):
    -            neo,strip.setPixelColor(i, wheel(((i * 256 / neo.strip.numPixels()) + j) & 255))
    -        neo.strip.show()
    -        time.sleep(wait_ms/1000.0)
    -
    -def theaterChaseRainbow(wait_ms=50):
    -    """Rainbow movie theater light style chaser animation."""
    -    for j in range(256):
    -        for q in range(3):
    -            for i in range(0, neo.strip.numPixels(), 3):
    -                neo.strip.setPixelColor(i+q, wheel((i+j) % 255))
    -            neo.strip.show()
    -            time.sleep(wait_ms/1000.0)
    -            for i in range(0, neo.strip.numPixels(), 3):
    -                neo.strip.setPixelColor(i+q, 0)
    -
    -
    -class Main(neo.NeoBehaviour):
    -
    -    def onStart(self):
    -        # Change the brightness of the strip
    -        neo.strip.setBrightness(100)
    -
    -        # Do an endless loop with some default neopixel test patterns
    -        while True:
    -            colorWipe(neo.Color(255, 0, 0))  # Red wipe
    -            colorWipe(neo.Color(0, 255, 0))  # Blue wipe
    -            colorWipe(neo.Color(0, 0, 255))  # Green wipe
    -
    -            theaterChase(neo.Color(127, 127, 127))  # White theater chase
    -            theaterChase(neo.Color(127,   0,   0))  # Red theater chase
    -            theaterChase(neo.Color(  0,   0, 127))  # Blue theater chase
    -
    -            rainbow()
    -            rainbowCycle()
    -            theaterChaseRainbow()
    -
    - - -
    - -
    -
    -
    - -

    results matching ""

    -
      - -
      -
      - -

      No results matching ""

      - -
      -
      -
      - -
      -
      - -
      - - - - - - -
      - - -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/_book/Scripting/SupportLib/index.html b/docs/_book/Scripting/SupportLib/index.html deleted file mode 100644 index b5688b9..0000000 --- a/docs/_book/Scripting/SupportLib/index.html +++ /dev/null @@ -1,490 +0,0 @@ - - - - - - - Support Library · Luxcena-Neo wiki - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      -
      - - - - - - - - -
      - -
      - -
      - - - - - - - - -
      -
      - -
      -
      - -
      - -

      Support Library

      -
      -

      class Strip

      -

      This is the object you are refeering to when you want to do things with LED's. -You shouldn't have to do instantiate your own new strip-object as you can use the one -set up by the software itself.

      -
      LuxcenaNeo.strip
      -or
      -neo.strip
      -
      -

      Strip.show()

      -

      Display all the changes made to the LEDs, on the actual LEDs.

      -

      Strip.setPixelColor(n, color)

      -

      Set LED at position n to the provided 24-bit color value (in RGB order).

      -

      Strip.setPixelColorXY(x, y, color)

      -

      Set LED at position (x, y) in the defined matrix to the provided 24-bit color value (in RGB order).

      -

      Strip.setPixelColorRGB(n, red, green, blue, white = 0)

      -

      Set LED at position n to the provided red, green, and blue color. -Each color component should be a value from 0 to 255 (where 0 is the -lowest intensity and 255 is the highest intensity).

      -

      Strip.setPixelColorXYRGB(x, y, red, green, blue, white = 0)

      -

      Set LED at position (x, y) in the defined matrix to the provided red, green, and blue color. -Each color component should be a value from 0 to 255 (where 0 is the -lowest intensity and 255 is the highest intensity).

      -

      Strip.setSegmentColorRGB(segment, red, green, blue, white = 0)

      -

      Set a whole segment to the provided red, green and blue color. -Each color component should be a value from 0 to 255 (where 0 is the -lowest intensity and 255 is the highest intensity).

      -

      Strip.setBrightness(brightness)

      -

      Scale each LED in the buffer by the provided brightness. A brightness -of 0 is the darkest and 255 is the brightest.

      -

      Strip.getBrightness():

      -

      Get the brightness value for each LED in the buffer. A brightness -of 0 is the darkest and 255 is the brightest.

      -

      Strip.getPixels():

      -

      Return an object which allows access to the LED display data as if -it were a sequence of 24-bit RGB values.

      -

      Strip.numPixels():

      -

      Return the number of pixels in the display.

      -

      Strip.getPixelColor(n)

      -

      Get the 24-bit RGB color value for the LED at position n.

      -
      -

      Color(red, green, blue, white = 0)

      -

      Convert the provided red, green, blue color to a 24-bit color value. -Each color component should be a value 0-255 where 0 is the lowest intensity -and 255 is the highest intensity.

      -

      hexColor(value)

      -

      Convert the provided hexadecimal color to a 24-bit color value.

      - - -
      - -
      -
      -
      - -

      results matching ""

      -
        - -
        -
        - -

        No results matching ""

        - -
        -
        -
        - -
        -
        - -
        - - - - - - -
        - - -
        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/_book/Usage/CLI.html b/docs/_book/Usage/CLI.html deleted file mode 100644 index b3809aa..0000000 --- a/docs/_book/Usage/CLI.html +++ /dev/null @@ -1,523 +0,0 @@ - - - - - - - CLI · Luxcena-Neo wiki - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        -
        - - - - - - - - -
        - -
        - -
        - - - - - - - - -
        -
        - -
        -
        - -
        - -

        Command line interface

        -
        -

        This gets installed in the /usr/bin directory, and can be called by:

        -
        $ luxcena-neo.sh
        -
        -

        or is alias

        -
        $ lux-neo
        -
        -

        This CLI assumes root access, so please run it with sudo

        -

        -

        Options

        -

        sudo lux-neo uninstall

        -

        Uninstall the whole thing. You will have to remove this script yourself.

        -

        sudo lux-neo update (skipNode)

        -

        Update to the newest version on the current branch. -If skipNode is the second argument, npm won't be run.

        -

        sudo lux-neo conf

        -

        Open the strip-config in nano.

        -

        sudo lux-neo start (boot)

        -

        Start the server. -If you add boot, it will start when the system boots:

        -
        sudo lux-neo start boot
        -
        -

        sudo lux-neo stop (boot)

        -

        Stop the server. -If you add boot, it will NOT start when the system boots:

        -
        sudo lux-neo start boot
        -
        -

        sudo lux-neo status

        -

        This will output the status of the app. First it reports if the service is running, -and some general info. Then it prints the systemd-status report.

        -

        Example output:

        -
        Luxcena-neo-cli [args: 'status']
        -
        -╭─────────────────────╮
        -│ Service active: yes │
        -│ Starts on boot: yes │
        -│ Has failed:     no  │
        -╰─────────────────────╯
        -
        -━━━Service status━━━━━━━━━━━━━━━━━━
        -● luxcena-neo.service - Luxcena Neo
        -   Loaded: loaded (/etc/systemd/system/luxcena-neo.service; enabled; vendor preset: enabled)
        -   Active: active (running) since Wed 2018-12-05 22:55:28 UTC; 6min ago
        - Main PID: 2365 (luxcena-neo.sh)
        -   CGroup: /system.slice/luxcena-neo.service
        -           ├─2365 /bin/bash /home/lux-neo/src/bin/luxcena-neo.sh
        -           └─2367 node /home/lux-neo/src/app.js
        -
        -Dec 05 22:55:28 LUXCENA-STUE-SKAP systemd[1]: Started Luxcena Neo.
        -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
        -
        -

        sudo lux-neo log service/app

        -

        This shows the last 20 lines of the chosen log-file. And stays open to show -all new entries.

        -

        Example output:

        -
        Luxcena-neo-cli [args: 'log app']
        -
        -━━━App log (press ctrl+c to exit)━━━━━━━━━━━━━━━━━━
        -[3.11.2018 23:5:21:401] EVENT Starting Luxcena-Neo...
        -[3.11.2018 23:5:22:462] SUCCESS Webserver now listening at *:8080
        -
        -

        sudo lux-neo version

        -

        Currently not really doing anything usefull apart from showing which branch you are on.

        -

        Example output:

        -
        Luxcena-neo-cli [args: 'version']
        -
        -╭─────────────────────╮
        -│ Version: Unknown    │
        -│ branch : dev    │
        -╰─────────────────────╯
        -
        -

        sudo lux-neo selectBranch <branch>

        -

        This will change what branch you are on to . Stashing changes (shouldn't be a concern, but just saying it anyways).

        -

        Please note that the version-checker now will just be useless, as it does not now what branch we really are on.

        - - -
        - -
        -
        -
        - -

        results matching ""

        -
          - -
          -
          - -

          No results matching ""

          - -
          -
          -
          - -
          -
          - -
          - - - - - - - - - - -
          - - -
          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/_book/Usage/Configuration.html b/docs/_book/Usage/Configuration.html deleted file mode 100644 index 28abb96..0000000 --- a/docs/_book/Usage/Configuration.html +++ /dev/null @@ -1,508 +0,0 @@ - - - - - - - Configuration · Luxcena-Neo wiki - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          -
          - - - - - - - - -
          - -
          - -
          - - - - - - - - -
          -
          - -
          -
          - -
          - -

          Configuration

          -

          How to setup luxcena-neo to work with your setup

          -
          -
          $ sudo lux-neo conf
          -
          -

          When running the command above, a config file should appear in the editor 'nano'.

          -
          {
          -    "led_count": 53,
          -    "segments": [],
          -    "matrix": [],
          -    "segmentConfiguration": "snake",
          -    "led_pin": 18,
          -    "led_freq_hz": 800000,
          -    "led_dma": 10,
          -    "led_invert": false,
          -    "led_channel": 0
          -}
          -
          -

          If you rather want to use vim or another editor, the file is at /home/lux-neo/userdata/config/strip.json

          -

          -

          led_count

          -

          This is the number of LED's you want to control.

          -

          segments

          -

          This is a simple list, here you should add the lenghts of all your segments. Please enter the "real" length, and don't start counting from 0. If you just want one segment, you should just have one element in the list, which is the number of led's you are controlling.

          -

          When summing this list, it should check out with the "led-count"-option.

          -

          matrix

          -

          This is a two dimensonal array, used to arrange the segments in a matrix of your likings. Here you enter the segment-number to represent them. In the example above, all the segments are in one line. If you want to have them in a square, it could look like this:

          -
          "segments": [10, 10, 10, 10, 10, 10, 10, 10, 10],
          -"matrix": [
          -    [[0, false], [1, true], [2, false]],
          -    [[3, true], [4, false], [5, true]],
          -    [[6, false], [7, true], [8, false]]
          -]
          -
          -

          Each entry looks is a list, with two parameters, [<segment_number>, <invert>] -

          If you don't have a reference to all the segments or something, the matrix setup will fail. And fall back to 'segmentsconfiguration'

          -

          -

          segmentconfiguration

          -

          If the matrix-option is empty or badly setup. The matrix will be set up using one of these defaults:

          -
          "snake":
          -"line":
          -"random":
          -

          led_pin

          -

          If using the luxcena-shield, you shouldn't have to worry about this option. But set it to the GPIO-port connected to your pixel's din-port.

          -

          led_dma

          -

          If using a newer RPi (3 or newer), leave this as 10! Or your file-system might crash.

          -
          -This is the dma-channel used to generate the data-stream. If you for some reason need channel 10 for something else, you can change it. But i strongly recommend leaving it to 10!

          -

          led_invert

          -

          This should not be touched, unless you are using a inverting level converter.

          -

          led_channel

          -

          Leave this as default unless you know what you are doing.

          -
          -

          Now you might want to take a look at the command line interface.

          - - -
          - -
          -
          -
          - -

          results matching ""

          -
            - -
            -
            - -

            No results matching ""

            - -
            -
            -
            - -
            -
            - -
            - - - - - - - - - - - - - - -
            - - -
            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/_book/Usage/Install.html b/docs/_book/Usage/Install.html deleted file mode 100644 index d6e301e..0000000 --- a/docs/_book/Usage/Install.html +++ /dev/null @@ -1,483 +0,0 @@ - - - - - - - Install · Luxcena-Neo wiki - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            -
            - - - - - - - - -
            - -
            - -
            - - - - - - - - -
            -
            - -
            -
            - -
            - -

            Installation

            -

            If you want to install luxcena-neo to use it, these are the instructions:

            -
            -

            Requirements

            -
              -
            • The luxcena-shield
            • -
            • Access to the raspberry pi (SSH or direct)
            • -
            • Root access (preferably through the sudo command)
            • -
            -

            Install

            -
              -
            1. Start with logging into your Raspberry Pi
            2. -
            3. Run these commands
              $ git clone https://github.com/JakobST1n/Luxcena-Neo
              -$ cd Luxcena-Neo
              -$ sudo ./bin/install.sh
              -
              -
            4. -
            5. Follow the instructions on screen. You should answer yes to most of the questions.
            6. -
            7. The install-process might seem to hang, but there is just no output being sent to the console. If you want to see a bit more verbose output. Open another terminal session, and run this command:
              $ tail -n 10 -f /tmp/luxcena-neo.install.log
              -
              -This is also where you will find possible reasons for a failed install.
            8. -
            9. Luxcena-Neo should now be installed. Start it with this command
              $ luxcena-neo start
              -
              -
            10. -
            -

            Troubleshooting

            -

            We haven't encountered any troubles yet, but once we do, we will post fix'es here.

            -
            -

            You should now be all set to configuring luxcena-neo.

            - - -
            - -
            -
            -
            - -

            results matching ""

            -
              - -
              -
              - -

              No results matching ""

              - -
              -
              -
              - -
              -
              - -
              - - - - - - - - - - - - - - -
              - - -
              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/_book/Usage/index.html b/docs/_book/Usage/index.html deleted file mode 100644 index 63cdaf3..0000000 --- a/docs/_book/Usage/index.html +++ /dev/null @@ -1,461 +0,0 @@ - - - - - - - Usage · Luxcena-Neo wiki - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
              -
              - - - - - - - - -
              - -
              - -
              - - - - - - - - -
              -
              - -
              -
              - -
              - -

              Usage

              -

              Install

              -

              Want to install luxcena-neo? This is the guide!

              -

              Configuration

              -

              Just installed luxcena-neo, or you have changed your setup? This is the guide!

              -

              CLI

              -

              Ready to start the thing? Or change something?

              - - -
              - -
              -
              -
              - -

              results matching ""

              -
                - -
                -
                - -

                No results matching ""

                - -
                -
                -
                - -
                -
                - -
                - - - - - - - - - - - - - - -
                - - -
                - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/_book/gitbook/fonts/fontawesome/FontAwesome.otf b/docs/_book/gitbook/fonts/fontawesome/FontAwesome.otf deleted file mode 100644 index d4de13e..0000000 Binary files a/docs/_book/gitbook/fonts/fontawesome/FontAwesome.otf and /dev/null differ diff --git a/docs/_book/gitbook/fonts/fontawesome/fontawesome-webfont.eot b/docs/_book/gitbook/fonts/fontawesome/fontawesome-webfont.eot deleted file mode 100644 index c7b00d2..0000000 Binary files a/docs/_book/gitbook/fonts/fontawesome/fontawesome-webfont.eot and /dev/null differ diff --git a/docs/_book/gitbook/fonts/fontawesome/fontawesome-webfont.svg b/docs/_book/gitbook/fonts/fontawesome/fontawesome-webfont.svg deleted file mode 100644 index 8b66187..0000000 --- a/docs/_book/gitbook/fonts/fontawesome/fontawesome-webfont.svg +++ /dev/null @@ -1,685 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_book/gitbook/fonts/fontawesome/fontawesome-webfont.ttf b/docs/_book/gitbook/fonts/fontawesome/fontawesome-webfont.ttf deleted file mode 100644 index f221e50..0000000 Binary files a/docs/_book/gitbook/fonts/fontawesome/fontawesome-webfont.ttf and /dev/null differ diff --git a/docs/_book/gitbook/fonts/fontawesome/fontawesome-webfont.woff b/docs/_book/gitbook/fonts/fontawesome/fontawesome-webfont.woff deleted file mode 100644 index 6e7483c..0000000 Binary files a/docs/_book/gitbook/fonts/fontawesome/fontawesome-webfont.woff and /dev/null differ diff --git a/docs/_book/gitbook/fonts/fontawesome/fontawesome-webfont.woff2 b/docs/_book/gitbook/fonts/fontawesome/fontawesome-webfont.woff2 deleted file mode 100644 index 7eb74fd..0000000 Binary files a/docs/_book/gitbook/fonts/fontawesome/fontawesome-webfont.woff2 and /dev/null differ diff --git a/docs/_book/gitbook/gitbook-plugin-api/api.css b/docs/_book/gitbook/gitbook-plugin-api/api.css deleted file mode 100644 index 4bcd88e..0000000 --- a/docs/_book/gitbook/gitbook-plugin-api/api.css +++ /dev/null @@ -1,106 +0,0 @@ -.markdown-section { - overflow: visible !important; -} - -.api-container { - margin: 0px 0px; - box-shadow: 0px 1px 3px rgba(0,0,0,0.25); - transition: margin 300ms, box-shadow 300ms; -} - -.api-container.expanded { - margin: 0px -16px; - box-shadow: 0px 6px 16px rgba(0,0,0,0.25); -} - -.api-container .api-header { - line-height: 26px; - padding: 10px; - border-bottom: 1px solid #EEEEEE; - cursor: pointer; - display: flex; - flex-direction: row; -} - -.api-container .api-header small { - background-color: #444444; - background-image: linear-gradient(45deg, rgba(0,0,0,0) 50%, rgba(0, 0, 0, 0.1) 50%); - color: #FFFFFF; - font-size: 9px !important; - margin-right: 8px; - padding: 0px 4px; - font-weight: bold; - display: block; - line-height: 28px; - height: 28px; - width: 46px; - text-align: center; -} - -.api-container .api-header small.get { - background-color: #226ca0; -} - -.api-container .api-header small.put { - background-color: #a08022; -} - -.api-container .api-header small.post { - background-color: #46a022; -} - -.api-container .api-header small.delete { - background-color: #a02222; -} - -.api-container .api-header h2 { - display: block; - flex: 1; - margin: 0; - padding: 0; - font-size: 16px; - font-weight: normal; - white-space: nowrap; - line-height: 28px; - height: 26px; -} - -.api-container .api-header span { - display: block; - color: #266D9E; - font-size: 11px; - padding: 0px 8px; - border: 1px solid #266D9E; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - margin-left: 10px; -} - -.api-container .api-content { - height: 0px; - overflow: hidden; -} - -.api-container .api-content div { - padding: 20px 20px 10px 20px; -} - -.api-container .api-content div h3 { - padding: 14px 0px; - margin: 0px; - border-top: 1px solid #EEE; - color: #537186; - font-size: 13px; - text-transform: uppercase; - letter-spacing: 1px; -} - -.api-container .api-content div pre { - line-height: 18px; - font-size: 15px; -} - -.api-container.expanded .api-content { - height: auto; -} diff --git a/docs/_book/gitbook/gitbook-plugin-api/api.js b/docs/_book/gitbook/gitbook-plugin-api/api.js deleted file mode 100644 index ebf6acf..0000000 --- a/docs/_book/gitbook/gitbook-plugin-api/api.js +++ /dev/null @@ -1,7 +0,0 @@ -require(["gitbook"], function(gitbook) { - gitbook.events.bind("page.change", function() { - $(".api-header").click(function(event) { - $(event.currentTarget).parent().toggleClass('expanded'); - }); - }); -}); diff --git a/docs/_book/gitbook/gitbook-plugin-code/plugin.css b/docs/_book/gitbook/gitbook-plugin-code/plugin.css deleted file mode 100644 index a68fcdc..0000000 --- a/docs/_book/gitbook/gitbook-plugin-code/plugin.css +++ /dev/null @@ -1,37 +0,0 @@ -#code-textarea { - height: 0; - position: fixed; - top: -1000px; - width: 0; -} - -.code-wrapper { - position: relative; -} - -.code-wrapper i { - color: #c1c7cd; - cursor: pointer; - font-size: 12px; - font-weight: bold; - position: absolute; - right: 1em; - top: 1em; -} - -.code-wrapper pre { - background: #f7f8f9; - border-radius: 3px; - counter-reset: line; - font-size: 15px; -} - -.code-wrapper pre > code > span.code-line:before { - counter-increment: line; - color: #c1c7cd; - content: counter(line); - display: inline-block; - font-size: 12px; - margin-right: 1.5em; - width: 1em; -} diff --git a/docs/_book/gitbook/gitbook-plugin-code/plugin.js b/docs/_book/gitbook/gitbook-plugin-code/plugin.js deleted file mode 100644 index 555d724..0000000 --- a/docs/_book/gitbook/gitbook-plugin-code/plugin.js +++ /dev/null @@ -1,91 +0,0 @@ -require(['gitbook', 'jQuery'], function(gitbook, $) { - - const TERMINAL_HOOK = '**[terminal]' - - var pluginConfig = {}; - var timeouts = {}; - - function addCopyButton(wrapper) { - wrapper.append( - $('') - .click(function() { - copyCommand($(this)); - }) - ); - } - - function addCopyTextarea() { - - /* Add also the text area that will allow to copy */ - $('body').append('",pe.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue}();var Qe=te.documentElement,Je=/^key/,Ke=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ze=/^([^.]*)(?:\.(.+)|)/;de.event={global:{},add:function(e,t,n,r,o){var i,s,a,u,c,l,f,p,h,d,g,m=Fe.get(e);if(m)for(n.handler&&(i=n,n=i.handler,o=i.selector),o&&de.find.matchesSelector(Qe,o),n.guid||(n.guid=de.guid++),(u=m.events)||(u=m.events={}),(s=m.handle)||(s=m.handle=function(t){return"undefined"!=typeof de&&de.event.triggered!==t.type?de.event.dispatch.apply(e,arguments):void 0}),t=(t||"").match(qe)||[""],c=t.length;c--;)a=Ze.exec(t[c])||[],h=g=a[1],d=(a[2]||"").split(".").sort(),h&&(f=de.event.special[h]||{},h=(o?f.delegateType:f.bindType)||h,f=de.event.special[h]||{},l=de.extend({type:h,origType:g,data:r,handler:n,guid:n.guid,selector:o,needsContext:o&&de.expr.match.needsContext.test(o),namespace:d.join(".")},i),(p=u[h])||(p=u[h]=[],p.delegateCount=0,f.setup&&f.setup.call(e,r,d,s)!==!1||e.addEventListener&&e.addEventListener(h,s)),f.add&&(f.add.call(e,l),l.handler.guid||(l.handler.guid=n.guid)),o?p.splice(p.delegateCount++,0,l):p.push(l),de.event.global[h]=!0)},remove:function(e,t,n,r,o){var i,s,a,u,c,l,f,p,h,d,g,m=Fe.hasData(e)&&Fe.get(e);if(m&&(u=m.events)){for(t=(t||"").match(qe)||[""],c=t.length;c--;)if(a=Ze.exec(t[c])||[],h=g=a[1],d=(a[2]||"").split(".").sort(),h){for(f=de.event.special[h]||{},h=(r?f.delegateType:f.bindType)||h,p=u[h]||[],a=a[2]&&new RegExp("(^|\\.)"+d.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=i=p.length;i--;)l=p[i],!o&&g!==l.origType||n&&n.guid!==l.guid||a&&!a.test(l.namespace)||r&&r!==l.selector&&("**"!==r||!l.selector)||(p.splice(i,1),l.selector&&p.delegateCount--,f.remove&&f.remove.call(e,l));s&&!p.length&&(f.teardown&&f.teardown.call(e,d,m.handle)!==!1||de.removeEvent(e,h,m.handle),delete u[h])}else for(h in u)de.event.remove(e,h+t[c],n,r,!0);de.isEmptyObject(u)&&Fe.remove(e,"handle events")}},dispatch:function(e){var t,n,r,o,i,s,a=de.event.fix(e),u=new Array(arguments.length),c=(Fe.get(this,"events")||{})[a.type]||[],l=de.event.special[a.type]||{};for(u[0]=a,t=1;t=1))for(;c!==this;c=c.parentNode||this)if(1===c.nodeType&&("click"!==e.type||c.disabled!==!0)){for(i=[],s={},n=0;n-1:de.find(o,this,null,[c]).length),s[o]&&i.push(r);i.length&&a.push({elem:c,handlers:i})}return c=this,u\x20\t\r\n\f]*)[^>]*)\/>/gi,tt=/\s*$/g;de.extend({htmlPrefilter:function(e){return e.replace(et,"<$1>")},clone:function(e,t,n){var r,o,i,s,a=e.cloneNode(!0),u=de.contains(e.ownerDocument,e);if(!(pe.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||de.isXMLDoc(e)))for(s=v(a),i=v(e),r=0,o=i.length;r0&&y(s,!u&&v(e,"script")),a},cleanData:function(e){for(var t,n,r,o=de.event.special,i=0;void 0!==(n=e[i]);i++)if(He(n)){if(t=n[Fe.expando]){if(t.events)for(r in t.events)o[r]?de.event.remove(n,r):de.removeEvent(n,r,t.handle);n[Fe.expando]=void 0}n[Re.expando]&&(n[Re.expando]=void 0)}}}),de.fn.extend({detach:function(e){return q(this,e,!0)},remove:function(e){return q(this,e)},text:function(e){return Le(this,function(e){return void 0===e?de.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return A(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=j(this,e);t.appendChild(e)}})},prepend:function(){return A(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=j(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return A(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return A(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(de.cleanData(v(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return de.clone(this,e,t)})},html:function(e){return Le(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!tt.test(e)&&!Ge[(Xe.exec(e)||["",""])[1].toLowerCase()]){e=de.htmlPrefilter(e);try{for(;n1)}}),de.Tween=I,I.prototype={constructor:I,init:function(e,t,n,r,o,i){this.elem=e,this.prop=n,this.easing=o||de.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=i||(de.cssNumber[n]?"":"px")},cur:function(){var e=I.propHooks[this.prop];return e&&e.get?e.get(this):I.propHooks._default.get(this)},run:function(e){var t,n=I.propHooks[this.prop];return this.options.duration?this.pos=t=de.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):I.propHooks._default.set(this),this}},I.prototype.init.prototype=I.prototype,I.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=de.css(e.elem,e.prop,""),t&&"auto"!==t?t:0)},set:function(e){de.fx.step[e.prop]?de.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[de.cssProps[e.prop]]&&!de.cssHooks[e.prop]?e.elem[e.prop]=e.now:de.style(e.elem,e.prop,e.now+e.unit)}}},I.propHooks.scrollTop=I.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},de.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},de.fx=I.prototype.init,de.fx.step={};var ht,dt,gt=/^(?:toggle|show|hide)$/,mt=/queueHooks$/;de.Animation=de.extend(U,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return d(n.elem,e,$e.exec(t),n),n}]},tweener:function(e,t){de.isFunction(e)?(t=e,e=["*"]):e=e.match(qe);for(var n,r=0,o=e.length;r1)},removeAttr:function(e){return this.each(function(){de.removeAttr(this,e)})}}),de.extend({attr:function(e,t,n){var r,o,i=e.nodeType;if(3!==i&&8!==i&&2!==i)return"undefined"==typeof e.getAttribute?de.prop(e,t,n):(1===i&&de.isXMLDoc(e)||(o=de.attrHooks[t.toLowerCase()]||(de.expr.match.bool.test(t)?vt:void 0)),void 0!==n?null===n?void de.removeAttr(e,t):o&&"set"in o&&void 0!==(r=o.set(e,n,t))?r:(e.setAttribute(t,n+""),n):o&&"get"in o&&null!==(r=o.get(e,t))?r:(r=de.find.attr(e,t),null==r?void 0:r))},attrHooks:{type:{set:function(e,t){if(!pe.radioValue&&"radio"===t&&de.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,o=t&&t.match(qe);if(o&&1===e.nodeType)for(;n=o[r++];)e.removeAttribute(n)}}),vt={set:function(e,t,n){return t===!1?de.removeAttr(e,n):e.setAttribute(n,n),n}},de.each(de.expr.match.bool.source.match(/\w+/g),function(e,t){var n=yt[t]||de.find.attr;yt[t]=function(e,t,r){var o,i,s=t.toLowerCase();return r||(i=yt[s],yt[s]=o,o=null!=n(e,t,r)?s:null,yt[s]=i),o}});var xt=/^(?:input|select|textarea|button)$/i,bt=/^(?:a|area)$/i;de.fn.extend({prop:function(e,t){return Le(this,de.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[de.propFix[e]||e]})}}),de.extend({prop:function(e,t,n){var r,o,i=e.nodeType;if(3!==i&&8!==i&&2!==i)return 1===i&&de.isXMLDoc(e)||(t=de.propFix[t]||t,o=de.propHooks[t]),void 0!==n?o&&"set"in o&&void 0!==(r=o.set(e,n,t))?r:e[t]=n:o&&"get"in o&&null!==(r=o.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=de.find.attr(e,"tabindex");return t?parseInt(t,10):xt.test(e.nodeName)||bt.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),pe.optSelected||(de.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),de.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){de.propFix[this.toLowerCase()]=this}),de.fn.extend({addClass:function(e){var t,n,r,o,i,s,a,u=0;if(de.isFunction(e))return this.each(function(t){de(this).addClass(e.call(this,t,X(this)))});if("string"==typeof e&&e)for(t=e.match(qe)||[];n=this[u++];)if(o=X(n),r=1===n.nodeType&&" "+z(o)+" "){for(s=0;i=t[s++];)r.indexOf(" "+i+" ")<0&&(r+=i+" ");a=z(r),o!==a&&n.setAttribute("class",a)}return this},removeClass:function(e){var t,n,r,o,i,s,a,u=0;if(de.isFunction(e))return this.each(function(t){de(this).removeClass(e.call(this,t,X(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof e&&e)for(t=e.match(qe)||[];n=this[u++];)if(o=X(n),r=1===n.nodeType&&" "+z(o)+" "){for(s=0;i=t[s++];)for(;r.indexOf(" "+i+" ")>-1;)r=r.replace(" "+i+" "," ");a=z(r),o!==a&&n.setAttribute("class",a)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):de.isFunction(e)?this.each(function(n){de(this).toggleClass(e.call(this,n,X(this),t),t)}):this.each(function(){var t,r,o,i;if("string"===n)for(r=0,o=de(this),i=e.match(qe)||[];t=i[r++];)o.hasClass(t)?o.removeClass(t):o.addClass(t);else void 0!==e&&"boolean"!==n||(t=X(this),t&&Fe.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||e===!1?"":Fe.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+z(X(n))+" ").indexOf(t)>-1)return!0;return!1}});var wt=/\r/g;de.fn.extend({val:function(e){var t,n,r,o=this[0];{if(arguments.length)return r=de.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=r?e.call(this,n,de(this).val()):e,null==o?o="":"number"==typeof o?o+="":de.isArray(o)&&(o=de.map(o,function(e){return null==e?"":e+""})),t=de.valHooks[this.type]||de.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&void 0!==t.set(this,o,"value")||(this.value=o))});if(o)return t=de.valHooks[o.type]||de.valHooks[o.nodeName.toLowerCase()],t&&"get"in t&&void 0!==(n=t.get(o,"value"))?n:(n=o.value,"string"==typeof n?n.replace(wt,""):null==n?"":n)}}}),de.extend({valHooks:{option:{get:function(e){var t=de.find.attr(e,"value");return null!=t?t:z(de.text(e))}},select:{get:function(e){var t,n,r,o=e.options,i=e.selectedIndex,s="select-one"===e.type,a=s?null:[],u=s?i+1:o.length;for(r=i<0?u:s?i:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),i}}}}),de.each(["radio","checkbox"],function(){de.valHooks[this]={set:function(e,t){if(de.isArray(t))return e.checked=de.inArray(de(e).val(),t)>-1}},pe.checkOn||(de.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Tt=/^(?:focusinfocus|focusoutblur)$/;de.extend(de.event,{trigger:function(t,n,r,o){var i,s,a,u,c,l,f,p=[r||te],h=ce.call(t,"type")?t.type:t,d=ce.call(t,"namespace")?t.namespace.split("."):[];if(s=a=r=r||te,3!==r.nodeType&&8!==r.nodeType&&!Tt.test(h+de.event.triggered)&&(h.indexOf(".")>-1&&(d=h.split("."),h=d.shift(),d.sort()),c=h.indexOf(":")<0&&"on"+h,t=t[de.expando]?t:new de.Event(h,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=d.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+d.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=r),n=null==n?[t]:de.makeArray(n,[t]),f=de.event.special[h]||{},o||!f.trigger||f.trigger.apply(r,n)!==!1)){if(!o&&!f.noBubble&&!de.isWindow(r)){for(u=f.delegateType||h,Tt.test(u+h)||(s=s.parentNode);s;s=s.parentNode)p.push(s),a=s;a===(r.ownerDocument||te)&&p.push(a.defaultView||a.parentWindow||e)}for(i=0;(s=p[i++])&&!t.isPropagationStopped();)t.type=i>1?u:f.bindType||h,l=(Fe.get(s,"events")||{})[t.type]&&Fe.get(s,"handle"),l&&l.apply(s,n),l=c&&s[c],l&&l.apply&&He(s)&&(t.result=l.apply(s,n),t.result===!1&&t.preventDefault());return t.type=h,o||t.isDefaultPrevented()||f._default&&f._default.apply(p.pop(),n)!==!1||!He(r)||c&&de.isFunction(r[h])&&!de.isWindow(r)&&(a=r[c],a&&(r[c]=null),de.event.triggered=h,r[h](),de.event.triggered=void 0,a&&(r[c]=a)),t.result}},simulate:function(e,t,n){var r=de.extend(new de.Event,n,{type:e,isSimulated:!0});de.event.trigger(r,null,t)}}),de.fn.extend({trigger:function(e,t){return this.each(function(){de.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return de.event.trigger(e,t,n,!0)}}),de.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,t){de.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),de.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),pe.focusin="onfocusin"in e,pe.focusin||de.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){de.event.simulate(t,e.target,de.event.fix(e))};de.event.special[t]={setup:function(){var r=this.ownerDocument||this,o=Fe.access(r,t);o||r.addEventListener(e,n,!0),Fe.access(r,t,(o||0)+1)},teardown:function(){var r=this.ownerDocument||this,o=Fe.access(r,t)-1;o?Fe.access(r,t,o):(r.removeEventListener(e,n,!0),Fe.remove(r,t))}}});var Ct=e.location,jt=de.now(),kt=/\?/;de.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||de.error("Invalid XML: "+t),n};var Et=/\[\]$/,St=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;de.param=function(e,t){var n,r=[],o=function(e,t){var n=de.isFunction(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(de.isArray(e)||e.jquery&&!de.isPlainObject(e))de.each(e,function(){o(this.name,this.value)});else for(n in e)V(n,e[n],t,o);return r.join("&")},de.fn.extend({serialize:function(){return de.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=de.prop(this,"elements");return e?de.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!de(this).is(":disabled")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!ze.test(e))}).map(function(e,t){var n=de(this).val();return null==n?null:de.isArray(n)?de.map(n,function(e){return{name:t.name,value:e.replace(St,"\r\n")}}):{name:t.name,value:n.replace(St,"\r\n")}}).get()}});var qt=/%20/g,Dt=/#.*$/,Ot=/([?&])_=[^&]*/,Lt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ht=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Ft=/^(?:GET|HEAD)$/,Rt=/^\/\//,It={},Pt={},Mt="*/".concat("*"),$t=te.createElement("a");$t.href=Ct.href,de.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ct.href,type:"GET",isLocal:Ht.test(Ct.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Mt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":de.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Q(Q(e,de.ajaxSettings),t):Q(de.ajaxSettings,e)},ajaxPrefilter:G(It),ajaxTransport:G(Pt),ajax:function(t,n){function r(t,n,r,a){var c,p,h,b,w,T=n;l||(l=!0,u&&e.clearTimeout(u),o=void 0,s=a||"",C.readyState=t>0?4:0,c=t>=200&&t<300||304===t,r&&(b=J(d,C,r)),b=K(d,b,C,c),c?(d.ifModified&&(w=C.getResponseHeader("Last-Modified"),w&&(de.lastModified[i]=w),w=C.getResponseHeader("etag"),w&&(de.etag[i]=w)),204===t||"HEAD"===d.type?T="nocontent":304===t?T="notmodified":(T=b.state,p=b.data,h=b.error,c=!h)):(h=T,!t&&T||(T="error",t<0&&(t=0))),C.status=t,C.statusText=(n||T)+"",c?v.resolveWith(g,[p,T,C]):v.rejectWith(g,[C,T,h]),C.statusCode(x),x=void 0,f&&m.trigger(c?"ajaxSuccess":"ajaxError",[C,d,c?p:h]),y.fireWith(g,[C,T]),f&&(m.trigger("ajaxComplete",[C,d]),--de.active||de.event.trigger("ajaxStop")))}"object"==typeof t&&(n=t,t=void 0),n=n||{};var o,i,s,a,u,c,l,f,p,h,d=de.ajaxSetup({},n),g=d.context||d,m=d.context&&(g.nodeType||g.jquery)?de(g):de.event,v=de.Deferred(),y=de.Callbacks("once memory"),x=d.statusCode||{},b={},w={},T="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(l){if(!a)for(a={};t=Lt.exec(s);)a[t[1].toLowerCase()]=t[2];t=a[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return l?s:null},setRequestHeader:function(e,t){return null==l&&(e=w[e.toLowerCase()]=w[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==l&&(d.mimeType=e),this},statusCode:function(e){var t;if(e)if(l)C.always(e[C.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||T;return o&&o.abort(t),r(0,t),this}};if(v.promise(C),d.url=((t||d.url||Ct.href)+"").replace(Rt,Ct.protocol+"//"),d.type=n.method||n.type||d.method||d.type,d.dataTypes=(d.dataType||"*").toLowerCase().match(qe)||[""],null==d.crossDomain){c=te.createElement("a");try{c.href=d.url,c.href=c.href,d.crossDomain=$t.protocol+"//"+$t.host!=c.protocol+"//"+c.host}catch(e){d.crossDomain=!0}}if(d.data&&d.processData&&"string"!=typeof d.data&&(d.data=de.param(d.data,d.traditional)),Y(It,d,n,C),l)return C;f=de.event&&d.global,f&&0===de.active++&&de.event.trigger("ajaxStart"),d.type=d.type.toUpperCase(),d.hasContent=!Ft.test(d.type),i=d.url.replace(Dt,""),d.hasContent?d.data&&d.processData&&0===(d.contentType||"").indexOf("application/x-www-form-urlencoded")&&(d.data=d.data.replace(qt,"+")):(h=d.url.slice(i.length),d.data&&(i+=(kt.test(i)?"&":"?")+d.data,delete d.data),d.cache===!1&&(i=i.replace(Ot,"$1"),h=(kt.test(i)?"&":"?")+"_="+jt++ +h),d.url=i+h),d.ifModified&&(de.lastModified[i]&&C.setRequestHeader("If-Modified-Since",de.lastModified[i]),de.etag[i]&&C.setRequestHeader("If-None-Match",de.etag[i])),(d.data&&d.hasContent&&d.contentType!==!1||n.contentType)&&C.setRequestHeader("Content-Type",d.contentType),C.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+("*"!==d.dataTypes[0]?", "+Mt+"; q=0.01":""):d.accepts["*"]);for(p in d.headers)C.setRequestHeader(p,d.headers[p]);if(d.beforeSend&&(d.beforeSend.call(g,C,d)===!1||l))return C.abort();if(T="abort",y.add(d.complete),C.done(d.success),C.fail(d.error),o=Y(Pt,d,n,C)){if(C.readyState=1,f&&m.trigger("ajaxSend",[C,d]),l)return C;d.async&&d.timeout>0&&(u=e.setTimeout(function(){C.abort("timeout")},d.timeout));try{l=!1,o.send(b,r)}catch(e){if(l)throw e;r(-1,e)}}else r(-1,"No Transport");return C},getJSON:function(e,t,n){return de.get(e,t,n,"json")},getScript:function(e,t){return de.get(e,void 0,t,"script")}}),de.each(["get","post"],function(e,t){de[t]=function(e,n,r,o){return de.isFunction(n)&&(o=o||r,r=n,n=void 0),de.ajax(de.extend({url:e,type:t,dataType:o,data:n,success:r},de.isPlainObject(e)&&e))}}),de._evalUrl=function(e){return de.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,throws:!0})},de.fn.extend({wrapAll:function(e){var t;return this[0]&&(de.isFunction(e)&&(e=e.call(this[0])),t=de(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return de.isFunction(e)?this.each(function(t){de(this).wrapInner(e.call(this,t))}):this.each(function(){var t=de(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=de.isFunction(e);return this.each(function(n){de(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){de(this).replaceWith(this.childNodes)}),this}}),de.expr.pseudos.hidden=function(e){return!de.expr.pseudos.visible(e)},de.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},de.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Wt={0:200,1223:204},Bt=de.ajaxSettings.xhr();pe.cors=!!Bt&&"withCredentials"in Bt,pe.ajax=Bt=!!Bt,de.ajaxTransport(function(t){var n,r;if(pe.cors||Bt&&!t.crossDomain)return{send:function(o,i){var s,a=t.xhr();if(a.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(s in t.xhrFields)a[s]=t.xhrFields[s];t.mimeType&&a.overrideMimeType&&a.overrideMimeType(t.mimeType),t.crossDomain||o["X-Requested-With"]||(o["X-Requested-With"]="XMLHttpRequest");for(s in o)a.setRequestHeader(s,o[s]);n=function(e){return function(){n&&(n=r=a.onload=a.onerror=a.onabort=a.onreadystatechange=null,"abort"===e?a.abort():"error"===e?"number"!=typeof a.status?i(0,"error"):i(a.status,a.statusText):i(Wt[a.status]||a.status,a.statusText,"text"!==(a.responseType||"text")||"string"!=typeof a.responseText?{binary:a.response}:{text:a.responseText},a.getAllResponseHeaders()))}},a.onload=n(),r=a.onerror=n("error"),void 0!==a.onabort?a.onabort=r:a.onreadystatechange=function(){4===a.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{a.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),de.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),de.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return de.globalEval(e),e}}}),de.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),de.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(r,o){t=de(" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/_book/search_index.json b/docs/_book/search_index.json deleted file mode 100644 index 9665ff1..0000000 --- a/docs/_book/search_index.json +++ /dev/null @@ -1 +0,0 @@ -{"index":{"version":"0.5.12","fields":[{"name":"title","boost":10},{"name":"keywords","boost":15},{"name":"body","boost":1}],"ref":"url","documentStore":{"store":{"./":["(dev)","assur","bit","branch","depend","easi","guid","hard","have","hour","instal","installing:","introduct","issu","look","luxcena","neo","neo.","pleas","realli","refer","shortli","software.","someon","sourc","spent","still","us"],"Usage/":["chang","cli","configur","guide!","instal","luxcena","neo,","neo?","readi","setup?","something?","start","thing?","usag","want"],"Usage/Install.html":["$","(prefer","(ssh","./bin/install.sh","/tmp/luxcena","10","access","anoth","answer","be","bit","cd","clone","command$","command)","command:$","commands$","configur","console.","direct)","do,","encount","f","fail","find","fix'","follow","git","hang,","haven't","here.","https://github.com/jakobst1n/luxcena","instal","install.","installed.","instruct","instructions:","it,","log","luxcena","more","n","neo","neo.","neo.install.log","now","onc","open","output","output.","pi","possibl","post","process","questions.","raspberri","reason","requir","root","run","screen.","see","seem","sent","session,","set","shield","start","sudo","tail","termin","through","troubl","troubleshoot","us","verbos","want","ye","yet,"],"Usage/Configuration.html":["\"led","\"led_channel\":","\"led_count\":","\"led_dma\":","\"led_freq_hz\":","\"led_invert\":","\"led_pin\":","\"line\":","\"matrix\":","\"random\":","\"real\"","\"segmentconfiguration\":","\"segments\":","\"snake\",","\"snake\":","$","'nano'.","'segmentsconfiguration'","(3","/home/lux","0","0.","10","10!","10,","10],","18,","53,","800000,","[","[,","[1,","[10,","[2,","[4,","[5,","[7,","[8,","[[0,","[[3,","[[6,","[],","]","above,","add","anoth","appear","arrang","array,","back","badli","chang","channel","check","command","conf","config","configur","connect","control.","controlling.","converter.","count","count\"","crash.","data","default","defaults:","dimenson","din","dma","doing.","don't","each","editor","editor,","element","else,","empti","enter","entri","exampl","fail.","fall","false,","false],","false]]","false]],","file","gener","gpio","here","interface.","invert","it.","know","leav","led'","led_channel","led_count","led_dma","led_invert","led_pin","lenght","length,","level","likings.","line","line.","list,","look","lux","luxcena","matrix","need","neo","neo/userdata/config/strip.json","newer","newer),","now","number","on","option","option.","out","parameters,","pixel'","pleas","port","port.","reason","recommend","refer","repres","rpi","run","segment","segment,","segmentconfigur","segments.","set","setup","setup.","shield,","shouldn't","simpl","someth","something,","square,","start","stream.","strongli","sudo","sum","system","take","them.","this:","touched,","true],","true]],","two","unless","up","us","vim","want","work","worri","{","}"],"Usage/CLI.html":["$","'log","'status']","'version']","(/etc/systemd/system/luxcena","(boot)","(luxcena","(press","(running)","(shouldn't","(skipnode)","*:8080",".","/bin/bash","/home/lux","/system.slice/luxcena","/usr/bin","05","12","20","2018","22:55:28","2365","23:5:21:401]","23:5:22:462]","6min",":","[3.11.2018","[args:","access,","activ","active:","add","ago","alia","anyth","anyways).","apart","app']","app.","argument,","assum","boot","boot,","boot:","boots:","branch","branch.","by:","call","cgroup:","chang","checker","chosen","cli","command","concern,","conf","config","ctrl+c","current","dec","dev","directory,","do","enabled)","enabled;","entries.","event","exampl","exit)━━━━━━━━━━━━━━━━━━","failed:","file.","first","gener","get","info.","instal","interfac","last","line","listen","load","loaded:","log","lux","luxcena","main","nano.","neo","neo.","neo...","neo.servic","neo.service;","neo.sh","neo.sh)","neo/src/app.j","neo/src/bin/luxcena","new","newest","node","note","now","npm","on.","open","option","output","output:","pid:","pleas","preset:","print","realli","remov","report","report.","root","run","run.","running,","say","script","second","selectbranch","server.","servic","service/app","show","skap","skipnod","start","stash","statu","status━━━━━━━━━━━━━━━━━━","stay","stop","strip","stue","success","sudo","system","systemd","systemd[1]:","thing.","uninstal","unknown","updat","useful","useless,","utc;","vendor","version","version:","webserv","wed","whole","won't","ye","yourself.","━━━app","━━━servic","━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━","│","└─2367","├─2365","╭─────────────────────╮","╰─────────────────────╯","●"],"Scripting/SupportLib/":["(in","(where","(x,","0","0)","24","255","=","access","actual","allow","bit","blue","blue,","bright","brightest.","brightness.","buffer","buffer.","chang","class","color","color(red,","color)","color.","compon","convert","darkest","data","defin","display","display.","each","green","green,","hexadecim","hexcolor(value)","highest","instanti","intens","intensity).","intensity.","itself.","led","led's.","leds,","leds.","librari","lowest","luxcenaneo.strip","made","matrix","n","n.","neo.strip","new","number","object","on","order).","pixel","posit","provid","red,","refeer","return","rgb","scale","segment","sequenc","set","shouldn't","softwar","strip","strip.getbrightness():","strip.getpixelcolor(n)","strip.getpixels():","strip.numpixels():","strip.setbrightness(brightness)","strip.setpixelcolor(n,","strip.setpixelcolorrgb(n,","strip.setpixelcolorxy(x,","strip.setpixelcolorxyrgb(x,","strip.setsegmentcolorrgb(segment,","strip.show()","support","thing","up","us","valu","value.","values.","want","white","whole","y)","y,"],"Contributing/Modules/CompileAndRun.html":["\"/usrdata/usrcode/example\");","(_code)","(_stderr)","(_stdout)","(where","+","//",":`(","=","=>","_code","`throw`","add","app","app.j","attach","below:","build","call","called.","class","class,","closes,","code","code.","compileandrun","compilerun.python(global.dirswap","contain","data","delet","done","dy","entri","entry.pi","error","event","exampl","exit","exits,","export","file","file.","folder","folder,","folder.","full","index","initi","itself.","languag","last","later.","listner","local","located):","located.","made","make","messag","method","modul","move","new","next","object.","old","on","one.","out.","parameter,","path","place","point","print","process","process,","python","python,","python.compil","python.constructor","python.run","pythonsupportfil","readi","requir","root","run","sc","sc.on(\"close\",","sc.on(\"stderr::end\",","sc.on(\"stderr::out\",","sc.on(\"stdout::data\",","sc.on(\"stdout::end\",","script","script,","script.","script.py,","scripts.","someth","spawn","start","subdir","support","take","this:","us","user","usual","var","word","write","{","});","​"]},"length":7},"tokenStore":{"root":{"0":{"5":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0070921985815602835}}},"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274},"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.04201680672268908}},".":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}},")":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.01680672268907563}}}},"1":{"0":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901},"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}},"!":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.008547008547008548}}},",":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.03418803418803419}}},"]":{"docs":{},",":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}},"2":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}},"8":{"docs":{},",":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}},"docs":{}},"2":{"0":{"1":{"8":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}},"docs":{}},"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}},"2":{"docs":{},":":{"5":{"5":{"docs":{},":":{"2":{"8":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0070921985815602835}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"3":{"6":{"5":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}},"docs":{}},"docs":{},":":{"5":{"docs":{},":":{"2":{"1":{"docs":{},":":{"4":{"0":{"1":{"docs":{},"]":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}},"docs":{}},"docs":{}},"docs":{}}},"2":{"docs":{},":":{"4":{"6":{"2":{"docs":{},"]":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}}},"4":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.025210084033613446}}},"5":{"5":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.04201680672268908}}},"docs":{}},"docs":{}},"5":{"3":{"docs":{},",":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}},"docs":{}},"6":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}},"8":{"0":{"0":{"0":{"0":{"0":{"docs":{},",":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{},"(":{"3":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}},"docs":{},"d":{"docs":{},"e":{"docs":{},"v":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.03333333333333333}}}}}},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}}}},"s":{"docs":{},"s":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}},"s":{"docs":{},"s":{"docs":{},"h":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}}},"k":{"docs":{},"i":{"docs":{},"p":{"docs":{},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},")":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}}}}},"h":{"docs":{},"o":{"docs":{},"u":{"docs":{},"l":{"docs":{},"d":{"docs":{},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}}}}}},"/":{"docs":{},"e":{"docs":{},"t":{"docs":{},"c":{"docs":{},"/":{"docs":{},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"d":{"docs":{},"/":{"docs":{},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"/":{"docs":{},"l":{"docs":{},"u":{"docs":{},"x":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"u":{"docs":{},"x":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}}}},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{},"n":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},")":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}}}}},"i":{"docs":{},"n":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.008403361344537815}}}},"w":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.012605042016806723},"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}}},"x":{"docs":{},",":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.008403361344537815}}}},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},")":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}}},"s":{"docs":{},"t":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},")":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.011363636363636364}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},")":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.011363636363636364}}}}}}}}}},"b":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},")":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0070921985815602835}}}}}}}},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"u":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.03333333333333333}}},"m":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.019801980198019802},"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}},",":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}},"e":{"docs":{},":":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0070921985815602835}}}}}},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}}}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901},"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}},"s":{"docs":{},"w":{"docs":{},"e":{"docs":{},"r":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}}}}},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}},"w":{"docs":{},"a":{"docs":{},"y":{"docs":{},"s":{"docs":{},")":{"docs":{},".":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}}}}},"b":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},",":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.008547008547008548}}}}}}},"d":{"docs":{},"d":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274},"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0070921985815602835},"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}},"p":{"docs":{},"p":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}},"'":{"docs":{},"]":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}},".":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}},"j":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}},"r":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}},"y":{"docs":{},",":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}},"g":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}}}}},"g":{"docs":{},"o":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}},"l":{"docs":{},"i":{"docs":{},"a":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}}}}}},"t":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}}}},"b":{"docs":{},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.03333333333333333},"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901},"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.025210084033613446}}}},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.03333333333333333},"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.014184397163120567}},".":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.012605042016806723}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.008403361344537815}}}}}},"n":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},".":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}}}}}}}}}}}},"e":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{},":":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}}},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}},"d":{"docs":{},"l":{"docs":{},"i":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0070921985815602835}},",":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0070921985815602835}}},":":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}},"s":{"docs":{},":":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0070921985815602835}}}}}}},"y":{"docs":{},":":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.01680672268907563}},",":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.01680672268907563}}}}}},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}},".":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}}}}}}},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.022727272727272728}}}}}}},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.03333333333333333}}}}}},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}},"s":{"docs":{},":":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}}}},"i":{"docs":{},"n":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.008403361344537815}}}}},"c":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}},"v":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},")":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}},"o":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}}}},"n":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}},"s":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"y":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.008403361344537815}},".":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}}}}}}}}},"o":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}},",":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.008547008547008548}}}},"e":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.011363636363636364}}}}},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274},"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907},"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}},"r":{"docs":{},"k":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.008403361344537815}}}}}}}},"m":{"docs":{},"a":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}},"y":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.03333333333333333}}}},"c":{"docs":{},"h":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274},"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.025210084033613446}}}}},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.008547008547008548}}}},"r":{"docs":{},"i":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274},"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}},"y":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.017045454545454544}}}}}}}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}},";":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}}}},"d":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}},",":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}}}},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}}},"s":{"docs":{},"e":{"docs":{},",":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274},"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.010638297872340425},"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}},"i":{"docs":{},"t":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.011363636363636364}},")":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},",":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.011363636363636364}}}}}}},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418},"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.011363636363636364}}}}}}},"g":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.03333333333333333}},"e":{"docs":{},"!":{"docs":{"Usage/":{"ref":"Usage/","tf":0.1}}}}}}},"i":{"docs":{},"t":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}}},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274},"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}},"t":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}},"p":{"docs":{},"i":{"docs":{},"o":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{},"n":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}},",":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.029411764705882353}}}}}}}},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.03333333333333333}}}},"v":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.03333333333333333}},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}}}}}},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}}}}},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.03333333333333333}}}}},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.008547008547008548}},".":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}}}},"x":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"i":{"docs":{},"m":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}}}}}}}},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},")":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}}}}}}}}}}}}}}}},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"j":{"docs":{},"a":{"docs":{},"k":{"docs":{},"o":{"docs":{},"b":{"docs":{},"s":{"docs":{},"t":{"1":{"docs":{},"n":{"docs":{},"/":{"docs":{},"l":{"docs":{},"u":{"docs":{},"x":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.01680672268907563}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.06666666666666667},"Usage/":{"ref":"Usage/","tf":0.15},"Usage/Install.html":{"ref":"Usage/Install.html","tf":10.03960396039604},"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.03333333333333333}}}}}},".":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}}}}}},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}}}}}},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},":":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":10}}}}}}}},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}},"e":{"docs":{},".":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}}}},"n":{"docs":{},"s":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.01680672268907563}},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},")":{"docs":{},".":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.012605042016806723}}}},".":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}},"f":{"docs":{},"o":{"docs":{},".":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}},"s":{"docs":{},"s":{"docs":{},"u":{"docs":{"./":{"ref":"./","tf":0.03333333333333333}}}}},"t":{"docs":{},",":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}},".":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},".":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907},"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"./":{"ref":"./","tf":0.03333333333333333},"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.01282051282051282}}}},"g":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901},"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.010638297872340425}}},"a":{"docs":{},"d":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}},"e":{"docs":{},"d":{"docs":{},":":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}},"w":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.01680672268907563}}}}}},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{},":":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}},".":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}}}}},"u":{"docs":{},"x":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274},"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0425531914893617}},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.06666666666666667},"Usage/":{"ref":"Usage/","tf":0.1},"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.0594059405940594},"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.008547008547008548},"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.031914893617021274}},"n":{"docs":{},"e":{"docs":{},"o":{"docs":{},".":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}}}}}}}}}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"v":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.01282051282051282}}}},"d":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.03361344537815126}},"'":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.008547008547008548}},"s":{"docs":{},".":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}}}}},"_":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"l":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}}}},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}}},"d":{"docs":{},"m":{"docs":{},"a":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}},"i":{"docs":{},"n":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}},"s":{"docs":{},",":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}}},".":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}}}}},"n":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}},"t":{"docs":{},"h":{"docs":{},",":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}}},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}},"i":{"docs":{},"k":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},".":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}}}},"n":{"docs":{},"e":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274},"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0070921985815602835}},".":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}},"s":{"docs":{},"t":{"docs":{},",":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.017094017094017096}}},"e":{"docs":{},"n":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":5.004201680672269}}}}}}}},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418},"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.011363636363636364}}}},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}}}},"n":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901},"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.008403361344537815}},"e":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.03333333333333333},"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.04950495049504951},"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.008547008547008548},"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.05673758865248227}},".":{"docs":{"./":{"ref":"./","tf":0.03333333333333333},"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901},"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},".":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}}}}}}}}}}}},".":{"docs":{},".":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0070921985815602835}},"e":{"docs":{},";":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}}}},"h":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0070921985815602835}},")":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}}}}}}}},",":{"docs":{"Usage/":{"ref":"Usage/","tf":0.05}}},"?":{"docs":{"Usage/":{"ref":"Usage/","tf":0.05}}},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"/":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},".":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},".":{"docs":{},"j":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},"l":{"docs":{},"u":{"docs":{},"x":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"d":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}},"w":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418},"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907},"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.022727272727272728}},"e":{"docs":{},"r":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}},")":{"docs":{},",":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}},"s":{"docs":{},"t":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}},"x":{"docs":{},"t":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}},"o":{"docs":{},"w":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.019801980198019802},"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274},"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.010638297872340425}}},"d":{"docs":{},"e":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}},"t":{"docs":{},"e":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}},"u":{"docs":{},"m":{"docs":{},"b":{"docs":{},"e":{"docs":{},"r":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.01282051282051282},"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}}}}}}},"a":{"docs":{},"n":{"docs":{},"o":{"docs":{},".":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}},".":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}}},"p":{"docs":{},"m":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.03333333333333333},"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274},"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0070921985815602835}}}}},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}},"i":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.019801980198019802}},"x":{"docs":{},"e":{"docs":{},"l":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}},"'":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}},"d":{"docs":{},":":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}},"o":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"b":{"docs":{},"l":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}}}}},"t":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}},"i":{"docs":{},"t":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.02100840336134454}}}}},"r":{"docs":{},"t":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}},".":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.011363636363636364}}}}}},"r":{"docs":{},"o":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901},"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}},",":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}}},"v":{"docs":{},"i":{"docs":{},"d":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.03361344537815126}}}}}},"e":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},":":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418},"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.011363636363636364}}}}}},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},",":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}},",":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}}}}}},"t":{"docs":{},"h":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"n":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.03977272727272727}},",":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}}}}}}}}},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}},"s":{"docs":{},"u":{"docs":{},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.03333333333333333},"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0070921985815602835}}}}},"d":{"docs":{},"i":{"docs":{"Usage/":{"ref":"Usage/","tf":0.05},"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901},"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.03333333333333333},"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}},"e":{"docs":{},"r":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}}}}}},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901},"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}},".":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}},"d":{"docs":{},",":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.029411764705882353}}}},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.008403361344537815}}}}}}},"a":{"docs":{},"s":{"docs":{},"p":{"docs":{},"b":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"i":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.019801980198019802}}}}}}}}}},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901},"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418},"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}},"u":{"docs":{},"n":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.019801980198019802},"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274},"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418},"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.017045454545454544}},"n":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}},".":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}},"p":{"docs":{},"i":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}},"g":{"docs":{},"b":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.01680672268907563}}}}},"s":{"docs":{},"h":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"l":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.03333333333333333}}}}}},"u":{"docs":{},"l":{"docs":{},"d":{"docs":{},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274},"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}}}}}}}},"w":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.010638297872340425}}}},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}},",":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}}}},"o":{"docs":{},"f":{"docs":{},"t":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.03333333333333333}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.03333333333333333}}}},"t":{"docs":{},"h":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274},"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"?":{"docs":{"Usage/":{"ref":"Usage/","tf":0.05}}},",":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}}}}}},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.03333333333333333}}}}}},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.03333333333333333}}}}},"a":{"docs":{},"w":{"docs":{},"n":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.03333333333333333}}}}},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"Usage/":{"ref":"Usage/","tf":0.05},"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.0297029702970297},"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274},"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.031914893617021274},"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.011363636363636364}}}},"t":{"docs":{},"u":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.010638297872340425}},"s":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}}}}}}}}}}}}}}}}}},"y":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}},"s":{"docs":{},"h":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"m":{"docs":{},".":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{},"i":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}}},"i":{"docs":{},"p":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418},"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.008403361344537815}},".":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"b":{"docs":{},"r":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{},"n":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"x":{"docs":{},"e":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"n":{"docs":{},")":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}}}}}}}}}},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}}}}}}}}}}}}}},"n":{"docs":{},"u":{"docs":{},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"x":{"docs":{},"e":{"docs":{},"l":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"b":{"docs":{},"r":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{},"n":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"(":{"docs":{},"b":{"docs":{},"r":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{},"n":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},")":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"x":{"docs":{},"e":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"n":{"docs":{},",":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}}}}},"r":{"docs":{},"g":{"docs":{},"b":{"docs":{},"(":{"docs":{},"n":{"docs":{},",":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}}}}}}}},"x":{"docs":{},"y":{"docs":{},"(":{"docs":{},"x":{"docs":{},",":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}}}}},"r":{"docs":{},"g":{"docs":{},"b":{"docs":{},"(":{"docs":{},"x":{"docs":{},",":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"g":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"o":{"docs":{},"r":{"docs":{},"r":{"docs":{},"g":{"docs":{},"b":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"g":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}}}}}}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"o":{"docs":{},"w":{"docs":{},"(":{"docs":{},")":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0070921985815602835}}}},"u":{"docs":{},"e":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}},"e":{"docs":{},"t":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901},"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.008547008547008548},"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.025210084033613446}},"u":{"docs":{},"p":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.01282051282051282}},"?":{"docs":{"Usage/":{"ref":"Usage/","tf":0.05}}},".":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}},"e":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}},"m":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}}},"n":{"docs":{},"t":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}}},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}}}}}}},"g":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.021367521367521368},"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}},",":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{},"r":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}}}}}},"s":{"docs":{},".":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}}}}}}},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0070921985815602835}}}}},"i":{"docs":{},"c":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0070921985815602835}},"e":{"docs":{},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}},"c":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{},"n":{"docs":{},".":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}}}}},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418},"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.03409090909090909}},",":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}},".":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.011363636363636364}},"p":{"docs":{},"y":{"docs":{},",":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}},"s":{"docs":{},".":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}}}},"a":{"docs":{},"l":{"docs":{},"e":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}}}}},".":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},":":{"docs":{},":":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"\"":{"docs":{},",":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},":":{"docs":{},":":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"\"":{"docs":{},",":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}}}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"\"":{"docs":{},",":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"d":{"docs":{},"o":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.019801980198019802},"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274},"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0425531914893617}}}},"m":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":5.004201680672269},"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.017045454545454544}}}}}}},"b":{"docs":{},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}}},"i":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}},"q":{"docs":{},"u":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},",":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}}}},"y":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274},"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0070921985815602835}},"d":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}},"[":{"1":{"docs":{},"]":{"docs":{},":":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}},"docs":{}}}}}}}},"k":{"docs":{},"a":{"docs":{},"p":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}},"i":{"docs":{},"p":{"docs":{},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}}},"a":{"docs":{},"y":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}},"u":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.06666666666666667},"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901},"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.029914529914529916},"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907},"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}},"a":{"docs":{},"g":{"docs":{"Usage/":{"ref":"Usage/","tf":10.05}}}},"e":{"docs":{},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},",":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}},"r":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.011363636363636364}}}},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}},"n":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.008547008547008548}}}}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0070921985815602835}}}}}}}},"k":{"docs":{},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}}},"p":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274},"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0070921985815602835}}}}}},"t":{"docs":{},"c":{"docs":{},";":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"Usage/":{"ref":"Usage/","tf":0.1},"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274},"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0070921985815602835},"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}}},"n":{"docs":{},"e":{"docs":{},"l":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.008547008547008548}}}}}}},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}},"e":{"docs":{},"r":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}},"l":{"docs":{},"i":{"docs":{"Usage/":{"ref":"Usage/","tf":0.05},"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":10.01418439716312}}},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}}},"s":{"docs":{},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}}},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907},"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.011363636363636364}},",":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}}},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274},"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}},"i":{"docs":{},"g":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274},"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}},"u":{"docs":{},"r":{"docs":{"Usage/":{"ref":"Usage/","tf":0.05},"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901},"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":10.004273504273504}}}}}}},"s":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}}}}}},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}},"t":{"docs":{},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},".":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}}}}}},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.008403361344537815}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}}}}},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},",":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}}},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.008547008547008548},"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}},"$":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}},")":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}},":":{"docs":{},"$":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}}},"s":{"docs":{},"$":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}}}}}}},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.01680672268907563}}}},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":10}}}}}}}},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{},".":{"docs":{},"p":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"g":{"docs":{},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{},"a":{"docs":{},"l":{"docs":{},".":{"docs":{},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"w":{"docs":{},"a":{"docs":{},"p":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.011363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}},"\"":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}},"l":{"docs":{},"o":{"docs":{},"r":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.046218487394957986}},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}}}}}}},")":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.008403361344537815}}},".":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.012605042016806723}}}}}},"d":{"docs":{},"e":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}},".":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.011363636363636364}}}}}},"d":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}},"r":{"docs":{},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{},".":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418},"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.011363636363636364}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}}}},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"p":{"docs":{},":":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}}},"t":{"docs":{},"r":{"docs":{},"l":{"docs":{},"+":{"docs":{},"c":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}},"u":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0070921985815602835}}}}}}}}},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}},"?":{"docs":{"Usage/":{"ref":"Usage/","tf":0.05}}},".":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}},"s":{"docs":{},":":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274},"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"g":{"docs":{},"h":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}}}}}},"e":{"docs":{},"m":{"docs":{},".":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}}},"k":{"docs":{},"e":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274},"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}},"e":{"docs":{},"r":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}},"e":{"docs":{},"s":{"docs":{},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}}}}}}}}}}},"u":{"docs":{},"e":{"docs":{},"]":{"docs":{},",":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.01282051282051282}}},"]":{"docs":{},",":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}}}},"o":{"docs":{},"u":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}}}}},"w":{"docs":{},"o":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.008547008547008548}}}}},"w":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{"Usage/":{"ref":"Usage/","tf":0.05},"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.019801980198019802},"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.021367521367521368},"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}}}}},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}},"r":{"docs":{},"i":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}},"d":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}},"e":{"docs":{},"b":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}},"d":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}},"h":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418},"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}}}}},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.01680672268907563}}}}}},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}}},"$":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.019801980198019802},"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274},"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0070921985815602835}}},".":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}},"/":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},".":{"docs":{},"s":{"docs":{},"h":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}}}}}}}}}}}}}}}}},"/":{"docs":{},"t":{"docs":{},"m":{"docs":{},"p":{"docs":{},"/":{"docs":{},"l":{"docs":{},"u":{"docs":{},"x":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}}}}}}}}}}}},"h":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"/":{"docs":{},"l":{"docs":{},"u":{"docs":{},"x":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274},"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0070921985815602835}}}}}}}}}},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}}}}},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},".":{"docs":{},"s":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"/":{"docs":{},"l":{"docs":{},"u":{"docs":{},"x":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"r":{"docs":{},"/":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}}}},"/":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.028409090909090908}}}},"f":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}},".":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}},"e":{"docs":{},"d":{"docs":{},":":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}},"l":{"docs":{},"l":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}},"s":{"docs":{},"e":{"docs":{},",":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}},"]":{"docs":{},",":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.01282051282051282}}},"]":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}},",":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}}},"x":{"docs":{},"'":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}}},"l":{"docs":{},"e":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.01282051282051282},"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.022727272727272728}},".":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418},"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}},"o":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}}}},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}},",":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.011363636363636364}}},".":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}}}},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}},"m":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}}},"d":{"docs":{},"u":{"docs":{},"l":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}},"v":{"docs":{},"e":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}},"a":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"x":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.021367521367521368},"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.008403361344537815}}}}}},"i":{"docs":{},"n":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}},"d":{"docs":{},"e":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907},"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}},"k":{"docs":{},"e":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.011363636363636364}}}}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.017045454545454544}}}}}}}},"o":{"docs":{},"n":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.017094017094017096},"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907},"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}},"c":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}},".":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0070921985815602835}}},"e":{"docs":{},".":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901},"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0070921985815602835}}}},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274},"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}},".":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.008547008547008548}}}}}}}},"u":{"docs":{},"t":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901},"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}},".":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}},":":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.010638297872340425}}}}}},".":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.012605042016806723}},".":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}}}},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},".":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.008403361344537815}}}}}}}},"l":{"docs":{},"d":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},".":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"b":{"docs":{},"o":{"docs":{},"s":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}}}},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.010638297872340425}},":":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}}},"n":{"docs":{},"d":{"docs":{},"o":{"docs":{},"r":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}},"i":{"docs":{},"m":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.03361344537815126}},"e":{"docs":{},".":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.008403361344537815}}},"s":{"docs":{},".":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.004201680672268907}}}}}}},"r":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}},"y":{"docs":{},"e":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901},"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0070921985815602835}},"t":{"docs":{},",":{"docs":{"Usage/Install.html":{"ref":"Usage/Install.html","tf":0.009900990099009901}}}}},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},".":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}}}}},")":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.008403361344537815}}},",":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.008403361344537815}}}},"\"":{"docs":{},"l":{"docs":{},"e":{"docs":{},"d":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}},"_":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"l":{"docs":{},"\"":{"docs":{},":":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}}}}},"d":{"docs":{},"m":{"docs":{},"a":{"docs":{},"\"":{"docs":{},":":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}}},"f":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"_":{"docs":{},"h":{"docs":{},"z":{"docs":{},"\"":{"docs":{},":":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{},":":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}}}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"x":{"docs":{},"\"":{"docs":{},":":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.008547008547008548}}}}}}}}}},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"o":{"docs":{},"m":{"docs":{},"\"":{"docs":{},":":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"\"":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}}},"s":{"docs":{},"e":{"docs":{},"g":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{},":":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}}}}}}}}}}}}},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.008547008547008548}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"k":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}},":":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}}}}},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"r":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"/":{"docs":{},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.011363636363636364}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"'":{"docs":{},"n":{"docs":{},"a":{"docs":{},"n":{"docs":{},"o":{"docs":{},"'":{"docs":{},".":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}}}},"s":{"docs":{},"e":{"docs":{},"g":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"'":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"'":{"docs":{},"]":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"'":{"docs":{},"]":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}}}}}}},"[":{"1":{"0":{"docs":{},",":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}},"docs":{},",":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}},"2":{"docs":{},",":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}},"3":{"docs":{},".":{"1":{"1":{"docs":{},".":{"2":{"0":{"1":{"8":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0070921985815602835}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"4":{"docs":{},",":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}},"5":{"docs":{},",":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}},"7":{"docs":{},",":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}},"8":{"docs":{},",":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}},"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}},",":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}},"[":{"0":{"docs":{},",":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}},"3":{"docs":{},",":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}},"6":{"docs":{},",":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}},"docs":{}},"]":{"docs":{},",":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.008547008547008548}}}},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"s":{"docs":{},":":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.010638297872340425}}}}}}}},"]":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.008547008547008548}}},"k":{"docs":{},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}}}}}},"{":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274},"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.028409090909090908}}},"}":{"docs":{"Usage/Configuration.html":{"ref":"Usage/Configuration.html","tf":0.004273504273504274}},")":{"docs":{},";":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.028409090909090908}}}}},"*":{"docs":{},":":{"8":{"0":{"8":{"0":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},":":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}},"`":{"docs":{},"(":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}}},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{},"━":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"│":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.03546099290780142}}},"└":{"docs":{},"─":{"2":{"3":{"6":{"7":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"├":{"docs":{},"─":{"2":{"3":{"6":{"5":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"╭":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"╮":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0070921985815602835}}}}}}}}}}}}}}}}}}}}}}}}},"╰":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"─":{"docs":{},"╯":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0070921985815602835}}}}}}}}}}}}}}}}}}}}}}}}},"●":{"docs":{"Usage/CLI.html":{"ref":"Usage/CLI.html","tf":0.0035460992907801418}}},"=":{"docs":{"Scripting/SupportLib/":{"ref":"Scripting/SupportLib/","tf":0.01680672268907563},"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}},">":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.028409090909090908}}}},"+":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.011363636363636364}}},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}}},"`":{"docs":{},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{},"`":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}}}}}}},"​":{"docs":{"Contributing/Modules/CompileAndRun.html":{"ref":"Contributing/Modules/CompileAndRun.html","tf":0.005681818181818182}}}},"length":4656},"corpusTokens":["\"/usrdata/usrcode/example\");","\"led","\"led_channel\":","\"led_count\":","\"led_dma\":","\"led_freq_hz\":","\"led_invert\":","\"led_pin\":","\"line\":","\"matrix\":","\"random\":","\"real\"","\"segmentconfiguration\":","\"segments\":","\"snake\",","\"snake\":","$","'log","'nano'.","'segmentsconfiguration'","'status']","'version']","(/etc/systemd/system/luxcena","(3","(_code)","(_stderr)","(_stdout)","(boot)","(dev)","(in","(luxcena","(prefer","(press","(running)","(shouldn't","(skipnode)","(ssh","(where","(x,","*:8080","+",".","./bin/install.sh","//","/bin/bash","/home/lux","/system.slice/luxcena","/tmp/luxcena","/usr/bin","0","0)","0.","05","10","10!","10,","10],","12","18,","20","2018","22:55:28","2365","23:5:21:401]","23:5:22:462]","24","255","53,","6min","800000,",":",":`(","=","=>","[","[,","[1,","[10,","[2,","[3.11.2018","[4,","[5,","[7,","[8,","[[0,","[[3,","[[6,","[],","[args:","]","_code","`throw`","above,","access","access,","activ","active:","actual","add","ago","alia","allow","anoth","answer","anyth","anyways).","apart","app","app']","app.","app.j","appear","argument,","arrang","array,","assum","assur","attach","back","badli","be","below:","bit","blue","blue,","boot","boot,","boot:","boots:","branch","branch.","bright","brightest.","brightness.","buffer","buffer.","build","by:","call","called.","cd","cgroup:","chang","channel","check","checker","chosen","class","class,","cli","clone","closes,","code","code.","color","color(red,","color)","color.","command","command$","command)","command:$","commands$","compileandrun","compilerun.python(global.dirswap","compon","concern,","conf","config","configur","connect","console.","contain","control.","controlling.","convert","converter.","count","count\"","crash.","ctrl+c","current","darkest","data","dec","default","defaults:","defin","delet","depend","dev","dimenson","din","direct)","directory,","display","display.","dma","do","do,","doing.","don't","done","dy","each","easi","editor","editor,","element","else,","empti","enabled)","enabled;","encount","enter","entri","entries.","entry.pi","error","event","exampl","exit","exit)━━━━━━━━━━━━━━━━━━","exits,","export","f","fail","fail.","failed:","fall","false,","false],","false]]","false]],","file","file.","find","first","fix'","folder","folder,","folder.","follow","full","gener","get","git","gpio","green","green,","guid","guide!","hang,","hard","have","haven't","here","here.","hexadecim","hexcolor(value)","highest","hour","https://github.com/jakobst1n/luxcena","index","info.","initi","instal","install.","installed.","installing:","instanti","instruct","instructions:","intens","intensity).","intensity.","interfac","interface.","introduct","invert","issu","it,","it.","itself.","know","languag","last","later.","leav","led","led'","led's.","led_channel","led_count","led_dma","led_invert","led_pin","leds,","leds.","lenght","length,","level","librari","likings.","line","line.","list,","listen","listner","load","loaded:","local","located):","located.","log","look","lowest","lux","luxcena","luxcenaneo.strip","made","main","make","matrix","messag","method","modul","more","move","n","n.","nano.","need","neo","neo,","neo.","neo...","neo.install.log","neo.servic","neo.service;","neo.sh","neo.sh)","neo.strip","neo/src/app.j","neo/src/bin/luxcena","neo/userdata/config/strip.json","neo?","new","newer","newer),","newest","next","node","note","now","npm","number","object","object.","old","on","on.","onc","one.","open","option","option.","order).","out","out.","output","output.","output:","parameter,","parameters,","path","pi","pid:","pixel","pixel'","place","pleas","point","port","port.","posit","possibl","post","preset:","print","process","process,","provid","python","python,","python.compil","python.constructor","python.run","pythonsupportfil","questions.","raspberri","readi","realli","reason","recommend","red,","refeer","refer","remov","report","report.","repres","requir","return","rgb","root","rpi","run","run.","running,","say","sc","sc.on(\"close\",","sc.on(\"stderr::end\",","sc.on(\"stderr::out\",","sc.on(\"stdout::data\",","sc.on(\"stdout::end\",","scale","screen.","script","script,","script.","script.py,","scripts.","second","see","seem","segment","segment,","segmentconfigur","segments.","selectbranch","sent","sequenc","server.","servic","service/app","session,","set","setup","setup.","setup?","shield","shield,","shortli","shouldn't","show","simpl","skap","skipnod","softwar","software.","someon","someth","something,","something?","sourc","spawn","spent","square,","start","stash","statu","status━━━━━━━━━━━━━━━━━━","stay","still","stop","stream.","strip","strip.getbrightness():","strip.getpixelcolor(n)","strip.getpixels():","strip.numpixels():","strip.setbrightness(brightness)","strip.setpixelcolor(n,","strip.setpixelcolorrgb(n,","strip.setpixelcolorxy(x,","strip.setpixelcolorxyrgb(x,","strip.setsegmentcolorrgb(segment,","strip.show()","strongli","stue","subdir","success","sudo","sum","support","system","systemd","systemd[1]:","tail","take","termin","them.","thing","thing.","thing?","this:","through","touched,","troubl","troubleshoot","true],","true]],","two","uninstal","unknown","unless","up","updat","us","usag","useful","useless,","user","usual","utc;","valu","value.","values.","var","vendor","verbos","version","version:","vim","want","webserv","wed","white","whole","won't","word","work","worri","write","y)","y,","ye","yet,","yourself.","{","}","});","​","━━━app","━━━servic","━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━","│","└─2367","├─2365","╭─────────────────────╮","╰─────────────────────╯","●"],"pipeline":["stopWordFilter","stemmer"]},"store":{"./":{"url":"./","title":"Introduction","keywords":"","body":"Luxcena-Neo\nDependencies \nBranch (dev) \nInstall\nPlease refer to this guide for installing: Install Luxcena-neo.\nIssues\nThere might still be a bit hard for someone not having spent hours looking at the source to use this software.\nBut i assure you that it will be really easy to use shortly\n"},"Usage/":{"url":"Usage/","title":"Usage","keywords":"","body":"Usage\nInstall\nWant to install luxcena-neo? This is the guide!\nConfiguration\nJust installed luxcena-neo, or you have changed your setup? This is the guide!\nCLI\nReady to start the thing? Or change something?\n"},"Usage/Install.html":{"url":"Usage/Install.html","title":"Install","keywords":"","body":"Installation\nIf you want to install luxcena-neo to use it, these are the instructions:\n\nRequirements\n\nThe luxcena-shield\nAccess to the raspberry pi (SSH or direct)\nRoot access (preferably through the sudo command)\n\nInstall\n\nStart with logging into your Raspberry Pi\nRun these commands$ git clone https://github.com/JakobST1n/Luxcena-Neo\n$ cd Luxcena-Neo\n$ sudo ./bin/install.sh\n\n\nFollow the instructions on screen. You should answer yes to most of the questions.\nThe install-process might seem to hang, but there is just no output being sent to the console. If you want to see a bit more verbose output. Open another terminal session, and run this command:$ tail -n 10 -f /tmp/luxcena-neo.install.log\n\nThis is also where you will find possible reasons for a failed install.\nLuxcena-Neo should now be installed. Start it with this command$ luxcena-neo start\n\n\n\nTroubleshooting\nWe haven't encountered any troubles yet, but once we do, we will post fix'es here.\n\nYou should now be all set to configuring luxcena-neo.\n"},"Usage/Configuration.html":{"url":"Usage/Configuration.html","title":"Configuration","keywords":"","body":"Configuration\nHow to setup luxcena-neo to work with your setup\n\n$ sudo lux-neo conf\n\nWhen running the command above, a config file should appear in the editor 'nano'.\n{\n \"led_count\": 53,\n \"segments\": [],\n \"matrix\": [],\n \"segmentConfiguration\": \"snake\",\n \"led_pin\": 18,\n \"led_freq_hz\": 800000,\n \"led_dma\": 10,\n \"led_invert\": false,\n \"led_channel\": 0\n}\n\nIf you rather want to use vim or another editor, the file is at /home/lux-neo/userdata/config/strip.json\n\nled_count\nThis is the number of LED's you want to control.\nsegments\nThis is a simple list, here you should add the lenghts of all your segments. Please enter the \"real\" length, and don't start counting from 0. If you just want one segment, you should just have one element in the list, which is the number of led's you are controlling.\nWhen summing this list, it should check out with the \"led-count\"-option.\nmatrix\nThis is a two dimensonal array, used to arrange the segments in a matrix of your likings. Here you enter the segment-number to represent them. In the example above, all the segments are in one line. If you want to have them in a square, it could look like this:\n\"segments\": [10, 10, 10, 10, 10, 10, 10, 10, 10],\n\"matrix\": [\n [[0, false], [1, true], [2, false]],\n [[3, true], [4, false], [5, true]],\n [[6, false], [7, true], [8, false]]\n]\n\nEach entry looks is a list, with two parameters, [, ]\nIf you don't have a reference to all the segments or something, the matrix setup will fail. And fall back to 'segmentsconfiguration'\n\nsegmentconfiguration\nIf the matrix-option is empty or badly setup. The matrix will be set up using one of these defaults:\n\"snake\":\n\"line\":\n\"random\":\nled_pin\nIf using the luxcena-shield, you shouldn't have to worry about this option. But set it to the GPIO-port connected to your pixel's din-port.\nled_dma\nIf using a newer RPi (3 or newer), leave this as 10! Or your file-system might crash.\n\nThis is the dma-channel used to generate the data-stream. If you for some reason need channel 10 for something else, you can change it. But i strongly recommend leaving it to 10!\nled_invert\nThis should not be touched, unless you are using a inverting level converter.\nled_channel\nLeave this as default unless you know what you are doing.\n\nNow you might want to take a look at the command line interface.\n"},"Usage/CLI.html":{"url":"Usage/CLI.html","title":"CLI","keywords":"","body":"Command line interface\n\nThis gets installed in the /usr/bin directory, and can be called by:\n$ luxcena-neo.sh\n\nor is alias\n$ lux-neo\n\nThis CLI assumes root access, so please run it with sudo\n\nOptions\nsudo lux-neo uninstall\nUninstall the whole thing. You will have to remove this script yourself.\nsudo lux-neo update (skipNode)\nUpdate to the newest version on the current branch.\nIf skipNode is the second argument, npm won't be run.\nsudo lux-neo conf\nOpen the strip-config in nano.\nsudo lux-neo start (boot)\nStart the server.\nIf you add boot, it will start when the system boots:\nsudo lux-neo start boot\n\nsudo lux-neo stop (boot)\nStop the server.\nIf you add boot, it will NOT start when the system boots:\nsudo lux-neo start boot\n\nsudo lux-neo status\nThis will output the status of the app. First it reports if the service is running,\nand some general info. Then it prints the systemd-status report.\nExample output:\nLuxcena-neo-cli [args: 'status']\n\n╭─────────────────────╮\n│ Service active: yes │\n│ Starts on boot: yes │\n│ Has failed: no │\n╰─────────────────────╯\n\n━━━Service status━━━━━━━━━━━━━━━━━━\n● luxcena-neo.service - Luxcena Neo\n Loaded: loaded (/etc/systemd/system/luxcena-neo.service; enabled; vendor preset: enabled)\n Active: active (running) since Wed 2018-12-05 22:55:28 UTC; 6min ago\n Main PID: 2365 (luxcena-neo.sh)\n CGroup: /system.slice/luxcena-neo.service\n ├─2365 /bin/bash /home/lux-neo/src/bin/luxcena-neo.sh\n └─2367 node /home/lux-neo/src/app.js\n\nDec 05 22:55:28 LUXCENA-STUE-SKAP systemd[1]: Started Luxcena Neo.\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\nsudo lux-neo log service/app\nThis shows the last 20 lines of the chosen log-file. And stays open to show\nall new entries.\nExample output:\nLuxcena-neo-cli [args: 'log app']\n\n━━━App log (press ctrl+c to exit)━━━━━━━━━━━━━━━━━━\n[3.11.2018 23:5:21:401] EVENT Starting Luxcena-Neo...\n[3.11.2018 23:5:22:462] SUCCESS Webserver now listening at *:8080\n\nsudo lux-neo version\nCurrently not really doing anything usefull apart from showing which branch you are on.\nExample output:\nLuxcena-neo-cli [args: 'version']\n\n╭─────────────────────╮\n│ Version: Unknown │\n│ branch : dev │\n╰─────────────────────╯\n\nsudo lux-neo selectBranch \nThis will change what branch you are on to . Stashing changes (shouldn't be a concern, but just saying it anyways).\nPlease note that the version-checker now will just be useless, as it does not now what branch we really are on.\n"},"Scripting/SupportLib/":{"url":"Scripting/SupportLib/","title":"Support Library","keywords":"","body":"Support Library\n\nclass Strip\nThis is the object you are refeering to when you want to do things with LED's.\nYou shouldn't have to do instantiate your own new strip-object as you can use the one\nset up by the software itself.\nLuxcenaNeo.strip\nor\nneo.strip\n\nStrip.show()\nDisplay all the changes made to the LEDs, on the actual LEDs.\nStrip.setPixelColor(n, color)\nSet LED at position n to the provided 24-bit color value (in RGB order).\nStrip.setPixelColorXY(x, y, color)\nSet LED at position (x, y) in the defined matrix to the provided 24-bit color value (in RGB order).\nStrip.setPixelColorRGB(n, red, green, blue, white = 0)\nSet LED at position n to the provided red, green, and blue color.\nEach color component should be a value from 0 to 255 (where 0 is the\nlowest intensity and 255 is the highest intensity).\nStrip.setPixelColorXYRGB(x, y, red, green, blue, white = 0)\nSet LED at position (x, y) in the defined matrix to the provided red, green, and blue color.\nEach color component should be a value from 0 to 255 (where 0 is the\nlowest intensity and 255 is the highest intensity).\nStrip.setSegmentColorRGB(segment, red, green, blue, white = 0)\nSet a whole segment to the provided red, green and blue color.\nEach color component should be a value from 0 to 255 (where 0 is the\nlowest intensity and 255 is the highest intensity).\nStrip.setBrightness(brightness)\nScale each LED in the buffer by the provided brightness. A brightness\nof 0 is the darkest and 255 is the brightest.\nStrip.getBrightness():\nGet the brightness value for each LED in the buffer. A brightness\nof 0 is the darkest and 255 is the brightest.\nStrip.getPixels():\nReturn an object which allows access to the LED display data as if\nit were a sequence of 24-bit RGB values.\nStrip.numPixels():\nReturn the number of pixels in the display.\nStrip.getPixelColor(n)\nGet the 24-bit RGB color value for the LED at position n.\n\nColor(red, green, blue, white = 0)\nConvert the provided red, green, blue color to a 24-bit color value.\nEach color component should be a value 0-255 where 0 is the lowest intensity\nand 255 is the highest intensity.\nhexColor(value)\nConvert the provided hexadecimal color to a 24-bit color value.\n"},"Contributing/Modules/CompileAndRun.html":{"url":"Contributing/Modules/CompileAndRun.html","title":"CompileAndRun","keywords":"","body":"Index\n\nLocals\nvar pythonSupportFiles\nPoints to the files for our python support code. They should be in a subdir of the module itself.\nExported\nclass Python\nThis is exported as Python, just so that we could add other languages later. Used to build and run python-scripts with our support-code.\nmethod Python.constructor\nTakes one parameter, which is the full path to the folder where the script is located.\nWhen initializing the class, this will be called. Can be done like this:\nnew compileRun.Python(global.DirSwap + \"/usrData/usrCode/example\");\n\nmethod Python.compile\nThis deletes old build-folder, and makes a new one. It then moves all required files into the build-folder, making us ready for running the script.\nmethod Python.run\nSpawns a new process, starting entry.py in our build-folder. It also attaches event-listners on our class-object. All of them is in the example below:\nlet sc = new compileRun.Python(global.DirSwap + \"/usrData/usrCode/example\");\n​\n// When data is printed from the python-script\nsc.on(\"stdout::data\", (_stdout) => { });\n// Last write when script closes, any exiting messages\nsc.on(\"stdout::end\", (_stdout) => { });\n// When something is printed from the python-script to the error-out. Usually when a `throw` is called\nsc.on(\"stderr::out\", (_stderr) => { });\n// Last words when process is dying from an error :`(\nsc.on(\"stderr::end\", (_stderr) => { });\n// When script exits, _code is the exit-code\nsc.on(\"close\", (_code) => { });\n\nPython\nThis is the support-files for user-made scripts.\nEntry.py\nThe entry-point when running a script. A file called script.py, containing the user-script, should be placed next to this file. Starting it should be done like this (Where app-root is where our app.js is located):\npython entry.py \n"}}} diff --git a/docs/_book/service-worker.js b/docs/_book/service-worker.js deleted file mode 100644 index 3e9cfea..0000000 --- a/docs/_book/service-worker.js +++ /dev/null @@ -1,268 +0,0 @@ -/** - * Copyright 2016 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. -*/ - -// DO NOT EDIT THIS GENERATED OUTPUT DIRECTLY! -// This file should be overwritten as part of your build process. -// If you need to extend the behavior of the generated service worker, the best approach is to write -// additional code and include it using the importScripts option: -// https://github.com/GoogleChrome/sw-precache#importscripts-arraystring -// -// Alternatively, it's possible to make changes to the underlying template file and then use that as the -// new base for generating output, via the templateFilePath option: -// https://github.com/GoogleChrome/sw-precache#templatefilepath-string -// -// If you go that route, make sure that whenever you update your sw-precache dependency, you reconcile any -// changes made to this original template file with your modified copy. - -// This generated service worker JavaScript will precache your site's resources. -// The code needs to be saved in a .js file at the top-level of your site, and registered -// from your pages in order to be used. See -// https://github.com/googlechrome/sw-precache/blob/master/demo/app/js/service-worker-registration.js -// for an example of how you can register this script and handle various service worker events. - -/* eslint-env worker, serviceworker */ -/* eslint-disable indent, no-unused-vars, no-multiple-empty-lines, max-nested-callbacks, space-before-function-paren, quotes, comma-spacing */ -'use strict'; - -var precacheConfig = [["/Contributing/Modules/CompileAndRun.html","77703217167b1b5370cd222741330fd3"],["/Scripting/SupportLib/index.html","a20303652ec23fea83ae137779201ed6"],["/Usage/CLI.html","f8bb4ad1a3c62d103fea3e9e84112fe1"],["/Usage/Configuration.html","6b2e923bb53c8de168506505d3c58f1c"],["/Usage/Install.html","77cfe2a15a8e0992841a77398e38d34d"],["/Usage/index.html","1098bb18c93de031b96253bdd04658eb"],["/gitbook/fonts/fontawesome/fontawesome-webfont.eot","25a32416abee198dd821b0b17a198a8f"],["/gitbook/fonts/fontawesome/fontawesome-webfont.svg","d7c639084f684d66a1bc66855d193ed8"],["/gitbook/fonts/fontawesome/fontawesome-webfont.ttf","1dc35d25e61d819a9c357074014867ab"],["/gitbook/fonts/fontawesome/fontawesome-webfont.woff","c8ddf1e5e5bf3682bc7bebf30f394148"],["/gitbook/gitbook-plugin-api/api.css","ad443308d0937629d2811cff9053e0c2"],["/gitbook/gitbook-plugin-api/api.js","b592adcca0c3d691f3a351b05e62c77a"],["/gitbook/gitbook-plugin-code/plugin.css","81aeb06c3e8d1c221773e63fe05f737a"],["/gitbook/gitbook-plugin-code/plugin.js","2a3bab062a1c3446333f10c60e8643a1"],["/gitbook/gitbook-plugin-comment/plugin.css","5291855572a41c85319d21a4b45f2eee"],["/gitbook/gitbook-plugin-comment/plugin.js","dc48b2f0bd1e4bdd1ad03d60d32c9bd6"],["/gitbook/gitbook-plugin-emphasize/plugin.css","6c90145b226c807ebbb334bb7d94d8ee"],["/gitbook/gitbook-plugin-fontsettings/fontsettings.js","fab8f6412ce18bb367635b1bcae503ca"],["/gitbook/gitbook-plugin-fontsettings/website.css","056a6db3eef3553a78f3b7e02356b2e7"],["/gitbook/gitbook-plugin-github/plugin.js","93ff35be0de181d440c84e8f6d76ab45"],["/gitbook/gitbook-plugin-highlight/ebook.css","fa203ae16ad9f01f4d20061fb9e7a6cc"],["/gitbook/gitbook-plugin-highlight/website.css","acce01e3e11cbd4b3882e7732d81f954"],["/gitbook/gitbook-plugin-hints/plugin-hints.css","35cad665bf4ba951a2f3a1d3253b6089"],["/gitbook/gitbook-plugin-livereload/plugin.js","9e48eceeaa9ee3f1f734eddd3dfe04da"],["/gitbook/gitbook-plugin-lunr/lunr.min.js","9424f087f85dc7be8f7c7bc35b720f26"],["/gitbook/gitbook-plugin-lunr/search-lunr.js","4e91f557c3d72be045b9e146c2bc90bc"],["/gitbook/gitbook-plugin-offline/service-worker-registration.js","0b4c35226075896152de214f8860b76e"],["/gitbook/gitbook-plugin-pretty-term/terminal.css","02c933b557fe724dcadd3dfa43dfc33c"],["/gitbook/gitbook-plugin-pretty-term/terminal.js","424e08c8a0b2f3d9e6706f15af29a714"],["/gitbook/gitbook-plugin-search/lunr.min.js","9424f087f85dc7be8f7c7bc35b720f26"],["/gitbook/gitbook-plugin-search/search-engine.js","59ed9456a958a2930326955747048f8a"],["/gitbook/gitbook-plugin-search/search.css","6c8330e8aadd979bb37f872182257bdd"],["/gitbook/gitbook-plugin-search/search.js","5ba7dbf7c0e78b02dc48f83d55729e36"],["/gitbook/gitbook-plugin-sharing/buttons.js","e7c1c051d685b9e7530c1a6675e6b119"],["/gitbook/gitbook.js","e53bf9037b1d1c9810486ef4c5493624"],["/gitbook/images/apple-touch-icon-precomposed-152.png","59313d171157503f5de7fd7e07f3c495"],["/gitbook/style.css","88a3a50e3559bc577c1be0de4fcc6c6d"],["/gitbook/theme.js","176e71ac3bf185b7f08e0f6cb919f1e8"],["/index.html","ab2e608a2271cd696e6d299e35137ff5"]]; -var cacheName = 'sw-precache-v3--' + (self.registration ? self.registration.scope : ''); - - -var ignoreUrlParametersMatching = [/^utm_/]; - - - -var addDirectoryIndex = function (originalUrl, index) { - var url = new URL(originalUrl); - if (url.pathname.slice(-1) === '/') { - url.pathname += index; - } - return url.toString(); - }; - -var cleanResponse = function (originalResponse) { - // If this is not a redirected response, then we don't have to do anything. - if (!originalResponse.redirected) { - return Promise.resolve(originalResponse); - } - - // Firefox 50 and below doesn't support the Response.body stream, so we may - // need to read the entire body to memory as a Blob. - var bodyPromise = 'body' in originalResponse ? - Promise.resolve(originalResponse.body) : - originalResponse.blob(); - - return bodyPromise.then(function(body) { - // new Response() is happy when passed either a stream or a Blob. - return new Response(body, { - headers: originalResponse.headers, - status: originalResponse.status, - statusText: originalResponse.statusText - }); - }); - }; - -var createCacheKey = function (originalUrl, paramName, paramValue, - dontCacheBustUrlsMatching) { - // Create a new URL object to avoid modifying originalUrl. - var url = new URL(originalUrl); - - // If dontCacheBustUrlsMatching is not set, or if we don't have a match, - // then add in the extra cache-busting URL parameter. - if (!dontCacheBustUrlsMatching || - !(url.pathname.match(dontCacheBustUrlsMatching))) { - url.search += (url.search ? '&' : '') + - encodeURIComponent(paramName) + '=' + encodeURIComponent(paramValue); - } - - return url.toString(); - }; - -var isPathWhitelisted = function (whitelist, absoluteUrlString) { - // If the whitelist is empty, then consider all URLs to be whitelisted. - if (whitelist.length === 0) { - return true; - } - - // Otherwise compare each path regex to the path of the URL passed in. - var path = (new URL(absoluteUrlString)).pathname; - return whitelist.some(function(whitelistedPathRegex) { - return path.match(whitelistedPathRegex); - }); - }; - -var stripIgnoredUrlParameters = function (originalUrl, - ignoreUrlParametersMatching) { - var url = new URL(originalUrl); - // Remove the hash; see https://github.com/GoogleChrome/sw-precache/issues/290 - url.hash = ''; - - url.search = url.search.slice(1) // Exclude initial '?' - .split('&') // Split into an array of 'key=value' strings - .map(function(kv) { - return kv.split('='); // Split each 'key=value' string into a [key, value] array - }) - .filter(function(kv) { - return ignoreUrlParametersMatching.every(function(ignoredRegex) { - return !ignoredRegex.test(kv[0]); // Return true iff the key doesn't match any of the regexes. - }); - }) - .map(function(kv) { - return kv.join('='); // Join each [key, value] array into a 'key=value' string - }) - .join('&'); // Join the array of 'key=value' strings into a string with '&' in between each - - return url.toString(); - }; - - -var hashParamName = '_sw-precache'; -var urlsToCacheKeys = new Map( - precacheConfig.map(function(item) { - var relativeUrl = item[0]; - var hash = item[1]; - var absoluteUrl = new URL(relativeUrl, self.location); - var cacheKey = createCacheKey(absoluteUrl, hashParamName, hash, false); - return [absoluteUrl.toString(), cacheKey]; - }) -); - -function setOfCachedUrls(cache) { - return cache.keys().then(function(requests) { - return requests.map(function(request) { - return request.url; - }); - }).then(function(urls) { - return new Set(urls); - }); -} - -self.addEventListener('install', function(event) { - event.waitUntil( - caches.open(cacheName).then(function(cache) { - return setOfCachedUrls(cache).then(function(cachedUrls) { - return Promise.all( - Array.from(urlsToCacheKeys.values()).map(function(cacheKey) { - // If we don't have a key matching url in the cache already, add it. - if (!cachedUrls.has(cacheKey)) { - var request = new Request(cacheKey, {credentials: 'same-origin'}); - return fetch(request).then(function(response) { - // Bail out of installation unless we get back a 200 OK for - // every request. - if (!response.ok) { - throw new Error('Request for ' + cacheKey + ' returned a ' + - 'response with status ' + response.status); - } - - return cleanResponse(response).then(function(responseToCache) { - return cache.put(cacheKey, responseToCache); - }); - }); - } - }) - ); - }); - }).then(function() { - - // Force the SW to transition from installing -> active state - return self.skipWaiting(); - - }) - ); -}); - -self.addEventListener('activate', function(event) { - var setOfExpectedUrls = new Set(urlsToCacheKeys.values()); - - event.waitUntil( - caches.open(cacheName).then(function(cache) { - return cache.keys().then(function(existingRequests) { - return Promise.all( - existingRequests.map(function(existingRequest) { - if (!setOfExpectedUrls.has(existingRequest.url)) { - return cache.delete(existingRequest); - } - }) - ); - }); - }).then(function() { - - return self.clients.claim(); - - }) - ); -}); - - -self.addEventListener('fetch', function(event) { - if (event.request.method === 'GET') { - // Should we call event.respondWith() inside this fetch event handler? - // This needs to be determined synchronously, which will give other fetch - // handlers a chance to handle the request if need be. - var shouldRespond; - - // First, remove all the ignored parameters and hash fragment, and see if we - // have that URL in our cache. If so, great! shouldRespond will be true. - var url = stripIgnoredUrlParameters(event.request.url, ignoreUrlParametersMatching); - shouldRespond = urlsToCacheKeys.has(url); - - // If shouldRespond is false, check again, this time with 'index.html' - // (or whatever the directoryIndex option is set to) at the end. - var directoryIndex = 'index.html'; - if (!shouldRespond && directoryIndex) { - url = addDirectoryIndex(url, directoryIndex); - shouldRespond = urlsToCacheKeys.has(url); - } - - // If shouldRespond is still false, check to see if this is a navigation - // request, and if so, whether the URL matches navigateFallbackWhitelist. - var navigateFallback = ''; - if (!shouldRespond && - navigateFallback && - (event.request.mode === 'navigate') && - isPathWhitelisted([], event.request.url)) { - url = new URL(navigateFallback, self.location).toString(); - shouldRespond = urlsToCacheKeys.has(url); - } - - // If shouldRespond was set to true at any point, then call - // event.respondWith(), using the appropriate cache key. - if (shouldRespond) { - event.respondWith( - caches.open(cacheName).then(function(cache) { - return cache.match(urlsToCacheKeys.get(url)).then(function(response) { - if (response) { - return response; - } - throw Error('The cached response that was expected is missing.'); - }); - }).catch(function(e) { - // Fall back to just fetch()ing the request if some unexpected error - // prevented the cached response from being valid. - console.warn('Couldn\'t serve response for "%s" from cache: %O', event.request.url, e); - return fetch(event.request); - }) - ); - } - } -}); - - - - - - - diff --git a/docs/assets/js-sequence.js b/docs/assets/js-sequence.js new file mode 100644 index 0000000..b9324c8 --- /dev/null +++ b/docs/assets/js-sequence.js @@ -0,0 +1,7 @@ + +let diagrams = document.querySelector("#diagram"); +for (let i=0; i < diagrams.length; i++) { + let diagram = diagrams[i]; + let svg = Diagram.parse(diagram.innerHTML); + diagram.drawSVG("diagram", {theme: "simple"}) +} diff --git a/docs/assets/luxcena-colors.css b/docs/assets/luxcena-colors.css new file mode 100644 index 0000000..e83e548 --- /dev/null +++ b/docs/assets/luxcena-colors.css @@ -0,0 +1,66 @@ +.md-header { + background-color: #d81b60; + height: 64px; + padding-top: 8px; +} + +.dark { + color: #FFFFFF !important; + background-color: #121212 !important; +} + +.dark h1 { + color: #FFFFFF !important; +} + +.dark .md-nav__list { + background-color: #121212 !important; +} + +.dark .md-nav__title { + background-color: #2b2b2b !important; + color: #FFFFFF !important; + padding: 10px; + border-radius: 2px; +} + +.dark .md-nav__title::before { + color: #FFFFFF !important; +} + +.dark .md-nav__link--active { + color: #d81b60 !important; +} + +.dark .md-nav__link:hover { + color: #d81b60 !important; +} + +.dark .md-footer-nav { + background-color: #1b1b1b; +} + +.dark .md-footer-meta { + background-color: #212121; +} + +.dark .linenos { + background-color: #2d2d2d !important; + color: #ffffff !important; +} + +.dark .codehilite pre { + background-color: #1b1b1b !important; +} + +.dark .md-typeset pre { + border-radius: 0; +} + +.dark .codehilite .md-clipboard::before { + color: #ffffff57 !important; +} + +.dark .codehilite .md-clipboard:hover::before { + color: #ffffffc2 !important; +} diff --git a/docs/assets/luxcena-colors.js b/docs/assets/luxcena-colors.js new file mode 100644 index 0000000..9a353fc --- /dev/null +++ b/docs/assets/luxcena-colors.js @@ -0,0 +1,21 @@ +function getCookie(name) { + var nameEQ = name + "="; + var ca = document.cookie.split(";"); + for(var i=0;i < ca.length;i++) { + var c = ca[i]; + while (c.charAt(0)==" ") c = c.substring(1,c.length); + if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); + } + return null; +} + +function theme() { + let mdcTheme = getCookie("mdc-theme"); + if (mdcTheme != null) { + if (mdcTheme == "dark") { + document.body.className = "dark"; + } + } +} + +theme(); diff --git a/docs/assets/sequence-diagram.min.js b/docs/assets/sequence-diagram.min.js new file mode 100644 index 0000000..12682fa --- /dev/null +++ b/docs/assets/sequence-diagram.min.js @@ -0,0 +1,9 @@ +/** js sequence diagrams 2.0.1 + * https://bramp.github.io/js-sequence-diagrams/ + * (c) 2012-2017 Andrew Brampton (bramp.net) + * @license Simplified BSD license. + */ +!function(){"use strict";function Diagram(){this.title=void 0,this.actors=[],this.signals=[]}function ParseError(message,hash){_.extend(this,hash),this.name="ParseError",this.message=message||""}function AssertException(message){this.message=message}function assert(exp,message){if(!exp)throw new AssertException(message)}function registerTheme(name,theme){Diagram.themes[name]=theme}function getCenterX(box){return box.x+box.width/2}function getCenterY(box){return box.y+box.height/2}function clamp(x,min,max){return xmax?max:x}function wobble(x1,y1,x2,y2){assert(_.all([x1,x2,y1,y2],_.isFinite),"x1,x2,y1,y2 must be numeric");var factor=Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1))/25,r1=clamp(Math.random(),.2,.8),r2=clamp(Math.random(),.2,.8),xfactor=Math.random()>.5?factor:-factor,yfactor=Math.random()>.5?factor:-factor,p1={x:(x2-x1)*r1+x1+xfactor,y:(y2-y1)*r1+y1+yfactor},p2={x:(x2-x1)*r2+x1-xfactor,y:(y2-y1)*r2+y1-yfactor};return"C"+p1.x.toFixed(1)+","+p1.y.toFixed(1)+" "+p2.x.toFixed(1)+","+p2.y.toFixed(1)+" "+x2.toFixed(1)+","+y2.toFixed(1)}function handRect(x,y,w,h){return assert(_.all([x,y,w,h],_.isFinite),"x, y, w, h must be numeric"),"M"+x+","+y+wobble(x,y,x+w,y)+wobble(x+w,y,x+w,y+h)+wobble(x+w,y+h,x,y+h)+wobble(x,y+h,x,y)}function handLine(x1,y1,x2,y2){return assert(_.all([x1,x2,y1,y2],_.isFinite),"x1,x2,y1,y2 must be numeric"),"M"+x1.toFixed(1)+","+y1.toFixed(1)+wobble(x1,y1,x2,y2)}Diagram.prototype.getActor=function(alias,name){alias=alias.trim();var i,actors=this.actors;for(i in actors)if(actors[i].alias==alias)return actors[i];return i=actors.push(new Diagram.Actor(alias,name||alias,actors.length)),actors[i-1]},Diagram.prototype.getActorWithAlias=function(input){input=input.trim();var alias,name,s=/([\s\S]+) as (\S+)$/im.exec(input);return s?(name=s[1].trim(),alias=s[2].trim()):name=alias=input,this.getActor(alias,name)},Diagram.prototype.setTitle=function(title){this.title=title},Diagram.prototype.addSignal=function(signal){this.signals.push(signal)},Diagram.Actor=function(alias,name,index){this.alias=alias,this.name=name,this.index=index},Diagram.Signal=function(actorA,signaltype,actorB,message){this.type="Signal",this.actorA=actorA,this.actorB=actorB,this.linetype=3&signaltype,this.arrowtype=signaltype>>2&3,this.message=message},Diagram.Signal.prototype.isSelf=function(){return this.actorA.index==this.actorB.index},Diagram.Note=function(actor,placement,message){if(this.type="Note",this.actor=actor,this.placement=placement,this.message=message,this.hasManyActors()&&actor[0]==actor[1])throw new Error("Note should be over two different actors")},Diagram.Note.prototype.hasManyActors=function(){return _.isArray(this.actor)},Diagram.unescape=function(s){return s.trim().replace(/^"(.*)"$/m,"$1").replace(/\\n/gm,"\n")},Diagram.LINETYPE={SOLID:0,DOTTED:1},Diagram.ARROWTYPE={FILLED:0,OPEN:1},Diagram.PLACEMENT={LEFTOF:0,RIGHTOF:1,OVER:2},"function"!=typeof Object.getPrototypeOf&&("object"==typeof"test".__proto__?Object.getPrototypeOf=function(object){return object.__proto__}:Object.getPrototypeOf=function(object){return object.constructor.prototype});var parser=function(){function Parser(){this.yy={}}var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[5,8,9,13,15,24],$V1=[1,13],$V2=[1,17],$V3=[24,29,30],parser={trace:function(){},yy:{},symbols_:{error:2,start:3,document:4,EOF:5,line:6,statement:7,NL:8,participant:9,actor_alias:10,signal:11,note_statement:12,title:13,message:14,note:15,placement:16,actor:17,over:18,actor_pair:19,",":20,left_of:21,right_of:22,signaltype:23,ACTOR:24,linetype:25,arrowtype:26,LINE:27,DOTLINE:28,ARROW:29,OPENARROW:30,MESSAGE:31,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",8:"NL",9:"participant",13:"title",15:"note",18:"over",20:",",21:"left_of",22:"right_of",24:"ACTOR",27:"LINE",28:"DOTLINE",29:"ARROW",30:"OPENARROW",31:"MESSAGE"},productions_:[0,[3,2],[4,0],[4,2],[6,1],[6,1],[7,2],[7,1],[7,1],[7,2],[12,4],[12,4],[19,1],[19,3],[16,1],[16,1],[11,4],[17,1],[10,1],[23,2],[23,1],[25,1],[25,1],[26,1],[26,1],[14,1]],performAction:function(yytext,yyleng,yylineno,yy,yystate,$$,_$){var $0=$$.length-1;switch(yystate){case 1:return yy.parser.yy;case 4:break;case 6:$$[$0];break;case 7:case 8:yy.parser.yy.addSignal($$[$0]);break;case 9:yy.parser.yy.setTitle($$[$0]);break;case 10:this.$=new Diagram.Note($$[$0-1],$$[$0-2],$$[$0]);break;case 11:this.$=new Diagram.Note($$[$0-1],Diagram.PLACEMENT.OVER,$$[$0]);break;case 12:case 20:this.$=$$[$0];break;case 13:this.$=[$$[$0-2],$$[$0]];break;case 14:this.$=Diagram.PLACEMENT.LEFTOF;break;case 15:this.$=Diagram.PLACEMENT.RIGHTOF;break;case 16:this.$=new Diagram.Signal($$[$0-3],$$[$0-2],$$[$0-1],$$[$0]);break;case 17:this.$=yy.parser.yy.getActor(Diagram.unescape($$[$0]));break;case 18:this.$=yy.parser.yy.getActorWithAlias(Diagram.unescape($$[$0]));break;case 19:this.$=$$[$0-1]|$$[$0]<<2;break;case 21:this.$=Diagram.LINETYPE.SOLID;break;case 22:this.$=Diagram.LINETYPE.DOTTED;break;case 23:this.$=Diagram.ARROWTYPE.FILLED;break;case 24:this.$=Diagram.ARROWTYPE.OPEN;break;case 25:this.$=Diagram.unescape($$[$0].substring(1))}},table:[o($V0,[2,2],{3:1,4:2}),{1:[3]},{5:[1,3],6:4,7:5,8:[1,6],9:[1,7],11:8,12:9,13:[1,10],15:[1,12],17:11,24:$V1},{1:[2,1]},o($V0,[2,3]),o($V0,[2,4]),o($V0,[2,5]),{10:14,24:[1,15]},o($V0,[2,7]),o($V0,[2,8]),{14:16,31:$V2},{23:18,25:19,27:[1,20],28:[1,21]},{16:22,18:[1,23],21:[1,24],22:[1,25]},o([20,27,28,31],[2,17]),o($V0,[2,6]),o($V0,[2,18]),o($V0,[2,9]),o($V0,[2,25]),{17:26,24:$V1},{24:[2,20],26:27,29:[1,28],30:[1,29]},o($V3,[2,21]),o($V3,[2,22]),{17:30,24:$V1},{17:32,19:31,24:$V1},{24:[2,14]},{24:[2,15]},{14:33,31:$V2},{24:[2,19]},{24:[2,23]},{24:[2,24]},{14:34,31:$V2},{14:35,31:$V2},{20:[1,36],31:[2,12]},o($V0,[2,16]),o($V0,[2,10]),o($V0,[2,11]),{17:37,24:$V1},{31:[2,13]}],defaultActions:{3:[2,1],24:[2,14],25:[2,15],27:[2,19],28:[2,23],29:[2,24],37:[2,13]},parseError:function(str,hash){if(!hash.recoverable)throw new Error(str);this.trace(str)},parse:function(input){function lex(){var token;return token=lexer.lex()||EOF,"number"!=typeof token&&(token=self.symbols_[token]||token),token}var self=this,stack=[0],vstack=[null],lstack=[],table=this.table,yytext="",yylineno=0,yyleng=0,recovering=0,TERROR=2,EOF=1,args=lstack.slice.call(arguments,1),lexer=Object.create(this.lexer),sharedState={yy:{}};for(var k in this.yy)Object.prototype.hasOwnProperty.call(this.yy,k)&&(sharedState.yy[k]=this.yy[k]);lexer.setInput(input,sharedState.yy),sharedState.yy.lexer=lexer,sharedState.yy.parser=this,"undefined"==typeof lexer.yylloc&&(lexer.yylloc={});var yyloc=lexer.yylloc;lstack.push(yyloc);var ranges=lexer.options&&lexer.options.ranges;"function"==typeof sharedState.yy.parseError?this.parseError=sharedState.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var symbol,preErrorSymbol,state,action,r,p,len,newState,expected,yyval={};;){if(state=stack[stack.length-1],this.defaultActions[state]?action=this.defaultActions[state]:(null!==symbol&&"undefined"!=typeof symbol||(symbol=lex()),action=table[state]&&table[state][symbol]),"undefined"==typeof action||!action.length||!action[0]){var errStr="";expected=[];for(p in table[state])this.terminals_[p]&&p>TERROR&&expected.push("'"+this.terminals_[p]+"'");errStr=lexer.showPosition?"Parse error on line "+(yylineno+1)+":\n"+lexer.showPosition()+"\nExpecting "+expected.join(", ")+", got '"+(this.terminals_[symbol]||symbol)+"'":"Parse error on line "+(yylineno+1)+": Unexpected "+(symbol==EOF?"end of input":"'"+(this.terminals_[symbol]||symbol)+"'"),this.parseError(errStr,{text:lexer.match,token:this.terminals_[symbol]||symbol,line:lexer.yylineno,loc:yyloc,expected:expected})}if(action[0]instanceof Array&&action.length>1)throw new Error("Parse Error: multiple actions possible at state: "+state+", token: "+symbol);switch(action[0]){case 1:stack.push(symbol),vstack.push(lexer.yytext),lstack.push(lexer.yylloc),stack.push(action[1]),symbol=null,preErrorSymbol?(symbol=preErrorSymbol,preErrorSymbol=null):(yyleng=lexer.yyleng,yytext=lexer.yytext,yylineno=lexer.yylineno,yyloc=lexer.yylloc,recovering>0&&recovering--);break;case 2:if(len=this.productions_[action[1]][1],yyval.$=vstack[vstack.length-len],yyval._$={first_line:lstack[lstack.length-(len||1)].first_line,last_line:lstack[lstack.length-1].last_line,first_column:lstack[lstack.length-(len||1)].first_column,last_column:lstack[lstack.length-1].last_column},ranges&&(yyval._$.range=[lstack[lstack.length-(len||1)].range[0],lstack[lstack.length-1].range[1]]),r=this.performAction.apply(yyval,[yytext,yyleng,yylineno,sharedState.yy,action[1],vstack,lstack].concat(args)),"undefined"!=typeof r)return r;len&&(stack=stack.slice(0,-1*len*2),vstack=vstack.slice(0,-1*len),lstack=lstack.slice(0,-1*len)),stack.push(this.productions_[action[1]][0]),vstack.push(yyval.$),lstack.push(yyval._$),newState=table[stack[stack.length-2]][stack[stack.length-1]],stack.push(newState);break;case 3:return!0}}return!0}},lexer=function(){var lexer={EOF:1,parseError:function(str,hash){if(!this.yy.parser)throw new Error(str);this.yy.parser.parseError(str,hash)},setInput:function(input,yy){return this.yy=yy||this.yy||{},this._input=input,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var ch=this._input[0];this.yytext+=ch,this.yyleng++,this.offset++,this.match+=ch,this.matched+=ch;var lines=ch.match(/(?:\r\n?|\n).*/g);return lines?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ch},unput:function(ch){var len=ch.length,lines=ch.split(/(?:\r\n?|\n)/g);this._input=ch+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-len),this.offset-=len;var oldLines=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),lines.length-1&&(this.yylineno-=lines.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:lines?(lines.length===oldLines.length?this.yylloc.first_column:0)+oldLines[oldLines.length-lines.length].length-lines[0].length:this.yylloc.first_column-len},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-len]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(n){this.unput(this.match.slice(n))},pastInput:function(){var past=this.matched.substr(0,this.matched.length-this.match.length);return(past.length>20?"...":"")+past.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var next=this.match;return next.length<20&&(next+=this._input.substr(0,20-next.length)),(next.substr(0,20)+(next.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var pre=this.pastInput(),c=new Array(pre.length+1).join("-");return pre+this.upcomingInput()+"\n"+c+"^"},test_match:function(match,indexed_rule){var token,lines,backup;if(this.options.backtrack_lexer&&(backup={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(backup.yylloc.range=this.yylloc.range.slice(0))),lines=match[0].match(/(?:\r\n?|\n).*/g),lines&&(this.yylineno+=lines.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:lines?lines[lines.length-1].length-lines[lines.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+match[0].length},this.yytext+=match[0],this.match+=match[0],this.matches=match,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(match[0].length),this.matched+=match[0],token=this.performAction.call(this,this.yy,this,indexed_rule,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),token)return token;if(this._backtrack){for(var k in backup)this[k]=backup[k];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var token,match,tempMatch,index;this._more||(this.yytext="",this.match="");for(var rules=this._currentRules(),i=0;imatch[0].length)){if(match=tempMatch,index=i,this.options.backtrack_lexer){if(token=this.test_match(tempMatch,rules[i]),token!==!1)return token;if(this._backtrack){match=!1;continue}return!1}if(!this.options.flex)break}return match?(token=this.test_match(match,rules[index]),token!==!1&&token):""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var r=this.next();return r?r:this.lex()},begin:function(condition){this.conditionStack.push(condition)},popState:function(){var n=this.conditionStack.length-1;return n>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(n){return n=this.conditionStack.length-1-Math.abs(n||0),n>=0?this.conditionStack[n]:"INITIAL"},pushState:function(condition){this.begin(condition)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(yy,yy_,$avoiding_name_collisions,YY_START){switch($avoiding_name_collisions){case 0:return 8;case 1:break;case 2:break;case 3:return 9;case 4:return 21;case 5:return 22;case 6:return 18;case 7:return 15;case 8:return 13;case 9:return 20;case 10:return 24;case 11:return 24;case 12:return 28;case 13:return 27;case 14:return 30;case 15:return 29;case 16:return 31;case 17:return 5;case 18:return"INVALID"}},rules:[/^(?:[\r\n]+)/i,/^(?:\s+)/i,/^(?:#[^\r\n]*)/i,/^(?:participant\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:title\b)/i,/^(?:,)/i,/^(?:[^\->:,\r\n"]+)/i,/^(?:"[^"]+")/i,/^(?:--)/i,/^(?:-)/i,/^(?:>>)/i,/^(?:>)/i,/^(?:[^\r\n]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18],inclusive:!0}}};return lexer}();return parser.lexer=lexer,Parser.prototype=parser,parser.Parser=Parser,new Parser}();"undefined"!=typeof require&&"undefined"!=typeof exports&&(exports.parser=parser,exports.Parser=parser.Parser,exports.parse=function(){return parser.parse.apply(parser,arguments)},exports.main=function(args){args[1]||(console.log("Usage: "+args[0]+" FILE"),process.exit(1));var source=require("fs").readFileSync(require("path").normalize(args[1]),"utf8");return exports.parser.parse(source)},"undefined"!=typeof module&&require.main===module&&exports.main(process.argv.slice(1))),ParseError.prototype=new Error,Diagram.ParseError=ParseError,Diagram.parse=function(input){parser.yy=new Diagram,parser.yy.parseError=function(message,hash){throw new ParseError(message,hash)};var diagram=parser.parse(input);return delete diagram.parseError,diagram};var DIAGRAM_MARGIN=10,ACTOR_MARGIN=10,ACTOR_PADDING=10,SIGNAL_MARGIN=5,SIGNAL_PADDING=5,NOTE_MARGIN=10,NOTE_PADDING=5,NOTE_OVERLAP=15,TITLE_MARGIN=0,TITLE_PADDING=5,SELF_SIGNAL_WIDTH=20,PLACEMENT=Diagram.PLACEMENT,LINETYPE=Diagram.LINETYPE,ARROWTYPE=Diagram.ARROWTYPE,ALIGN_LEFT=0,ALIGN_CENTER=1;AssertException.prototype.toString=function(){return"AssertException: "+this.message},String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}),Diagram.themes={};var BaseTheme=function(diagram,options){this.init(diagram,options)};if(_.extend(BaseTheme.prototype,{init:function(diagram,options){this.diagram=diagram,this.actorsHeight_=0,this.signalsHeight_=0,this.title_=void 0},setupPaper:function(container){},draw:function(container){this.setupPaper(container),this.layout();var titleHeight=this.title_?this.title_.height:0,y=DIAGRAM_MARGIN+titleHeight;this.drawTitle(),this.drawActors(y),this.drawSignals(y+this.actorsHeight_)},layout:function(){function actorEnsureDistance(a,b,d){assert(a=actors.length?(a=actors[a],a.paddingRight=Math.max(d,a.paddingRight)):(a=actors[a],a.distances[b]=Math.max(d,a.distances[b]?a.distances[b]:0))}var diagram=this.diagram,font=this.font_,actors=diagram.actors,signals=diagram.signals;if(diagram.width=0,diagram.height=0,diagram.title){var title=this.title_={},bb=this.textBBox(diagram.title,font);title.textBB=bb,title.message=diagram.title,title.width=bb.width+2*(TITLE_PADDING+TITLE_MARGIN),title.height=bb.height+2*(TITLE_PADDING+TITLE_MARGIN),title.x=DIAGRAM_MARGIN,title.y=DIAGRAM_MARGIN,diagram.width+=title.width,diagram.height+=title.height}_.each(actors,function(a){var bb=this.textBBox(a.name,font);a.textBB=bb,a.x=0,a.y=0,a.width=bb.width+2*(ACTOR_PADDING+ACTOR_MARGIN),a.height=bb.height+2*(ACTOR_PADDING+ACTOR_MARGIN),a.distances=[],a.paddingRight=0,this.actorsHeight_=Math.max(a.height,this.actorsHeight_)},this),_.each(signals,function(s){var a,b,bb=this.textBBox(s.message,font);s.textBB=bb,s.width=bb.width,s.height=bb.height;var extraWidth=0;if("Signal"==s.type)s.width+=2*(SIGNAL_MARGIN+SIGNAL_PADDING),s.height+=2*(SIGNAL_MARGIN+SIGNAL_PADDING),s.isSelf()?(a=s.actorA.index,b=a+1,s.width+=SELF_SIGNAL_WIDTH):(a=Math.min(s.actorA.index,s.actorB.index),b=Math.max(s.actorA.index,s.actorB.index));else{if("Note"!=s.type)throw new Error("Unhandled signal type:"+s.type);if(s.width+=2*(NOTE_MARGIN+NOTE_PADDING),s.height+=2*(NOTE_MARGIN+NOTE_PADDING),extraWidth=2*ACTOR_MARGIN,s.placement==PLACEMENT.LEFTOF)b=s.actor.index,a=b-1;else if(s.placement==PLACEMENT.RIGHTOF)a=s.actor.index,b=a+1;else if(s.placement==PLACEMENT.OVER&&s.hasManyActors())a=Math.min(s.actor[0].index,s.actor[1].index),b=Math.max(s.actor[0].index,s.actor[1].index),extraWidth=-(2*NOTE_PADDING+2*NOTE_OVERLAP);else if(s.placement==PLACEMENT.OVER)return a=s.actor.index,actorEnsureDistance(a-1,a,s.width/2),actorEnsureDistance(a,a+1,s.width/2),void(this.signalsHeight_+=s.height)}actorEnsureDistance(a,b,s.width+extraWidth),this.signalsHeight_+=s.height},this);var actorsX=0;return _.each(actors,function(a){a.x=Math.max(actorsX,a.x),_.each(a.distances,function(distance,b){"undefined"!=typeof distance&&(b=actors[b],distance=Math.max(distance,a.width/2,b.width/2),b.x=Math.max(b.x,a.x+a.width/2+distance-b.width/2))}),actorsX=a.x+a.width+a.paddingRight},this),diagram.width=Math.max(actorsX,diagram.width),diagram.width+=2*DIAGRAM_MARGIN,diagram.height+=2*DIAGRAM_MARGIN+2*this.actorsHeight_+this.signalsHeight_,this},textBBox:function(text,font){},drawTitle:function(){var title=this.title_;title&&this.drawTextBox(title,title.message,TITLE_MARGIN,TITLE_PADDING,this.font_,ALIGN_LEFT)},drawActors:function(offsetY){var y=offsetY;_.each(this.diagram.actors,function(a){this.drawActor(a,y,this.actorsHeight_),this.drawActor(a,y+this.actorsHeight_+this.signalsHeight_,this.actorsHeight_);var aX=getCenterX(a);this.drawLine(aX,y+this.actorsHeight_-ACTOR_MARGIN,aX,y+this.actorsHeight_+ACTOR_MARGIN+this.signalsHeight_)},this)},drawActor:function(actor,offsetY,height){actor.y=offsetY,actor.height=height,this.drawTextBox(actor,actor.name,ACTOR_MARGIN,ACTOR_PADDING,this.font_,ALIGN_CENTER)},drawSignals:function(offsetY){var y=offsetY;_.each(this.diagram.signals,function(s){"Signal"==s.type?s.isSelf()?this.drawSelfSignal(s,y):this.drawSignal(s,y):"Note"==s.type&&this.drawNote(s,y),y+=s.height},this)},drawSelfSignal:function(signal,offsetY){assert(signal.isSelf(),"signal must be a self signal");var textBB=signal.textBB,aX=getCenterX(signal.actorA),x=aX+SELF_SIGNAL_WIDTH+SIGNAL_PADDING,y=offsetY+SIGNAL_PADDING+signal.height/2+textBB.y;this.drawText(x,y,signal.message,this.font_,ALIGN_LEFT);var y1=offsetY+SIGNAL_MARGIN+SIGNAL_PADDING,y2=y1+signal.height-2*SIGNAL_MARGIN-SIGNAL_PADDING;this.drawLine(aX,y1,aX+SELF_SIGNAL_WIDTH,y1,signal.linetype),this.drawLine(aX+SELF_SIGNAL_WIDTH,y1,aX+SELF_SIGNAL_WIDTH,y2,signal.linetype),this.drawLine(aX+SELF_SIGNAL_WIDTH,y2,aX,y2,signal.linetype,signal.arrowtype)},drawSignal:function(signal,offsetY){var aX=getCenterX(signal.actorA),bX=getCenterX(signal.actorB),x=(bX-aX)/2+aX,y=offsetY+SIGNAL_MARGIN+2*SIGNAL_PADDING;this.drawText(x,y,signal.message,this.font_,ALIGN_CENTER),y=offsetY+signal.height-SIGNAL_MARGIN-SIGNAL_PADDING,this.drawLine(aX,y,bX,y,signal.linetype,signal.arrowtype)},drawNote:function(note,offsetY){note.y=offsetY;var actorA=note.hasManyActors()?note.actor[0]:note.actor,aX=getCenterX(actorA);switch(note.placement){case PLACEMENT.RIGHTOF:note.x=aX+ACTOR_MARGIN;break;case PLACEMENT.LEFTOF:note.x=aX-ACTOR_MARGIN-note.width;break;case PLACEMENT.OVER:if(note.hasManyActors()){var bX=getCenterX(note.actor[1]),overlap=NOTE_OVERLAP+NOTE_PADDING;note.x=Math.min(aX,bX)-overlap,note.width=Math.max(aX,bX)+overlap-note.x}else note.x=aX-note.width/2;break;default:throw new Error("Unhandled note placement: "+note.placement)}return this.drawTextBox(note,note.message,NOTE_MARGIN,NOTE_PADDING,this.font_,ALIGN_LEFT)},drawTextBox:function(box,text,margin,padding,font,align){var x=box.x+margin,y=box.y+margin,w=box.width-2*margin,h=box.height-2*margin;return this.drawRect(x,y,w,h),align==ALIGN_CENTER?(x=getCenterX(box),y=getCenterY(box)):(x+=padding,y+=padding),this.drawText(x,y,text,font,align)}}),"undefined"!=typeof Snap){var xmlns="http://www.w3.org/2000/svg",LINE={stroke:"#000000","stroke-width":2,fill:"none"},RECT={stroke:"#000000","stroke-width":2,fill:"#fff"},LOADED_FONTS={},SnapTheme=function(diagram,options,resume){_.defaults(options,{"css-class":"simple","font-size":16,"font-family":"Andale Mono, monospace"}),this.init(diagram,options,resume)};_.extend(SnapTheme.prototype,BaseTheme.prototype,{init:function(diagram,options,resume){BaseTheme.prototype.init.call(this,diagram),this.paper_=void 0,this.cssClass_=options["css-class"]||void 0,this.font_={"font-size":options["font-size"],"font-family":options["font-family"]};var a=this.arrowTypes_={};a[ARROWTYPE.FILLED]="Block",a[ARROWTYPE.OPEN]="Open";var l=this.lineTypes_={};l[LINETYPE.SOLID]="",l[LINETYPE.DOTTED]="6,2";var that=this;this.waitForFont(function(){resume(that)})},waitForFont:function(callback){var fontFamily=this.font_["font-family"];if("undefined"==typeof WebFont)throw new Error("WebFont is required (https://github.com/typekit/webfontloader).");return LOADED_FONTS[fontFamily]?void callback():void WebFont.load({custom:{families:[fontFamily]},classes:!1,active:function(){LOADED_FONTS[fontFamily]=!0,callback()},inactive:function(){LOADED_FONTS[fontFamily]=!0,callback()}})},addDescription:function(svg,description){var desc=document.createElementNS(xmlns,"desc");desc.appendChild(document.createTextNode(description)),svg.appendChild(desc)},setupPaper:function(container){var svg=document.createElementNS(xmlns,"svg");container.appendChild(svg),this.addDescription(svg,this.diagram.title||""),this.paper_=Snap(svg),this.paper_.addClass("sequence"),this.cssClass_&&this.paper_.addClass(this.cssClass_),this.beginGroup();var a=this.arrowMarkers_={},arrow=this.paper_.path("M 0 0 L 5 2.5 L 0 5 z");a[ARROWTYPE.FILLED]=arrow.marker(0,0,5,5,5,2.5).attr({id:"markerArrowBlock"}),arrow=this.paper_.path("M 9.6,8 1.92,16 0,13.7 5.76,8 0,2.286 1.92,0 9.6,8 z"),a[ARROWTYPE.OPEN]=arrow.marker(0,0,9.6,16,9.6,8).attr({markerWidth:"4",id:"markerArrowOpen"})},layout:function(){BaseTheme.prototype.layout.call(this),this.paper_.attr({width:this.diagram.width+"px",height:this.diagram.height+"px"})},textBBox:function(text,font){var t=this.createText(text,font),bb=t.getBBox();return t.remove(),bb},pushToStack:function(element){return this._stack.push(element),element},beginGroup:function(){this._stack=[]},finishGroup:function(){var g=this.paper_.group.apply(this.paper_,this._stack);return this.beginGroup(),g},createText:function(text,font){text=_.invoke(text.split("\n"),"trim");var t=this.paper_.text(0,0,text);return t.attr(font||{}),text.length>1&&t.selectAll("tspan:nth-child(n+2)").attr({dy:"1.2em",x:0}),t},drawLine:function(x1,y1,x2,y2,linetype,arrowhead){var line=this.paper_.line(x1,y1,x2,y2).attr(LINE);return void 0!==linetype&&line.attr("strokeDasharray",this.lineTypes_[linetype]),void 0!==arrowhead&&line.attr("markerEnd",this.arrowMarkers_[arrowhead]),this.pushToStack(line)},drawRect:function(x,y,w,h){var rect=this.paper_.rect(x,y,w,h).attr(RECT);return this.pushToStack(rect)},drawText:function(x,y,text,font,align){var t=this.createText(text,font),bb=t.getBBox();return align==ALIGN_CENTER&&(x-=bb.width/2,y-=bb.height/2),t.attr({x:x-bb.x,y:y-bb.y}),t.selectAll("tspan").attr({x:x}),this.pushToStack(t),t},drawTitle:function(){return this.beginGroup(),BaseTheme.prototype.drawTitle.call(this),this.finishGroup().addClass("title")},drawActor:function(actor,offsetY,height){return this.beginGroup(),BaseTheme.prototype.drawActor.call(this,actor,offsetY,height),this.finishGroup().addClass("actor")},drawSignal:function(signal,offsetY){return this.beginGroup(),BaseTheme.prototype.drawSignal.call(this,signal,offsetY),this.finishGroup().addClass("signal")},drawSelfSignal:function(signal,offsetY){return this.beginGroup(),BaseTheme.prototype.drawSelfSignal.call(this,signal,offsetY),this.finishGroup().addClass("signal")},drawNote:function(note,offsetY){return this.beginGroup(),BaseTheme.prototype.drawNote.call(this,note,offsetY),this.finishGroup().addClass("note")}});var SnapHandTheme=function(diagram,options,resume){_.defaults(options,{"css-class":"hand","font-size":16,"font-family":"danielbd"}),this.init(diagram,options,resume)};_.extend(SnapHandTheme.prototype,SnapTheme.prototype,{drawLine:function(x1,y1,x2,y2,linetype,arrowhead){var line=this.paper_.path(handLine(x1,y1,x2,y2)).attr(LINE);return void 0!==linetype&&line.attr("strokeDasharray",this.lineTypes_[linetype]),void 0!==arrowhead&&line.attr("markerEnd",this.arrowMarkers_[arrowhead]),this.pushToStack(line)},drawRect:function(x,y,w,h){var rect=this.paper_.path(handRect(x,y,w,h)).attr(RECT);return this.pushToStack(rect)}}),registerTheme("snapSimple",SnapTheme),registerTheme("snapHand",SnapHandTheme)}if("undefined"!=typeof Raphael){var LINE={stroke:"#000000","stroke-width":2,fill:"none"},RECT={stroke:"#000000","stroke-width":2,fill:"#fff"};Raphael.fn.line=function(x1,y1,x2,y2){return assert(_.all([x1,x2,y1,y2],_.isFinite),"x1,x2,y1,y2 must be numeric"),this.path("M{0},{1} L{2},{3}",x1,y1,x2,y2)};var RaphaelTheme=function(diagram,options,resume){this.init(diagram,_.defaults(options,{"font-size":16,"font-family":"Andale Mono, monospace"}),resume)};_.extend(RaphaelTheme.prototype,BaseTheme.prototype,{init:function(diagram,options,resume){BaseTheme.prototype.init.call(this,diagram),this.paper_=void 0,this.font_={"font-size":options["font-size"],"font-family":options["font-family"]};var a=this.arrowTypes_={};a[ARROWTYPE.FILLED]="block",a[ARROWTYPE.OPEN]="open";var l=this.lineTypes_={};l[LINETYPE.SOLID]="",l[LINETYPE.DOTTED]="-",resume(this)},setupPaper:function(container){this.paper_=new Raphael(container,320,200),this.paper_.setStart()},draw:function(container){BaseTheme.prototype.draw.call(this,container),this.paper_.setFinish()},layout:function(){BaseTheme.prototype.layout.call(this),this.paper_.setSize(this.diagram.width,this.diagram.height)},cleanText:function(text){return text=_.invoke(text.split("\n"),"trim"),text.join("\n")},textBBox:function(text,font){text=this.cleanText(text),font=font||{};var p;font.obj_?p=this.paper_.print(0,0,text,font.obj_,font["font-size"]):(p=this.paper_.text(0,0,text),p.attr(font));var bb=p.getBBox();return p.remove(),bb},drawLine:function(x1,y1,x2,y2,linetype,arrowhead){var line=this.paper_.line(x1,y1,x2,y2).attr(LINE);return void 0!==arrowhead&&line.attr("arrow-end",this.arrowTypes_[arrowhead]+"-wide-long"),void 0!==arrowhead&&line.attr("stroke-dasharray",this.lineTypes_[linetype]),line},drawRect:function(x,y,w,h){return this.paper_.rect(x,y,w,h).attr(RECT)},drawText:function(x,y,text,font,align){text=this.cleanText(text),font=font||{},align=align||ALIGN_LEFT;var paper=this.paper_,bb=this.textBBox(text,font);align==ALIGN_CENTER&&(x-=bb.width/2,y-=bb.height/2);var t;return font.obj_?t=paper.print(x-bb.x,y-bb.y,text,font.obj_,font["font-size"]):(t=paper.text(x-bb.x-bb.width/2,y-bb.y,text),t.attr(font),t.attr({"text-anchor":"start"})),t}});var RaphaelHandTheme=function(diagram,options,resume){this.init(diagram,_.defaults(options,{"font-size":16,"font-family":"daniel"}),resume)};_.extend(RaphaelHandTheme.prototype,RaphaelTheme.prototype,{setupPaper:function(container){RaphaelTheme.prototype.setupPaper.call(this,container),this.font_.obj_=this.paper_.getFont("daniel")},drawLine:function(x1,y1,x2,y2,linetype,arrowhead){var line=this.paper_.path(handLine(x1,y1,x2,y2)).attr(LINE);return void 0!==arrowhead&&line.attr("arrow-end",this.arrowTypes_[arrowhead]+"-wide-long"),void 0!==arrowhead&&line.attr("stroke-dasharray",this.lineTypes_[linetype]),line},drawRect:function(x,y,w,h){return this.paper_.path(handRect(x,y,w,h)).attr(RECT)}}),registerTheme("raphaelSimple",RaphaelTheme),registerTheme("raphaelHand",RaphaelHandTheme)}if("undefined"!=typeof Raphael&&Raphael.registerFont({w:209,face:{"font-family":"Daniel","font-weight":700,"font-stretch":"normal","units-per-em":"360","panose-1":"2 11 8 0 0 0 0 0 0 0",ascent:"288",descent:"-72","x-height":"7",bbox:"-92.0373 -310.134 519 184.967","underline-thickness":"3.51562","underline-position":"-25.1367","unicode-range":"U+0009-U+F002"},glyphs:{" ":{w:179},"\t":{w:179},"\r":{w:179},"!":{d:"66,-306v9,3,18,11,19,24v-18,73,-20,111,-37,194v0,10,2,34,-12,34v-12,0,-18,-9,-18,-28v0,-85,23,-136,38,-214v1,-7,4,-10,10,-10xm25,-30v15,-1,28,34,5,35v-11,-1,-38,-36,-5,-35",w:115},'"':{d:"91,-214v-32,3,-25,-40,-20,-68v3,-16,7,-25,12,-27v35,13,14,56,8,95xm8,-231v4,-31,1,-40,18,-75v37,7,11,51,11,79v-3,3,-4,8,-5,13v-17,4,-16,-10,-24,-17",w:117},"#":{d:"271,-64v-30,26,-96,-7,-102,51v-6,2,-13,2,-24,-2v-2,-11,10,-21,2,-28v-14,5,-48,0,-48,22v0,23,-11,14,-29,10v-7,-6,6,-19,-1,-24r-32,4v-19,-8,-15,-24,5,-28r33,-6v4,0,24,-23,11,-27v-26,0,-63,14,-74,-10v3,-1,9,-17,16,-10v15,-8,81,4,89,-30v8,-14,16,-34,24,-38v23,9,24,38,5,49v37,24,55,-38,72,-43v19,10,20,23,-1,45v2,8,23,1,29,4v3,3,6,6,10,11v-14,13,-20,12,-45,12v-17,0,-16,17,-19,29v18,-7,49,3,67,-2v4,0,8,4,12,11xm161,-104v-30,-1,-44,10,-44,37v14,1,24,0,40,-5v0,-1,3,-10,8,-26v0,-4,-1,-6,-4,-6",w:285},$:{d:"164,-257v29,4,1,42,-3,50v5,5,38,13,41,24v8,4,6,15,-2,21v-18,3,-36,-17,-49,-17v-17,1,-31,40,-28,48v5,4,8,8,9,10v13,1,35,37,28,44v-10,21,-36,20,-65,28v-10,10,-12,40,-17,51v-9,-3,-28,1,-18,-17v0,-13,5,-24,-1,-35v-18,1,-59,-10,-42,-29v21,0,56,16,55,-16v5,-4,9,-18,9,-26v-14,-15,-55,-41,-53,-65v2,-33,56,-19,98,-26v10,-14,31,-43,38,-45xm93,-152v11,-10,15,-15,14,-29v-17,-3,-37,1,-43,6v10,12,20,19,29,23xm111,-103v-8,1,-11,12,-10,22v10,0,28,2,27,-8v0,-4,-13,-15,-17,-14",w:225},"%":{d:"181,-96v24,-7,67,-13,104,1v14,18,21,19,22,44v-13,43,-99,61,-146,36v-9,-9,-22,-11,-32,-29v0,-27,24,-53,52,-52xm139,-185v-9,68,-138,73,-131,-5v0,-3,3,-9,9,-17v13,1,27,1,17,-16v5,-39,63,0,93,-6v36,1,80,-9,102,11v15,32,12,32,-8,56v-16,21,-103,78,-152,125r-14,28v-23,11,-25,-7,-29,-20v34,-71,133,-98,171,-162v-13,-12,-52,-5,-61,1v0,1,1,3,3,5xm38,-190v0,34,55,29,70,8v0,-14,-20,-11,-32,-14v-14,-3,-24,-9,-40,-10v1,0,5,11,2,16xm172,-53v12,27,90,18,102,-5v-18,-7,-32,-10,-40,-10v-29,3,-57,-4,-62,15", +w:308},"&":{d:"145,-82v17,-8,47,-15,71,-26v13,2,25,12,9,23v-23,7,-40,16,-53,27r0,6v13,8,30,21,36,38v0,8,-4,12,-11,12v-19,0,-43,-39,-59,-44v-30,12,-65,29,-97,32v-32,3,-45,-41,-23,-63v21,-20,52,-26,70,-48v-4,-31,-12,-47,9,-73v13,-16,20,-29,23,-39v15,-15,32,-22,51,-22v30,9,62,64,32,96v-2,3,-47,42,-69,48v-15,8,-11,9,0,22v6,7,10,11,11,11xm114,-138v25,-13,62,-38,74,-62v0,-9,-10,-31,-20,-29v-28,7,-60,42,-60,75v0,10,2,15,6,16xm99,-91v-18,10,-54,18,-59,45v26,5,61,-12,77,-22v-1,-5,-13,-23,-18,-23",w:253},"'":{d:"36,-182v-36,7,-34,-61,-17,-80v15,1,21,19,21,20r-1,-1v0,0,-1,12,-5,35v1,5,3,17,2,26",w:63},"(":{d:"130,-306v13,2,23,43,-1,43v-49,43,-77,77,-90,148v5,49,27,67,64,101v4,14,5,6,2,19r-15,0v-35,-17,-79,-58,-79,-120v0,-58,66,-176,119,-191",w:120},")":{d:"108,-138v-2,73,-48,120,-98,153v-17,-5,-16,-20,-6,-31v52,-64,73,-62,74,-135v1,-42,-40,-98,-58,-128v0,-5,-1,-12,-2,-22v18,-18,25,0,42,27v25,39,50,66,48,136",w:120},"*":{d:"121,-271v15,-5,36,-8,40,9v-5,10,-31,19,-47,31v0,11,34,43,14,53v-18,8,-24,-24,-34,-20v-4,10,-4,19,-12,41v-25,7,-15,-30,-17,-47v-13,-1,-17,9,-46,30r-10,0v-20,-32,37,-43,54,-64v-10,-11,-36,-33,-16,-51v3,0,14,8,33,24v8,-10,26,-39,32,-42v14,7,15,23,9,36",w:177},"+":{d:"163,-64v-7,22,-65,2,-77,21v-2,10,-6,21,-11,35v-20,4,-21,-12,-19,-29v3,-23,-44,6,-39,-27v-8,-22,36,-8,49,-18v8,-13,6,-36,24,-40v19,-4,14,32,11,39v18,3,19,2,54,8v2,1,5,5,8,11",w:170},",":{d:"25,63v-26,21,-48,-2,-22,-24v14,-12,35,-40,35,-69v3,-2,3,-11,12,-9v35,17,5,88,-25,102",w:97},"-":{d:"57,-94v19,4,55,-5,54,17v-15,23,-54,20,-91,15v-4,2,-13,-10,-11,-16v-1,-22,28,-15,48,-16",w:124},".":{d:"40,-48v21,20,21,44,-4,44v-33,0,-26,-24,-10,-44r14,0",w:67},"/":{d:"21,20v-22,-45,21,-95,41,-126v38,-57,115,-158,193,-201v2,0,4,3,7,11v11,29,-15,34,-25,55v-81,56,-189,208,-197,261r-19,0",w:275},0:{d:"78,-237v70,-47,269,-41,270,59v0,34,-11,53,-29,76v-13,35,-30,32,-85,64v-6,2,-10,6,-7,8v-73,14,-98,38,-173,1v-7,-13,-52,-48,-46,-88v9,-57,27,-75,70,-120xm123,-38v100,0,202,-46,195,-153v-32,-55,-144,-73,-211,-35v-16,34,-68,54,-53,108v6,25,1,22,-3,39v6,24,41,41,72,41",w:353},1:{d:"39,-208v0,-14,6,-59,29,-39v3,4,6,13,10,24r-22,128r8,87v-4,6,-9,3,-16,2v-44,-38,-9,-137,-9,-202",w:93},2:{d:"88,-35v47,-10,119,-24,168,-9v0,12,-23,13,-35,16v1,1,3,1,5,1v-74,8,-118,23,-194,23v-14,0,-20,-13,-21,-28v55,-40,83,-61,123,-104v26,-13,65,-67,71,-102v-1,-9,-11,-16,-22,-16v-20,-1,-120,29,-156,49v-10,-2,-30,-20,-10,-28v50,-21,111,-51,178,-48v25,10,44,22,36,39v12,30,-19,64,-34,83v-39,48,-37,39,-115,109v0,5,-3,8,-8,11v4,3,8,4,14,4",w:265},3:{d:"188,-282v34,-10,74,25,47,51v-19,32,-55,50,-92,70v28,14,116,25,108,70v8,14,-49,40,-63,48v-29,9,-130,22,-168,42v-6,-5,-19,-7,-12,-22v56,-36,175,-21,210,-76v-9,-20,-88,-42,-97,-33v-20,-1,-41,2,-56,-7r5,-21v56,-25,103,-36,137,-78v1,-1,2,-5,4,-11v-15,-14,-56,7,-79,0v-10,9,-73,22,-92,31v-11,-4,-28,-23,-13,-30v50,-22,96,-26,154,-37v0,-1,8,3,7,3",w:260},4:{d:"79,-249v-7,17,-29,75,-33,96v0,6,3,8,8,8v43,-2,111,6,141,-6v17,-47,20,-100,63,-148v9,4,16,7,21,10v-17,31,-44,95,-51,141v7,4,24,-4,23,10v-1,16,-29,12,-31,23v-10,22,-9,69,-7,103v-3,2,-7,5,-10,9v-47,-11,-23,-74,-16,-114v0,-4,-2,-6,-7,-6v-65,2,-89,13,-162,4v-22,-22,-2,-53,5,-76v16,-15,17,-57,35,-70v6,-1,21,11,21,16",w:267},5:{d:"185,-272v30,7,45,-8,53,18v1,16,-17,18,-34,14v0,0,-95,-11,-129,1v-6,9,-24,33,-29,54v76,10,171,5,214,47v11,11,22,30,5,52v-14,12,-30,14,-34,27v-26,11,-141,63,-157,60v-16,-2,-25,-19,-4,-27v48,-18,128,-39,170,-86v4,-14,-65,-41,-85,-41r-92,0v-10,-4,-66,-1,-57,-23v0,-23,23,-51,35,-83v11,-28,133,-10,144,-13",w:284},6:{d:"70,-64v9,-51,63,-74,123,-71v43,2,109,3,111,41r-25,47v0,1,1,2,2,3v-5,0,-39,10,-41,20v-15,3,-22,4,-22,11v-39,1,-77,20,-119,13v-42,-7,-35,-9,-77,-46v-56,-118,94,-201,176,-229v7,0,21,8,20,15v-2,17,-23,15,-43,24v-69,31,-119,72,-134,145v-5,25,36,68,78,64v59,-6,128,-18,153,-61v-7,-14,-13,-9,-32,-21v-67,-15,-118,-5,-150,43r0,12v-13,4,-17,-3,-20,-10",w:310},7:{d:"37,-228v33,-14,173,-17,181,-19v28,-1,24,31,9,45v-17,15,-45,49,-59,69v-17,26,-55,67,-61,113v-10,13,-9,14,-14,20v-33,-13,-20,-25,-11,-53v16,-48,73,-115,109,-156v2,-7,5,-14,-10,-12v-26,4,-54,6,-76,13v-23,-5,-83,31,-94,-9v2,-8,18,-19,26,-11",w:245},8:{d:"57,-236v40,-50,166,-51,213,-10v22,28,10,63,-22,78r-35,17v8,5,54,24,53,44v-5,14,-4,33,-18,42v-13,13,-35,18,-44,34v-60,27,-190,49,-194,-42v7,-41,17,-54,59,-70r0,-4v-32,-9,-73,-62,-26,-85v4,0,8,-2,14,-4xm142,-160v24,-2,160,-31,99,-72v-28,-18,-108,-33,-146,-5v-16,12,-28,30,-33,59v24,12,37,20,80,18xm41,-62v30,65,189,6,199,-37v3,-14,-60,-30,-74,-30v-70,0,-118,10,-125,67",w:290},9:{d:"11,-192v15,-49,119,-61,161,-23v16,15,27,55,11,79v-20,62,-51,79,-96,118v-10,4,-45,27,-50,6v9,-15,66,-52,98,-99v-7,-7,-8,-3,-25,0v-49,-11,-96,-25,-99,-81xm145,-131v7,-5,13,-34,13,-41v-2,-51,-104,-38,-114,-6v-2,10,37,35,46,35v23,1,43,-1,55,12",w:198},":":{d:"39,-125v15,-8,40,-1,40,15v0,15,-6,22,-19,22v-13,0,-29,-21,-21,-37xm66,-17v-8,27,-51,19,-46,-8v-1,-6,8,-22,14,-20v29,0,30,6,32,28",w:95},";":{d:"56,-93v2,-30,37,-22,40,2v0,2,-1,7,-3,15v-13,8,-15,6,-27,4xm64,-44v11,-11,30,-4,32,14v-21,39,-63,71,-92,85v-5,0,-11,-2,-18,-8v11,-23,36,-36,50,-61v11,-7,19,-20,28,-30",w:107},"<":{d:"166,-202v12,0,29,15,24,29v0,4,-119,64,-120,73v15,21,89,64,91,86v2,29,-18,12,-30,15v-27,-29,-59,-54,-95,-75v-18,-10,-25,-13,-24,-41",w:176},"=":{d:"125,-121v18,7,55,-9,69,14v0,17,-45,26,-135,26v-18,0,-27,-7,-27,-21v-1,-37,60,-5,93,-19xm138,-71v20,0,48,-1,50,16v-13,24,-86,32,-131,29v-29,-2,-43,-10,-43,-24v-7,-23,36,-14,39,-17v27,6,57,-4,85,-4",w:196},">":{d:"4,-14v20,-48,77,-59,118,-94v-16,-19,-58,-52,-81,-75v-11,-7,-15,-38,-1,-40v33,16,83,71,121,105v26,23,-6,35,-41,53v-29,16,-56,28,-73,54v-21,15,-16,20,-34,15v-3,0,-9,-16,-9,-18",w:174},"?":{d:"105,-291v57,-13,107,-4,107,39v0,67,-136,85,-155,137v-1,6,10,23,-4,23v-23,1,-33,-35,-23,-57v31,-41,124,-60,149,-103v-8,-21,-72,-5,-88,-1v-23,6,-59,39,-71,8v0,0,-1,0,1,-17v10,-4,45,-20,84,-29xm80,-25v-6,4,-8,39,-24,22v-24,3,-22,-21,-13,-35v17,-7,29,5,37,13",w:216},"@":{d:"218,-207v23,8,42,14,47,37v44,68,-27,137,-87,85r1,0v0,2,-59,19,-61,17v-35,0,-42,-47,-17,-68r0,-4v-19,-1,-45,37,-49,40v-37,76,58,72,121,62v11,-2,34,-13,36,3v-14,31,-69,31,-114,33v-51,2,-99,-41,-80,-92v2,-30,22,-40,42,-63v35,-20,91,-53,161,-50xm217,-101v23,0,35,-19,35,-41v0,-43,-75,-41,-102,-19v36,3,55,16,62,41v-6,5,-6,19,5,19xm127,-110v8,5,51,-15,28,-16v-4,0,-25,4,-28,16",w:291},A:{d:"97,-81v-23,-10,-39,38,-52,60v-8,6,-8,6,-22,18v-22,-7,-23,-37,-4,-49v7,-8,11,-15,15,-23r-1,1v-14,-26,23,-29,31,-40v1,-1,15,-29,26,-36v17,-31,39,-58,54,-92v16,-20,20,-51,41,-66v29,5,34,62,45,92v9,64,21,103,49,155v-3,25,-44,11,-54,0v-34,-12,-97,-29,-128,-20xm107,-118v20,6,80,10,111,17v6,-7,-4,-15,-7,-24v-11,-28,-9,-92,-30,-117v-9,9,-19,44,-34,55v-9,23,-27,40,-40,69",w:294},B:{d:"256,-179v41,10,115,34,91,91v-6,3,-14,12,-19,20v-37,19,-50,34,-63,25v-9,10,-12,11,-34,13r3,-3v-4,-4,-12,-4,-18,0v0,0,2,2,5,4v-21,14,-26,6,-44,15v-4,0,-7,-2,-8,-5v-6,11,-20,-5,-18,11v-36,4,-91,35,-114,4v-7,-62,-10,-138,4,-199v-1,-19,-37,2,-37,-27v0,-8,2,-13,6,-15v68,-31,231,-92,311,-39v8,12,12,20,12,25v-8,42,-32,49,-77,80xm79,-160v72,-17,135,-39,184,-70v20,-13,31,-23,31,-27v1,-6,-30,-13,-38,-12v-54,0,-116,13,-186,41v11,21,1,48,9,68xm262,-43v0,-4,3,-6,-4,-5v0,1,1,2,4,5xm211,-140v-34,7,-94,24,-139,15v-6,20,-4,56,-4,82v0,29,43,1,56,2v48,-11,108,-25,154,-48v20,-10,32,-17,32,-25v0,-18,-33,-26,-99,-26xm195,-20v6,1,6,-2,5,-7v-3,2,-7,2,-5,7",w:364},C:{d:"51,-114v-12,75,96,76,166,71r145,-10v9,2,9,5,9,18v-37,18,-85,28,-109,22v-18,10,-47,10,-71,10v-29,0,-68,1,-105,-11v-6,-1,-10,-3,-10,-8v-33,-13,-48,-33,-66,-59v-19,-114,146,-150,224,-177v35,0,88,-31,99,7v-1,29,-49,14,-76,28v-55,8,-115,35,-175,71v-13,8,-23,21,-31,38",w:376},D:{d:"312,-78v-2,1,-3,7,-10,5v6,-3,10,-4,10,-5xm4,-252v2,-27,83,-38,106,-39v130,-7,267,1,291,109v0,0,-2,8,-3,25v-5,9,-4,28,-23,34v-4,4,-2,5,-7,0v-3,3,-15,7,-5,10v0,0,-10,14,-13,2v-11,1,-8,5,-20,14v1,2,7,3,9,1v-4,13,-22,13,-11,4v0,-3,1,-6,-3,-5v-40,29,-103,38,-141,65v10,6,22,-7,34,-3v-41,20,-127,44,-171,46v-21,1,-47,-33,-11,-39v15,-2,43,-6,56,-11v-16,-101,-5,-130,9,-207v2,0,4,-1,6,-3v-16,-17,-91,38,-103,-3xm297,-69v-7,3,-17,8,-25,7v1,1,3,2,5,2v-4,2,-11,5,-23,9v4,-11,30,-21,43,-18xm240,-51v10,0,12,2,0,6r0,-6xm220,-36v-1,-3,4,-6,6,-3v0,1,-2,1,-6,3xm125,-48v16,6,137,-46,155,-53v29,-18,101,-44,82,-93v-21,-53,-84,-61,-168,-67v-20,7,-50,3,-77,8v33,54,-12,132,8,205xm159,-22v-4,-1,-15,-5,-15,2v7,-1,12,-2,15,-2",w:381},E:{d:"45,-219v-19,-36,34,-41,63,-36v44,-10,133,-8,194,-15v3,2,38,11,52,15v-73,19,-171,21,-246,38v-9,11,-16,32,-20,61v35,11,133,-6,183,3v1,6,2,7,3,14v-46,24,-118,16,-193,27v-15,13,-22,52,-22,66v60,1,121,-20,188,-20v22,10,53,-7,74,5v16,29,-23,26,-43,32v-73,4,-139,13,-216,27r-52,-10v-4,-22,23,-69,26,-98v-3,0,-10,-15,-12,-24v20,-12,34,-23,35,-67v2,-1,5,-5,5,-7v0,-4,-14,-11,-19,-11",w:353},F:{d:"270,-258v13,2,59,6,48,34v-78,-3,-143,1,-212,22v-10,16,-21,43,-24,69r145,-9v8,3,29,-3,16,21v-14,-1,-59,13,-60,7v-12,13,-67,18,-108,21v-2,1,-4,3,-7,6v-2,23,-8,43,-7,69v1,28,-30,11,-40,5r10,-80r-26,-14v5,-10,10,-33,28,-25v21,-3,15,-46,26,-59v-1,-3,-32,-13,-28,-24v2,-22,45,-16,59,-30v47,4,99,-14,151,-9v5,-3,25,-3,29,-4",w:236},G:{d:"311,-168v53,0,94,57,74,110v-31,37,-71,34,-136,52v-13,-7,-41,10,-57,7v-73,-1,-122,-17,-162,-59v-49,-51,-24,-80,5,-130v35,-61,138,-93,214,-106v16,4,42,-1,40,21v-5,40,-39,2,-73,21v-76,19,-162,65,-177,142v28,103,237,76,312,29v2,-3,3,-7,3,-13v-10,-35,-37,-43,-87,-45v-16,-13,-53,-9,-78,1v-4,-3,-5,-7,-5,-11v17,-29,73,-17,108,-24v12,4,18,5,19,5",w:391},H:{d:"300,-268v18,12,19,32,4,51v-35,44,-34,140,-46,217v-1,5,-5,13,-11,12v-6,1,-19,-14,-18,-27r7,-106v-28,7,-76,22,-116,14v-18,2,-36,6,-55,3v-43,-8,-14,53,-33,75v-29,1,-26,-67,-21,-97v5,-31,28,-73,43,-98v2,2,7,3,14,3v13,33,-11,48,-13,78v61,4,118,2,176,2v8,0,13,-6,15,-20v4,-47,21,-87,54,-107",w:288},I:{d:"63,-266v34,10,-4,105,-8,128r-24,126v-2,2,-3,1,-9,6v-12,-10,-12,-15,-12,-47v0,-93,9,-156,28,-188v10,-17,19,-25,25,-25",w:79},J:{d:"235,-291v26,11,31,104,31,142v0,37,-2,95,-32,126v-33,34,-121,26,-167,1v-18,-11,-54,-29,-59,-59v0,-3,5,-15,16,-14v31,36,90,57,162,51v63,-30,56,-148,32,-226v-1,-16,11,-13,17,-21",w:282},K:{d:"212,-219v17,-5,80,-60,80,-19v0,9,-2,14,-5,16r-132,78v-34,23,-54,32,-21,50v39,21,74,23,124,41v5,2,7,5,7,9v-4,24,-55,15,-79,8v-67,-19,-98,-36,-116,-83v9,-24,38,-35,66,-61v7,-4,49,-30,76,-39xm47,-194v11,-20,11,-45,31,-55v2,2,4,3,6,0v29,39,-21,96,-18,128v-17,24,-15,62,-29,113v-4,3,-10,7,-19,11v-12,-13,-10,-28,-8,-53v3,-31,17,-79,37,-144",w:270},L:{d:"84,-43v58,0,179,-27,242,-4v3,17,-29,24,-40,26v-85,-4,-202,46,-268,3v-24,-16,-2,-33,-4,-57v26,-76,38,-108,86,-191v14,-7,26,-50,45,-32v6,22,5,31,-12,46v-20,39,-50,82,-67,142v-7,6,-19,46,-19,54v0,9,12,13,37,13",w:331},M:{d:"174,-236v-1,52,-11,92,-7,143v10,5,15,-12,22,-18v42,-55,90,-130,136,-174r15,-18v42,2,32,53,11,80v-12,58,-54,143,-34,210v0,3,-3,12,-9,10v-31,-5,-32,-57,-27,-92v4,-27,12,-58,25,-93v-5,-10,5,-19,6,-30v-46,44,-66,110,-129,172v-11,10,-18,15,-22,15v-34,6,-28,-103,-28,-152v-28,22,-65,119,-96,170v-9,15,-34,3,-31,-19v30,-64,91,-177,139,-229v12,-1,29,13,29,25",w:343},N:{d:"248,-20v-3,17,-37,18,-43,3v-24,-35,-53,-145,-80,-203v-32,40,-55,120,-92,174v-13,3,-26,-13,-27,-22r87,-171v4,-13,20,-57,42,-32v42,48,46,139,82,198v29,-45,46,-88,65,-153v12,-19,23,-42,38,-60v27,-1,14,18,4,44v-6,46,-32,68,-37,121v-15,29,-33,69,-39,101",w:307},O:{d:"240,-268v85,1,163,29,150,125v13,7,-12,18,-5,26v-23,63,-133,112,-228,124v-80,-16,-171,-56,-148,-153v11,-47,20,-43,53,-83v17,-9,39,-22,73,-29v45,-10,81,-10,105,-10xm363,-156v16,-51,-62,-85,-111,-79v-25,-11,-50,8,-81,0v-15,10,-70,16,-85,31v6,20,-27,24,-39,45v-42,75,40,128,115,128v56,0,209,-71,201,-125",w:383},P:{d:"70,-225v-7,-12,-36,16,-49,19v-4,0,-9,-5,-14,-17v21,-47,114,-55,172,-59v41,-3,132,33,99,87v-21,34,-72,59,-144,80v-2,16,-79,3,-74,46v3,25,-5,47,-10,68v-22,-1,-23,-29,-22,-56v2,-25,-20,-32,-8,-50v21,-5,10,-35,25,-57v6,-28,14,-48,25,-61xm71,-229v47,14,-2,50,-1,99v41,-3,113,-37,173,-76v5,-9,8,-14,8,-15v-28,-47,-125,-29,-180,-8",w:252},Q:{d:"374,-217v20,59,-11,127,-48,156r30,38v-1,6,-8,16,-14,9v-3,0,-19,-9,-47,-26v-72,35,-173,75,-236,12v-70,-40,-67,-213,26,-217r8,5v24,-20,72,-48,112,-38v21,-4,22,-1,50,-2v66,-2,94,20,119,63xm296,-88v13,5,61,-49,63,-84v4,-62,-54,-78,-119,-76v-14,-6,-49,5,-71,3v-42,16,-89,41,-93,94v-9,11,1,25,-7,38v-12,-19,-7,-67,-1,-88v-56,30,-37,137,19,155v27,17,92,19,119,0v12,-2,29,-9,52,-20v2,-2,3,-3,3,-6v-11,-12,-46,-27,-54,-56v0,-13,3,-19,9,-19v18,1,60,52,80,59",w:379},R:{d:"100,-275v96,-23,196,-10,208,78v-3,18,-17,52,-49,62v-14,20,-54,23,-79,40v-2,0,-14,2,-36,6v-40,8,-30,14,-3,33v37,27,52,30,118,55v16,6,31,23,12,27v-58,-2,-104,-29,-143,-61v-14,-3,-16,-15,-39,-27v-23,-19,-28,-12,-15,-38v63,-19,111,-15,163,-53v27,-20,43,-36,43,-49v0,-64,-120,-62,-173,-38v-9,4,-38,9,-40,18v-10,32,-16,70,-13,116v-10,21,-8,47,-6,75v2,31,-9,29,-27,22v-9,-55,5,-140,15,-190v-8,-6,-24,10,-24,-11v0,-34,16,-34,42,-55v2,-1,17,-4,46,-10",w:297},S:{d:"13,-3v-7,-3,-22,-18,-5,-22v68,-15,119,-32,154,-45v51,-19,39,-34,3,-53v-46,-25,-82,-30,-121,-64v-33,-29,-50,-35,-25,-58v37,-20,119,-29,181,-29v29,0,44,6,44,18v-9,26,-62,6,-104,14v-17,2,-72,6,-92,16v37,53,132,58,180,111v8,9,11,20,11,30v-4,17,-23,35,-42,34v-21,16,-17,1,-49,17v-14,7,-41,9,-56,20v-25,-3,-49,10,-79,11",w:234},T:{d:"141,-3v-36,-6,1,-49,-3,-79v10,-19,6,-35,15,-64r26,-85v-51,-9,-100,10,-141,14v-16,2,-30,-26,-11,-32v26,-8,143,-8,179,-19r12,6v67,-2,142,-1,200,-1v8,0,14,3,19,10v-18,16,-74,3,-103,14v-48,-4,-60,4,-113,7v-42,22,-36,130,-58,187v1,12,-9,44,-22,42",w:277},U:{d:"365,-262v13,56,-22,104,-36,141v-19,22,-30,38,-57,56v-4,18,-60,35,-78,50v-53,28,-142,0,-161,-34v-31,-56,-37,-108,-11,-164v17,-33,29,-50,48,-29v-2,2,-3,7,-4,13v-44,36,-38,149,7,174v30,26,55,19,102,4v56,-17,66,-34,120,-76v12,-24,56,-68,46,-122r0,-16v0,1,-1,3,-1,6v4,-13,11,-10,25,-3",w:368},V:{d:"246,-258v21,-22,31,-26,44,-8v1,1,-12,22,-28,35v-15,25,-41,38,-56,69v-13,15,-20,31,-28,57v-15,13,-11,29,-27,72v3,21,-5,24,-27,27v-33,-45,-54,-118,-84,-167v-5,-26,-18,-50,-25,-76v-3,-12,24,-8,29,-5v8,13,18,52,26,70r52,115v9,-2,4,-9,10,-21r25,-47v25,-44,46,-76,89,-121",w:234},W:{d:"31,-213v16,46,17,106,41,151v31,-35,49,-89,76,-127v30,-15,39,27,52,56v10,22,21,48,35,67v2,0,4,-1,5,-3v16,-28,50,-76,79,-121v14,-21,40,-63,64,-83r5,8v-30,58,-76,110,-97,173v-18,28,-25,37,-33,63v-11,1,-16,25,-30,15v-21,-31,-44,-89,-62,-131v0,-2,-1,-3,-5,-5v-17,11,-16,36,-31,50v-20,33,-20,84,-68,94v-24,-19,-23,-81,-39,-111v-1,-15,-29,-94,-10,-108v9,2,12,5,18,12",w:331},X:{d:"143,-183v43,-25,69,-36,126,-62v22,-10,86,-10,56,21v-51,3,-158,61,-154,64v10,15,41,30,50,52v27,17,46,60,70,82v9,14,-6,30,-24,20v-35,-43,-75,-100,-116,-132v-48,13,-100,47,-118,94v-1,49,-26,34,-27,4v-1,-26,13,-27,17,-48v22,-27,68,-55,90,-77v-9,-12,-60,-39,-79,-57v-6,-10,-6,-25,12,-25",w:312},Y:{d:"216,-240v19,-14,42,10,22,26v-54,66,-121,109,-156,197v-8,21,-11,15,-30,4v3,-37,27,-61,33,-76v12,-12,15,-19,32,-42v-8,-6,-40,5,-45,5v-48,-6,-69,-65,-56,-113v14,0,13,-1,24,7v2,33,12,75,42,73v36,-2,102,-57,134,-81",w:189},Z:{d:"60,-255v66,12,200,-34,240,21v-13,42,-63,62,-98,89v-19,15,-47,33,-82,55v-25,16,-47,32,-66,47v58,24,129,-6,208,-6v23,0,36,12,13,19v-33,2,-53,5,-86,10v-32,18,-88,15,-135,15v-9,-1,-55,-1,-48,-29v1,-24,30,-24,40,-41v64,-50,151,-86,208,-147v-38,-17,-155,12,-198,-4v0,0,-11,-33,4,-29",w:310},"[":{d:"72,-258r-15,250v30,4,55,-3,80,-6v7,-1,8,17,9,23v-28,15,-73,23,-121,21v-7,0,-10,-6,-10,-17v0,-60,25,-193,22,-288v0,-16,13,-20,33,-19v9,-3,34,-12,51,-12v16,0,15,16,19,29v-16,7,-48,10,-68,19",w:151},"\\":{d:"236,38v20,-18,-8,-74,-13,-90v-44,-78,-112,-190,-200,-253v-2,0,-5,4,-7,12v-11,31,13,36,24,58v74,61,174,219,180,273r16,0",w:257},"]":{d:"133,-258v-23,-13,-84,6,-85,-32v0,-10,5,-15,14,-15v0,0,30,2,90,7v10,1,15,13,15,36v2,7,-8,59,-13,112r-11,125v-9,48,9,90,-59,71v-20,-4,-39,-1,-59,-4v-5,-10,-25,-12,-14,-30v8,-3,61,-13,78,-8v14,1,8,-7,10,-17v15,-69,21,-166,34,-245",w:171},"^":{d:"68,-306v20,15,47,36,58,60v-1,4,0,7,-9,7v-26,0,-47,-38,-49,-32v-15,9,-41,50,-54,30v-2,-31,17,-23,33,-51v8,-9,15,-14,21,-14",w:135},_:{d:"11,15v-8,33,18,45,50,34r205,2r197,-5v11,-5,14,-9,7,-28v-95,-21,-258,-10,-376,-10v-25,0,-72,-3,-83,7",w:485},"`":{d:"75,-264v16,8,56,14,39,43v-30,-8,-65,-23,-105,-44v-1,-3,-3,-28,5,-25v16,5,44,17,61,26",w:129},a:{d:"124,-56v10,4,59,41,65,50v1,7,-6,17,-12,17r-60,-30v-22,2,-42,21,-65,19v-33,4,-68,-67,-15,-81v41,-27,96,-39,110,9v0,6,-4,12,-11,16v-33,-25,-67,-5,-88,12v10,16,61,-18,76,-12",w:196},b:{d:"80,-140v69,1,123,0,134,52v5,26,-71,71,-97,70v-11,11,-88,22,-94,22v-11,-3,-26,-18,-6,-24v19,-5,-2,-19,-1,-35v1,-18,11,-36,-5,-47v-6,-17,-6,-21,14,-32v6,-45,18,-89,28,-124v2,-7,8,-12,17,-15v5,3,10,11,16,28v-12,27,-13,63,-23,96v0,6,6,9,17,9xm87,-107v-40,-9,-31,31,-39,54v8,15,0,25,12,22v30,-8,60,-18,88,-32v39,-18,49,-33,-1,-42v-20,-4,-45,-7,-60,-2",w:217},c:{d:"128,-123v29,-7,37,29,12,33v-27,-4,-40,6,-79,25v-8,4,-13,11,-16,22v30,32,91,3,134,11v5,13,-8,26,-22,19v-51,25,-139,28,-150,-30v6,-50,69,-82,121,-80",w:194},d:{d:"224,-201v0,-35,-17,-111,24,-94v7,86,-2,119,0,197v-4,2,-8,21,-18,16v-62,-7,-154,-8,-185,29v6,17,28,26,51,26v16,0,100,-15,132,-18v7,5,-6,20,-10,22v-24,8,-122,42,-163,25v-32,-5,-62,-53,-36,-80v35,-37,118,-46,198,-43v1,-22,7,-49,7,-80",w:265},e:{d:"4,-57v0,-58,51,-71,110,-74v33,-1,45,16,59,35v1,14,2,39,-7,42v-24,-2,-73,13,-99,11v-2,2,-2,3,-2,3v0,3,12,8,37,15v21,0,69,9,31,22v-9,14,-34,6,-56,6v-27,-5,-73,-28,-73,-60xm123,-102v-22,2,-68,5,-65,26v24,-2,66,5,79,-6v-5,-13,-1,-13,-14,-20",w:182},f:{d:"6,-59v6,-29,53,-4,53,-43v0,-64,29,-118,84,-150v45,-25,167,-24,155,51v-1,2,-7,6,0,6r-10,2v-45,-58,-165,-39,-186,39v-7,26,-11,42,-9,62v44,8,95,-21,135,-7v-12,25,-39,21,-76,30v-19,5,-18,7,-54,19v-2,8,15,32,17,35v-6,25,-26,26,-40,-5r-15,-24v-41,10,-44,12,-54,-15",w:234},g:{d:"132,-97v30,27,21,75,30,117v-12,31,-11,66,-36,103v-32,46,-105,83,-167,39v-31,-21,-49,-29,-51,-75v-2,-37,77,-50,121,-57v37,-6,68,-10,95,-11v7,-6,3,-32,4,-46v0,0,-1,1,-1,2v0,-18,-5,-31,-14,-45v-44,5,-79,20,-94,-18v3,-54,73,-54,125,-50v12,7,12,13,4,25v-30,-11,-76,8,-90,20v23,3,50,-16,74,-4xm-34,121v60,53,168,1,159,-86v-47,-7,-93,24,-142,30v-12,7,-45,19,-42,29v0,10,8,19,25,27",w:188},h:{d:"100,-310v11,-2,10,19,11,20v-11,52,-40,133,-53,189v-6,30,-9,37,-9,47v27,0,113,-34,143,-34v42,0,31,47,39,79v0,4,-5,17,-16,16v4,2,11,3,4,6v-24,-1,-28,-34,-25,-64v-1,-1,-2,-3,-5,-5v-51,0,-110,38,-162,51v-9,1,-15,-15,-16,-23v17,-89,39,-141,71,-264v0,-9,6,-19,18,-18",w:251},i:{d:"62,-209v7,18,9,23,-5,38v-23,-6,-21,-18,-11,-36v2,0,8,-1,16,-2xm34,-7v-18,-21,-8,-73,-1,-106v7,-10,20,-8,23,6v-1,36,7,72,-2,104v-8,2,-8,0,-20,-4",w:80},j:{d:"88,-191v5,28,-18,40,-28,21v0,-20,12,-29,28,-21xm82,-99v28,-1,16,35,16,61v0,60,-19,150,-35,202v-12,8,-19,31,-35,16v-32,-7,-43,-19,-56,-44r2,-17v11,4,49,45,61,18v10,-55,27,-107,30,-171v0,-16,0,-59,17,-65",w:120},k:{d:"59,-66v33,26,114,37,155,62v8,-4,22,-2,19,-17v0,-4,-12,-11,-30,-24v-36,-25,-54,-22,-99,-33v14,-21,119,-13,103,-63r-16,-7r-123,47r25,-93v-3,-15,16,-49,18,-81v1,-15,-21,-14,-25,-3v-31,82,-49,168,-75,257v2,2,22,30,27,10v2,-5,4,-9,9,-11v4,-16,4,-15,12,-44",w:236},l:{d:"66,-300v21,-6,37,23,30,55v-10,51,-28,135,-28,208v0,11,6,36,-13,37v-29,-5,-30,-48,-25,-83r28,-177v-6,-17,1,-29,8,-40",w:102},m:{d:"348,-59v-2,21,0,57,3,73v-17,3,-30,-1,-32,-16v-8,-7,-5,-44,-13,-70v-35,3,-82,49,-111,70v-12,8,-40,4,-39,-15r2,-56v-1,-13,4,-28,-8,-29v-35,8,-79,72,-115,87v-6,2,-20,-18,-21,-22v1,-20,14,-105,39,-64r8,15v17,-14,72,-56,93,-54v27,3,49,40,43,80v24,-2,66,-55,124,-53v11,14,28,23,27,54",w:368},n:{d:"121,-136v37,6,62,54,62,111v0,32,-16,25,-31,17v-18,-30,-5,-45,-22,-85v-37,-13,-71,55,-92,65v-20,-3,-39,-39,-21,-62v2,-12,3,-15,11,-30v12,-8,20,11,29,12",w:194},o:{d:"108,-139v52,-24,104,18,104,63v0,59,-66,67,-114,83v-52,-2,-115,-50,-80,-105v23,-18,52,-35,90,-41xm45,-60v16,54,125,16,131,-23v-12,-59,-129,-8,-131,23",w:217},p:{d:"82,14v-10,12,-8,117,-24,142v-15,2,-19,0,-29,-13v0,-76,9,-113,22,-192v14,-27,35,-6,37,13v0,8,-3,21,-7,38v2,2,3,2,4,2v26,-9,116,-33,126,-72v-7,-17,-24,-33,-49,-31v-40,3,-116,13,-116,47v-5,7,-2,17,-16,20v-17,-12,-18,-20,-12,-38v8,-25,74,-61,110,-59v55,-15,113,15,118,70v-15,52,-84,79,-146,83v-5,0,-11,-4,-18,-10",w:251},q:{d:"144,-147v27,-8,89,-3,97,31v-9,29,-42,-4,-73,1v-32,6,-118,20,-111,49v0,7,13,13,21,13v21,0,78,-24,104,-34v2,0,9,8,22,21v1,1,1,2,1,5v-27,90,-22,70,-43,203v11,15,-15,54,-33,33v-6,-8,-10,-20,-3,-28v1,-72,5,-114,15,-172v-35,3,-35,10,-59,8v-41,-4,-98,-41,-56,-85v33,-34,59,-27,118,-45",w:248},r:{d:"242,-117v2,22,5,10,-14,23v-73,-7,-166,-23,-174,56v-8,6,-3,20,-8,36v-29,10,-40,-9,-33,-46v6,-31,7,-69,32,-55v58,-37,66,-42,175,-19v3,5,15,4,22,5",w:229},s:{d:"154,-151v19,1,27,24,13,32v-4,1,-22,4,-53,7v-16,8,-22,-2,-39,9v23,21,89,16,96,62v-13,24,-85,35,-124,42v-9,-3,-18,-3,-27,0v-6,-4,-21,-16,-8,-25v30,-6,83,-13,102,-24v-17,-16,-80,-33,-97,-48v-3,-2,-4,-7,-4,-15v-6,-6,3,-13,15,-18v22,-9,94,-23,126,-22",w:188},t:{d:"85,-150v10,-41,35,-126,65,-134v4,1,24,19,11,36v-17,22,-29,57,-36,104v26,8,50,-7,73,5v14,0,22,3,22,9v-1,19,-44,18,-57,23v-10,1,-46,0,-54,10v-10,24,-4,67,-20,98v-21,-3,-26,1,-26,-20v0,-9,2,-36,8,-81v-15,-13,-81,9,-77,-27v4,-38,71,6,91,-23",w:194},u:{d:"207,-136v-1,-2,11,-14,14,-13v6,0,10,7,10,22v-3,40,-23,56,-40,82v-13,19,-62,43,-93,43v-67,-2,-111,-75,-71,-133v26,-3,21,29,19,49v-1,27,26,44,57,42v41,-2,93,-55,104,-92",w:242},v:{d:"24,-127r52,71v42,-16,70,-54,124,-65v5,4,8,7,8,11v-8,19,-4,8,-33,32v0,1,-1,3,-1,5v-61,45,-93,68,-97,68v-40,-15,-50,-72,-68,-100v6,-14,10,-22,15,-22",w:214},w:{d:"15,-139v38,-2,27,57,45,86v30,2,67,-66,101,-78v26,6,36,69,60,78v47,-35,51,-54,119,-104v3,0,7,-2,15,-4v19,23,-9,28,-21,49v-33,28,-68,90,-107,109v-10,6,-52,-47,-72,-71v-20,17,-85,74,-97,73v-38,7,-41,-98,-52,-122v0,-1,3,-7,9,-16",w:325},x:{d:"95,-124v22,-13,78,-32,99,-31v16,0,23,6,23,18v0,22,-17,11,-49,21v-3,0,-45,20,-42,24v0,1,2,4,8,10v20,24,49,41,44,80v-35,3,-27,-9,-60,-44v-40,-43,-37,-26,-79,9v-1,1,-2,3,-3,8v-12,8,-28,10,-27,-11v-6,-8,45,-65,48,-65v-17,-21,-61,-52,-24,-68v9,0,48,37,62,49",w:223},y:{d:"44,-65v22,33,70,4,99,-8v5,-4,28,-15,41,-31r17,0v25,47,-26,70,-40,114v-5,4,-9,8,-10,21v-16,12,-11,33,-27,51v-5,18,-12,43,-23,71v-1,-1,-2,34,-18,29v-12,1,-22,-12,-22,-23v20,-70,24,-65,68,-177v-47,16,-111,8,-116,-39v-11,-13,-7,-62,8,-62v18,0,22,26,23,54",w:216},z:{d:"189,-43v9,-1,46,-6,41,12v0,7,-5,13,-15,14v-45,6,-148,24,-181,13v0,-3,-5,-8,-14,-15v5,-44,66,-46,90,-85v-15,-18,-84,21,-84,-14v0,-10,5,-17,14,-18v33,-3,79,-13,109,-3v4,-2,14,11,12,15v0,23,-26,51,-78,84v28,10,73,-3,106,-3",w:244},"{":{d:"94,-303v27,-9,90,-14,79,26v-20,17,-55,-5,-87,13v-4,1,-6,4,-6,8v33,42,31,44,7,85v-6,10,-13,16,-13,13v5,6,17,17,15,31r-33,78v7,35,28,49,57,63r49,0v7,42,-51,41,-86,20v-43,-13,-51,-51,-56,-89v-2,-25,25,-54,27,-71v-3,-4,-46,-5,-41,-21v2,-10,-3,-29,11,-25v2,0,51,-17,52,-38v4,-3,-25,-23,-25,-49v0,-41,8,-30,50,-44",w:179},"|":{d:"30,-308v26,5,14,50,15,80v5,78,-8,153,-3,225v-2,15,-1,31,-11,36v-8,-3,-25,-22,-25,-32r9,-183v0,-40,0,-78,1,-112v0,-4,9,-15,14,-14",w:63},"}":{d:"47,-298v34,-17,118,-18,112,36v6,25,-76,98,-69,103v4,16,39,7,44,28v7,34,-34,17,-37,39v8,29,49,83,23,123v-15,23,-43,26,-73,46v-34,8,-43,11,-49,-17v1,-15,30,-15,33,-20v24,-12,70,-27,55,-61v-14,-33,-37,-68,-19,-103v-46,-50,46,-100,60,-141v-10,-16,-68,6,-77,-12",w:143},"~":{d:"7,-254v2,-6,59,-50,67,-46v11,-1,35,19,46,26v5,0,27,-10,66,-31v21,8,-1,25,-7,38v-27,21,-48,31,-65,31v-24,-11,-37,-39,-65,-9v-7,7,-26,36,-42,11v3,-5,-3,-17,0,-20",w:199}," ":{w:179},"¡":{d:"86,-197v8,16,-7,41,-24,25v-11,-11,-4,-16,-3,-29v13,0,15,-2,27,4xm46,-107v4,-8,11,-16,23,-7v19,26,-5,57,-6,87v-7,0,-5,18,-9,28v0,14,-17,52,-11,70v-2,7,-15,28,-25,12v-4,-6,-15,-7,-6,-16v2,-39,14,-96,34,-174",w:95},"¢":{d:"105,-188v13,-12,14,-18,26,-15v7,23,7,15,-3,49v6,0,18,14,17,20v-3,5,-12,19,-26,13v-14,1,-14,5,-16,21v10,10,46,-13,38,18v-9,17,-23,16,-54,20v-17,16,-4,55,-29,60v-37,-10,19,-64,-24,-71v-20,-10,-37,-47,-6,-62v23,-20,73,-4,77,-53xm65,-101v4,-9,7,-8,3,-13v-14,4,-22,10,-3,13",w:154},"£":{d:"153,-170v3,22,62,0,49,39v-18,6,-31,12,-58,9v-12,-1,-17,30,-23,39v19,26,50,56,91,35v9,-2,27,-13,27,4v0,27,-27,39,-58,42v-32,-5,-59,-19,-78,-39v-6,1,-35,44,-57,39v-25,0,-37,-15,-37,-46v0,-41,43,-53,73,-50v4,1,12,-18,12,-21v-7,-15,-49,0,-44,-30v-2,-31,31,-16,60,-19v16,-30,25,-119,93,-113v16,2,75,16,50,44v-4,5,-7,7,-12,8v-18,-12,-32,-18,-41,-18v-35,-1,-38,52,-47,77xm43,-45v4,5,12,-2,11,-9v-1,2,-12,1,-11,9",w:242},"¤":{d:"308,-133r-200,16v-2,1,-6,4,-10,10v70,-2,144,-14,211,-8v3,0,8,4,13,8v-1,4,-3,9,-9,17v-57,11,-164,6,-219,25v26,32,112,25,173,25v9,0,35,2,35,19v0,9,-4,13,-12,14v-115,12,-146,23,-211,-19v-12,-4,-22,-9,-25,-27v-6,-29,-61,3,-43,-49v17,-1,36,7,42,-12v-32,7,-36,-39,-11,-40v29,14,63,-25,73,-30v52,-25,72,-44,142,-44v23,0,21,41,-1,39v-35,-3,-61,9,-102,31v2,2,5,4,8,4v18,-6,101,-9,115,-9v7,0,55,13,31,30",w:312},"€":{d:"308,-133r-200,16v-2,1,-6,4,-10,10v70,-2,144,-14,211,-8v3,0,8,4,13,8v-1,4,-3,9,-9,17v-57,11,-164,6,-219,25v26,32,112,25,173,25v9,0,35,2,35,19v0,9,-4,13,-12,14v-115,12,-146,23,-211,-19v-12,-4,-22,-9,-25,-27v-6,-29,-61,3,-43,-49v17,-1,36,7,42,-12v-32,7,-36,-39,-11,-40v29,14,63,-25,73,-30v52,-25,72,-44,142,-44v23,0,21,41,-1,39v-35,-3,-61,9,-102,31v2,2,5,4,8,4v18,-6,101,-9,115,-9v7,0,55,13,31,30",w:312},"¥":{d:"31,-248v30,-3,64,64,74,59v37,-22,77,-65,107,-82v20,-11,34,18,21,32v-28,19,-52,38,-70,57v-18,8,-40,21,-35,60v2,19,39,7,64,7v25,0,16,21,2,27v-36,16,-46,8,-68,18v6,11,101,-20,66,24v-21,11,-42,12,-75,20v-2,1,-5,6,-10,18v-8,3,-11,10,-24,8v-7,-17,-2,-18,-9,-26v-13,5,-39,3,-53,-2v-10,-17,-7,-27,0,-34v23,-1,45,1,64,-5v-11,-7,-28,-4,-64,-6v-13,-8,-15,-24,-6,-35v33,-2,102,9,76,-37v-14,-14,-33,-38,-60,-66v-10,-10,-8,-28,0,-37",w:219},"§":{d:"141,-115v12,10,29,36,28,56v-4,68,-129,69,-152,16v-1,-12,-10,-22,8,-23v17,3,47,21,67,23v16,1,40,-8,38,-21v-8,-49,-119,-30,-117,-85v1,-28,15,-45,-3,-64v-1,-53,55,-61,103,-62v15,-5,6,-5,20,-2v16,17,23,27,23,30v-1,26,-29,7,-45,7v-21,0,-51,2,-62,17v19,14,87,8,97,43v18,14,16,57,-5,65xm64,-147r57,17v10,-28,-22,-43,-47,-44v-25,-1,-35,19,-10,27",w:174},"¨":{d:"124,-259v0,9,-4,13,-12,13v-18,0,-22,-21,-17,-35v19,-1,30,1,29,22xm23,-285v7,2,30,9,29,18v1,10,-9,19,-18,19v-19,0,-28,-26,-11,-37",w:136},"©":{d:"102,-29v-74,5,-124,-84,-70,-140v22,-22,53,-35,97,-38v46,-4,88,49,74,100v0,44,-51,75,-101,78xm96,-66v42,-3,75,-23,75,-69v0,-23,-4,-38,-44,-38v-16,0,-33,6,-49,20v36,-4,55,-12,62,20v-5,16,-49,1,-50,21v10,15,53,-14,54,11v0,18,-14,27,-42,27v-22,1,-46,-11,-46,-31v0,-25,7,-39,20,-44v-1,-1,-2,-2,-3,-2v-51,22,-32,89,23,85",w:217},"ª":{d:"6,-265v1,-31,58,-53,80,-22v-11,14,25,28,25,36v-2,8,-15,12,-27,10v-22,-29,-68,19,-78,-24xm52,-281v-8,1,-24,10,-9,13v11,1,24,-10,9,-13",w:117},"«":{d:"191,-64v16,6,87,37,53,63v-39,-9,-71,-28,-107,-40v-14,-13,-13,-34,10,-47v27,-15,48,-55,84,-62v9,-2,21,10,21,18r-13,21v-16,5,-44,22,-51,41v0,4,1,6,3,6xm71,-65v17,6,87,35,55,62v-39,-8,-66,-27,-108,-40v-14,-13,-13,-36,10,-46v23,-18,50,-56,84,-63v9,-2,21,10,21,18r-13,22v-20,6,-32,17,-51,37v0,3,-1,11,2,10",w:265},"¬":{d:"141,-99v47,7,103,-3,149,6v14,24,18,15,10,39v-10,34,-7,31,-26,76v-4,6,-15,8,-16,21v-4,2,-4,1,-13,5v-22,-33,-4,-33,16,-104v-5,-9,-28,-4,-38,-6r-183,4v-14,0,-41,-29,-17,-36v31,-9,82,5,118,-5",w:315},"®":{d:"75,-194v78,-29,116,9,130,84v-2,42,-22,47,-57,67v-74,20,-161,-19,-129,-110v6,-18,29,-34,57,-40xm46,-86v51,36,84,21,129,-15v7,-15,0,-39,-10,-49v-13,-37,-49,-26,-86,-18v-28,7,-49,46,-33,82xm72,-123v-5,-43,68,-57,75,-14v-17,26,-18,17,3,32v2,25,-25,18,-45,7r-4,-4v-1,8,-3,20,-12,24v-10,-3,-21,-34,-17,-45xm112,-135v-10,-1,-20,13,-9,14v6,-6,9,-11,9,-14",w:217},"¯":{d:"63,-295v28,-7,73,10,105,7v11,1,6,8,5,19v-37,21,-72,11,-136,11v-23,0,-31,-14,-27,-36v12,-15,40,0,53,-1",w:183},"°":{d:"106,-268v0,36,-35,38,-51,46v-48,5,-60,-58,-25,-78v33,-11,76,-9,76,32xm38,-257v16,7,39,2,38,-17v-13,-9,-28,-1,-32,11v-5,3,-7,0,-6,6",w:114},"±":{d:"93,-163v-7,46,76,-4,46,47v-14,6,-27,13,-38,8v-24,2,-14,28,-28,44r-14,0v-7,-12,-5,-15,-7,-33v-12,-7,-41,-1,-37,-24v2,-11,23,-17,36,-14r28,-38v4,0,9,4,14,10xm113,-27v-12,18,-58,27,-85,24v-16,2,-22,-23,-13,-36v28,-7,85,-11,98,12",w:151},"´":{d:"52,-284v29,-11,50,-34,62,-14v3,12,-86,54,-94,56v-14,0,-16,-12,-12,-23v11,-5,25,-11,44,-19",w:120},"¶":{d:"121,-237v21,-9,44,-13,63,-1v-1,7,5,6,7,11r-4,190v-2,33,4,39,-15,40v-16,1,-10,-20,-10,-33r4,-161v0,-17,-1,-34,-16,-25v2,10,1,23,1,35v-9,46,-6,75,-15,156v-3,4,-7,5,-12,5v-17,-10,-3,-89,-10,-115v-43,14,-98,10,-101,-29v-4,-53,59,-63,104,-75v3,1,4,2,4,2xm95,-204v2,9,-30,50,1,50v35,0,23,-13,29,-43v0,-1,-2,-7,-4,-15v-12,-1,-14,2,-26,8",w:206},"¸":{d:"74,16v32,2,49,14,55,36v-3,7,-14,31,-29,33v-28,4,-57,11,-88,14v-19,-6,-13,-31,8,-33v20,-1,59,-5,73,-14v-17,-14,-68,8,-53,-37v9,-10,2,-28,24,-30v8,8,13,17,10,31",w:129},"º":{d:"13,-273v1,-31,56,-41,83,-18v36,8,14,48,-9,52v-35,6,-64,-5,-74,-34xm81,-269v-7,-7,-20,-11,-29,-6v5,13,13,11,29,6",w:128},"»":{d:"120,-129v9,-33,48,-10,64,5v9,20,86,52,50,86v-36,11,-66,31,-107,40v-6,-7,-9,-13,-9,-17v-2,-13,50,-46,63,-46v11,-18,-33,-42,-48,-47xm1,-128v10,-33,46,-8,64,6v8,19,86,50,51,85v-40,13,-69,30,-108,40v-6,-7,-8,-12,-8,-16v-2,-14,50,-46,63,-47v7,-13,-9,-20,-19,-30v-10,-9,-20,-15,-30,-17",w:252},"¿":{d:"181,-247v3,1,31,2,29,15v-4,22,-37,27,-41,4v1,-5,7,-20,12,-19xm161,-34v-45,-1,-105,19,-124,51v0,11,18,17,54,17v39,0,82,-13,112,4v-10,35,-58,31,-100,31v-47,0,-80,-10,-99,-31v-10,-56,22,-73,64,-90v8,-3,32,-9,74,-18v21,-15,7,-62,22,-92v-1,-5,-1,-11,4,-12v16,0,24,7,24,22v-8,30,-8,73,-17,111v-3,5,-7,7,-14,7",w:213},"À":{d:"161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm150,-268v14,10,54,14,37,41v-28,-7,-62,-22,-100,-42v-2,-3,-2,-26,5,-23v16,4,42,17,58,24"},"Á":{d:"161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm84,-250v31,-5,83,-53,100,-31v0,5,-11,15,-35,28v-16,5,-51,28,-53,25v-14,1,-16,-11,-12,-22"},"Â":{d:"161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm202,-219v-27,-6,-40,-26,-61,-37v-21,7,-39,46,-65,23v-2,-4,-3,-10,-4,-14v19,-4,43,-32,61,-43v27,6,40,22,62,37v12,8,18,17,18,25v0,6,-3,9,-11,9"},"Ã":{d:"161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm100,-285v26,-19,54,19,69,22v4,0,15,-5,34,-13v23,-9,22,-17,31,-12v3,11,-9,9,-7,21v-26,20,-46,30,-59,30v-3,3,-50,-26,-49,-29v-12,1,-31,35,-51,32v-3,-8,-5,-14,-5,-18v10,-9,16,-17,37,-33"},"Ä":{d:"161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm187,-259v0,8,-4,13,-12,13v-18,0,-21,-20,-16,-34v18,-1,28,2,28,21xm90,-284v7,3,28,11,28,18v0,9,-9,18,-18,17v-17,0,-25,-24,-10,-35"},"Å":{d:"161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm112,-239v-31,-17,-9,-61,29,-56v12,2,22,3,33,12v24,39,-30,62,-62,44xm119,-262v2,14,41,8,41,-4v0,-4,-8,-6,-24,-9v-10,-2,-17,10,-17,13"},"Æ":{d:"335,-259v0,30,-102,12,-122,34v10,21,2,79,16,100v24,-6,59,-13,86,-16v23,-2,32,21,13,26r-103,29v-3,22,-4,38,8,43v28,-5,60,-6,86,-14v5,-1,14,7,14,11v6,16,-90,40,-107,40v-29,0,-39,-19,-32,-46v-2,-4,0,-26,-9,-28v-29,2,-58,6,-88,6v-31,0,-40,74,-82,73v-18,-23,4,-37,12,-50v40,-65,112,-126,165,-207v20,-17,69,-11,112,-13v21,0,31,4,31,12xm123,-111v28,1,44,-2,67,-10v-4,-22,5,-49,-7,-65v-3,6,-65,61,-60,75",w:348},"Ç":{d:"48,-108v-12,70,90,71,159,67r138,-9v9,-1,7,9,7,17v-37,16,-80,27,-103,21v-14,9,-40,3,-67,9v-30,0,-64,1,-100,-10v-6,-1,-10,-4,-10,-8v-32,-12,-46,-31,-63,-56v-16,-61,47,-103,83,-121v82,-42,118,-45,200,-60v21,-4,36,34,11,37v-90,11,-148,31,-225,77v-12,8,-23,20,-30,36xm172,18v29,4,47,14,53,35v-2,7,-14,31,-27,31v-28,7,-55,9,-84,14v-18,-5,-13,-32,7,-32v21,0,55,-5,69,-13v-16,-14,-63,10,-50,-35v9,-10,1,-27,23,-29v7,8,11,16,9,29", +w:331},"È":{d:"49,-160v1,-4,-10,-9,-15,-8v-15,-35,32,-30,57,-31r142,-8v2,1,30,7,40,10v-52,16,-133,17,-190,30v-7,9,-12,24,-15,47v26,10,102,-6,141,3v1,3,1,6,2,10v-36,18,-92,12,-149,21v-11,9,-16,41,-16,51v55,-1,111,-21,168,-13v15,-8,48,1,31,18v-53,16,-130,13,-198,29r-39,-8v-4,-19,17,-53,20,-76v-1,0,-7,-11,-9,-18v18,-7,22,-28,30,-57xm184,-236v6,9,5,13,0,23v-28,-7,-62,-21,-100,-41v-3,-2,-3,-27,5,-23v34,11,60,25,95,41",w:252},"É":{d:"49,-160v1,-4,-10,-9,-15,-8v-15,-35,32,-30,57,-31r142,-8v2,1,30,7,40,10v-52,16,-133,17,-190,30v-7,9,-12,24,-15,47v26,10,102,-6,141,3v1,3,1,6,2,10v-36,18,-92,12,-149,21v-11,9,-16,41,-16,51v55,-1,111,-21,168,-13v15,-8,48,1,31,18v-53,16,-130,13,-198,29r-39,-8v-4,-19,17,-53,20,-76v-1,0,-7,-11,-9,-18v18,-7,22,-28,30,-57xm133,-248v27,-11,48,-32,59,-14v3,11,-79,52,-88,53v-14,1,-16,-11,-12,-21v10,-4,23,-11,41,-18",w:252},"Ê":{d:"49,-160v1,-4,-10,-9,-15,-8v-15,-35,32,-30,57,-31r142,-8v2,1,30,7,40,10v-52,16,-133,17,-190,30v-7,9,-12,24,-15,47v26,10,102,-6,141,3v1,3,1,6,2,10v-36,18,-92,12,-149,21v-11,9,-16,41,-16,51v55,-1,111,-21,168,-13v15,-8,48,1,31,18v-53,16,-130,13,-198,29r-39,-8v-4,-19,17,-53,20,-76v-1,0,-7,-11,-9,-18v18,-7,22,-28,30,-57xm199,-211v-27,-6,-39,-26,-60,-37v-21,7,-40,47,-65,22v-2,-7,-2,-7,-4,-13v18,-5,44,-31,61,-43v27,6,41,22,62,37v12,9,18,17,18,25v0,6,-4,9,-12,9",w:252},"Ë":{d:"49,-160v1,-4,-10,-9,-15,-8v-15,-35,32,-30,57,-31r142,-8v2,1,30,7,40,10v-52,16,-133,17,-190,30v-7,9,-12,24,-15,47v26,10,102,-6,141,3v1,3,1,6,2,10v-36,18,-92,12,-149,21v-11,9,-17,41,-17,51v55,0,112,-21,169,-13v15,-8,48,1,31,18v-53,16,-130,13,-198,29r-39,-8v-3,-21,17,-53,20,-76v-1,0,-7,-11,-9,-18v18,-7,22,-28,30,-57xm191,-236v0,8,-4,13,-12,13v-17,0,-19,-19,-16,-34v18,-1,29,1,28,21xm95,-261v7,3,29,9,28,18v0,7,-9,17,-18,17v-18,0,-26,-25,-10,-35",w:252},"Ì":{d:"33,-5v-9,-6,-9,-12,-9,-36v0,-71,8,-119,22,-144v8,-13,14,-20,19,-20v27,20,-11,87,-10,120r-15,76v-1,1,-4,2,-7,4xm72,-247v7,6,55,15,36,40v-28,-7,-61,-21,-99,-41v-3,-2,-3,-27,5,-23v18,3,41,17,58,24",w:111},"Í":{d:"26,-5v-9,-6,-9,-12,-9,-36v0,-71,7,-119,21,-144v8,-13,14,-20,19,-20v28,19,-7,89,-10,120v-2,21,-8,47,-14,76v-2,1,-2,0,-7,4xm6,-233v31,-6,83,-53,101,-31v2,11,-80,53,-89,53v-14,1,-14,-11,-12,-22",w:104},"Î":{d:"53,-9v-15,7,-16,-3,-16,-32v0,-71,7,-119,21,-144v8,-13,14,-20,19,-20v28,19,-7,89,-10,120v-2,21,-8,47,-14,76xm137,-209v-27,-6,-40,-26,-61,-37v-8,0,-9,4,-13,10v-11,13,-50,37,-56,0v18,-5,43,-32,61,-43v28,5,40,21,62,36v12,9,18,17,18,25v0,6,-4,9,-11,9",w:144},"Ï":{d:"33,-5v-9,-6,-9,-12,-9,-36v0,-71,8,-119,22,-144v8,-13,14,-20,19,-20v27,20,-11,87,-10,120r-15,76v-1,1,-4,2,-7,4xm111,-222v0,8,-4,12,-12,12v-18,0,-19,-19,-16,-33v18,-1,29,1,28,21xm15,-247v8,2,29,9,28,17v0,21,-37,24,-36,1v0,-7,2,-13,8,-18",w:110},"Ñ":{d:"224,-182v1,-17,15,-24,22,-38v20,0,13,10,3,33v-3,36,-25,52,-28,94v-10,24,-30,55,-29,82r-19,7v-32,-8,-36,-70,-58,-111v-2,-23,-7,-27,-19,-54v-28,36,-41,93,-71,133v-9,5,-20,-9,-20,-17r73,-149v9,-24,31,-5,36,7v19,41,31,98,53,139v22,-35,34,-69,50,-118v2,-3,3,-3,7,-8xm203,-257v22,-8,41,-24,65,-26v3,11,-8,9,-7,21v-26,20,-46,31,-59,31v-2,3,-49,-27,-49,-29v-11,0,-32,31,-46,32v-11,-2,-12,-21,-4,-23v4,-6,28,-30,48,-34v17,-4,43,28,52,28",w:219},"Ò":{d:"62,-184v78,-31,249,-50,238,74v-6,65,-102,105,-179,115v-77,-7,-152,-71,-101,-149v2,-5,24,-33,42,-40xm279,-120v14,-38,-47,-64,-85,-61v-20,-9,-41,7,-62,0v-11,7,-54,12,-66,24v0,20,-51,35,-38,66v-1,43,50,67,96,67v44,0,162,-55,155,-96xm161,-262v14,10,52,13,37,41v-28,-7,-62,-21,-100,-41v-3,-3,-3,-26,5,-24v16,5,42,17,58,24",w:273},"Ó":{d:"62,-184v78,-31,249,-50,238,74v-6,65,-102,105,-179,115v-77,-7,-152,-71,-101,-149v2,-5,24,-33,42,-40xm279,-120v14,-38,-47,-64,-85,-61v-20,-9,-41,7,-62,0v-11,7,-54,12,-66,24v0,20,-51,35,-38,66v-1,43,50,67,96,67v44,0,162,-55,155,-96xm142,-250v27,-11,47,-32,59,-14v2,11,-80,53,-89,53v-13,1,-15,-11,-12,-21v10,-5,24,-11,42,-18",w:273},"Ô":{d:"62,-184v78,-31,249,-50,238,74v-6,65,-102,105,-179,115v-77,-7,-152,-71,-101,-149v2,-5,24,-33,42,-40xm279,-120v14,-38,-47,-64,-85,-61v-20,-9,-41,7,-62,0v-11,7,-54,12,-66,24v0,20,-51,35,-38,66v-1,43,50,67,96,67v44,0,162,-55,155,-96xm157,-282v17,18,52,34,54,63v-24,12,-52,-36,-53,-29r-42,34v-23,-4,-6,-31,5,-34v1,1,27,-37,36,-34",w:273},"Õ":{d:"62,-184v78,-31,249,-50,238,74v-6,65,-102,105,-179,115v-77,-7,-152,-71,-101,-149v2,-5,24,-33,42,-40xm279,-120v14,-38,-47,-64,-85,-61v-20,-9,-41,7,-62,0v-11,7,-54,12,-66,24v0,20,-51,35,-38,66v-1,43,50,67,96,67v44,0,162,-55,155,-96xm116,-270v26,-19,54,19,69,22v4,0,15,-5,34,-13v23,-10,22,-16,31,-12v3,11,-8,9,-7,21v-45,28,-47,42,-88,16v-29,-19,-12,-20,-43,2v-8,5,-12,18,-23,15v-13,-3,-12,-20,-4,-23v4,-6,14,-15,31,-28",w:273},"Ö":{d:"62,-184v78,-31,249,-50,238,74v-6,65,-102,105,-179,115v-77,-7,-152,-71,-101,-149v2,-5,24,-33,42,-40xm279,-120v14,-38,-47,-64,-85,-61v-20,-9,-41,7,-62,0v-11,7,-54,12,-66,24v0,20,-51,35,-38,66v-1,43,50,67,96,67v44,0,162,-55,155,-96xm197,-229v0,8,-4,13,-12,13v-17,0,-19,-19,-16,-34v18,-1,29,1,28,21xm101,-254v7,3,28,9,27,18v1,8,-8,17,-17,17v-18,0,-26,-24,-10,-35",w:273},"Ø":{d:"76,-211v41,-13,100,-22,140,-3v26,-19,40,-29,44,-29v10,0,15,7,15,20v0,15,-23,23,-30,35v23,39,29,114,-21,139v-36,19,-102,35,-147,18v-14,-5,-29,29,-46,35v-25,-13,-19,-24,3,-56v-9,-17,-28,-27,-28,-60v0,-38,23,-72,70,-99xm107,-66v55,15,125,-12,123,-70v0,-16,-5,-25,-13,-29r-110,95r0,4xm39,-108v-1,3,17,31,22,27v8,-6,109,-90,123,-106v-15,-11,-43,1,-63,2v-33,10,-80,35,-82,77",w:270},"Ù":{d:"281,-202v6,67,-30,121,-71,152v-3,14,-47,26,-60,39v-41,20,-110,1,-125,-26v-24,-44,-28,-84,-8,-127v12,-26,23,-38,37,-22v-2,2,-3,5,-3,10v-34,26,-30,116,5,134v22,32,86,-1,109,-8v38,-28,104,-64,97,-149v2,-10,7,-8,19,-3xm151,-243v14,10,54,14,37,41v-28,-7,-61,-22,-99,-42v-3,-2,-4,-25,4,-23v16,5,42,17,58,24",w:262},"Ú":{d:"281,-202v6,67,-30,121,-71,152v-3,14,-47,26,-60,39v-41,20,-110,1,-125,-26v-24,-44,-28,-84,-8,-127v12,-26,23,-38,37,-22v-2,2,-3,5,-3,10v-34,26,-30,116,5,134v22,32,86,-1,109,-8v38,-28,104,-64,97,-149v2,-10,7,-8,19,-3xm194,-265v3,-1,11,4,11,6v3,12,-81,52,-89,54v-14,0,-13,-9,-12,-22",w:262},"Û":{d:"281,-202v6,67,-30,121,-71,152v-3,14,-47,26,-60,39v-41,20,-110,1,-125,-26v-24,-44,-28,-84,-8,-127v12,-26,23,-38,37,-22v-2,2,-3,5,-3,10v-34,26,-30,116,5,134v22,32,86,-1,109,-8v38,-28,104,-64,97,-149v2,-10,7,-8,19,-3xm150,-266v24,11,58,27,73,46v0,5,-3,6,-10,6v-28,2,-61,-30,-63,-25v-10,0,-57,40,-69,23v3,-10,-8,-15,8,-19v17,-1,34,-29,61,-31",w:262},"Ü":{d:"281,-202v6,67,-30,121,-71,152v-3,14,-47,26,-60,39v-41,20,-110,1,-125,-26v-24,-44,-28,-84,-8,-127v12,-26,23,-38,37,-22v-2,2,-3,5,-3,10v-34,26,-29,116,5,134v22,32,86,-1,109,-8v38,-28,104,-64,97,-149v2,-10,7,-8,19,-3xm197,-227v0,8,-4,13,-12,13v-18,0,-21,-20,-16,-34v18,-1,28,2,28,21xm101,-252v7,3,27,10,27,18v0,8,-9,18,-18,17v-18,-1,-24,-25,-9,-35",w:262},"ß":{d:"33,10v-29,4,-28,-32,-16,-70v18,-58,17,-137,56,-176v12,-24,46,-58,82,-43v20,8,47,24,47,54v0,30,-62,59,-67,90v33,23,56,33,63,63v-18,21,-22,36,-48,54v-24,17,-27,41,-53,16v-2,-19,7,-35,24,-42v15,-13,26,-22,34,-40v-13,-17,-78,-29,-56,-70v-3,-27,64,-54,66,-86v-8,-25,-41,-4,-52,8v-29,30,-47,83,-51,141v-17,25,-8,71,-29,101"},"à":{d:"118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-10,2,-43,-17,-42,-36v0,-14,7,-40,27,-41v39,-26,92,-36,104,9v0,6,-2,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm99,-137v7,6,56,14,37,40v-28,-7,-62,-21,-100,-41v-2,-3,-2,-26,5,-23v16,4,42,17,58,24",w:173},"á":{d:"118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-10,2,-43,-17,-42,-36v0,-14,7,-40,27,-41v39,-26,92,-36,104,9v0,6,-2,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm32,-117v24,-3,85,-55,101,-32v3,11,-80,53,-89,53v-13,2,-14,-10,-12,-21",w:173},"â":{d:"118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-10,2,-43,-17,-42,-36v0,-14,7,-40,27,-41v39,-26,92,-36,104,9v0,6,-2,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm147,-97v-27,-6,-39,-26,-60,-37v-21,7,-38,46,-65,23v-2,-5,-3,-10,-4,-14v18,-4,43,-31,61,-42v28,5,40,21,62,36v12,8,18,17,18,25v0,6,-4,9,-12,9",w:173},"ã":{d:"118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-10,2,-43,-17,-42,-36v0,-14,7,-40,27,-41v39,-26,92,-36,104,9v0,6,-2,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm114,-136v22,-8,41,-24,64,-26v3,11,-7,10,-7,21v-26,20,-45,30,-58,30v-3,3,-49,-26,-49,-28v-10,-1,-32,35,-51,31v-12,-32,8,-29,32,-51v24,-21,54,20,69,23",w:173},"ä":{d:"118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-32,5,-66,-64,-15,-77v39,-26,92,-36,104,9v0,6,-3,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm142,-119v0,8,-4,13,-12,13v-18,0,-21,-20,-16,-34v18,-1,28,2,28,21xm46,-144v7,3,28,9,27,18v1,8,-9,18,-18,17v-18,-1,-25,-25,-9,-35",w:173},"å":{d:"118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-10,2,-43,-17,-42,-36v0,-14,7,-40,27,-41v39,-26,92,-36,104,9v0,6,-2,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm54,-101v-37,-20,-9,-71,34,-65v13,1,25,3,38,13v27,45,-34,73,-72,52xm61,-128v4,20,48,7,49,-5v0,-5,-9,-7,-28,-10v-12,-2,-21,11,-21,15",w:173},"æ":{d:"145,-44r33,7v2,42,-59,29,-85,16v-6,7,-35,24,-48,15v-19,2,-35,-21,-33,-37v2,-24,5,-19,28,-36v-6,-8,-45,3,-33,-21v21,-22,58,-12,85,-1v6,-5,35,-28,45,-15v20,-4,36,17,36,35v0,23,-4,21,-28,37xm111,-72v12,3,49,-16,19,-17v-5,0,-20,12,-19,17xm74,-50v-14,-4,-48,16,-19,17v4,1,19,-14,19,-17",w:184},"ç":{d:"108,-118v30,-6,56,21,25,33v-24,-6,-39,5,-75,23v-7,4,-12,12,-15,22v31,28,86,3,128,9v3,28,-29,16,-44,28v-53,15,-106,10,-120,-37v0,-48,62,-70,101,-78xm92,18v23,4,45,12,48,32v-2,6,-12,28,-25,28v-24,6,-50,10,-77,13v-16,-4,-11,-28,7,-29v17,-1,51,-4,63,-12v-14,-15,-57,10,-46,-32v9,-8,0,-25,21,-26v6,6,12,14,9,26",w:171},"è":{d:"108,-124v42,-3,70,39,50,73v-22,-1,-70,12,-94,10v-1,1,-2,3,-2,3v0,3,12,7,35,14v18,0,64,7,30,21v-10,14,-31,6,-53,6v-26,-7,-70,-26,-70,-58v0,-54,48,-65,104,-69xm130,-78v-2,-35,-66,-13,-77,3v16,6,62,6,77,-3xm95,-166v7,6,54,14,37,40v-28,-7,-62,-21,-100,-41v-3,-3,-3,-26,5,-24v16,5,42,18,58,25",w:161},"é":{d:"108,-124v42,-3,70,39,50,73v-22,-1,-70,12,-94,10v-1,1,-2,3,-2,3v0,3,12,7,35,14v18,0,64,7,30,21v-10,14,-31,6,-53,6v-26,-7,-70,-26,-70,-58v0,-54,48,-65,104,-69xm130,-78v-2,-35,-66,-13,-77,3v16,6,62,6,77,-3xm76,-169v26,-11,48,-32,59,-14v3,10,-80,53,-89,53v-14,1,-14,-10,-12,-21v15,-7,16,-7,42,-18",w:161},"ê":{d:"108,-124v42,-3,70,39,50,73v-22,-1,-70,12,-94,10v-1,1,-2,3,-2,3v0,3,12,7,35,14v18,0,64,7,30,21v-10,14,-31,6,-53,6v-26,-7,-70,-26,-70,-58v0,-54,48,-65,104,-69xm130,-78v-2,-35,-66,-13,-77,3v16,6,62,6,77,-3xm145,-129v-27,-6,-39,-26,-60,-37v-8,0,-10,4,-14,10v-11,15,-51,34,-56,0v17,-4,44,-32,61,-43v28,5,41,21,63,36v12,8,17,17,17,25v0,6,-3,9,-11,9",w:161},"ë":{d:"108,-124v42,-3,70,39,50,73v-22,-1,-70,12,-94,10r-3,3v0,3,12,7,36,14v18,0,64,7,30,21v-10,14,-31,6,-53,6v-26,-7,-67,-27,-71,-58v7,-52,48,-65,105,-69xm130,-78v-2,-35,-66,-13,-77,3v16,6,62,6,77,-3xm140,-144v0,8,-4,12,-12,12v-18,0,-19,-19,-16,-33v18,-1,29,1,28,21xm44,-169v7,3,28,9,28,17v0,9,-9,18,-18,18v-18,0,-25,-24,-10,-35",w:161},"ì":{d:"57,-98v22,5,13,50,11,95v-7,1,-11,2,-20,-4v1,-7,-12,-18,-10,-24v4,-22,-2,-64,19,-67xm70,-139v14,10,54,14,37,41v-28,-7,-61,-22,-99,-42v-3,-2,-3,-25,5,-23v15,5,41,17,57,24",w:109},"í":{d:"59,-98v20,4,15,53,10,95v-6,1,-11,2,-19,-4v1,-7,-12,-18,-10,-24v4,-22,-4,-65,19,-67xm50,-139v27,-11,49,-32,59,-14v3,11,-80,53,-89,53v-14,1,-14,-12,-11,-22v15,-7,14,-6,41,-17",w:105},"î":{d:"72,-98v20,5,12,51,10,95v-6,2,-13,1,-20,-4v1,-8,-12,-18,-10,-24v4,-22,-3,-65,20,-67xm134,-94v-26,-7,-39,-25,-60,-37v-7,0,-9,4,-13,10v-14,15,-51,34,-56,-1v18,-4,45,-33,61,-43v27,6,40,22,62,37v12,8,18,17,18,25v0,6,-4,9,-12,9",w:143},"ï":{d:"55,-97v19,5,15,53,10,95v-17,5,-26,-14,-30,-28v6,-20,-3,-65,20,-67xm110,-118v0,8,-4,13,-12,13v-17,0,-19,-19,-16,-34v18,-1,29,1,28,21xm14,-143v6,3,28,8,28,17v0,9,-9,18,-18,18v-18,0,-25,-24,-10,-35",w:107},"ñ":{d:"115,-129v34,6,59,50,59,105v0,31,-15,24,-30,17v-15,-29,-5,-42,-20,-81v-35,-13,-68,52,-88,61v-20,-4,-38,-36,-19,-59v0,-12,3,-14,10,-28v11,-8,18,11,27,12xm117,-166v22,-7,41,-23,64,-26v3,11,-7,10,-7,21v-26,20,-45,30,-58,30v-3,3,-49,-26,-49,-28v-10,-1,-32,35,-51,31v-5,-12,-8,-16,0,-23v4,-6,28,-29,48,-33v17,-3,43,28,53,28",w:171},"ò":{d:"102,-132v50,-20,99,16,99,60v0,54,-60,64,-108,79v-50,-2,-110,-48,-76,-100v22,-17,49,-33,85,-39xm136,-104v-34,0,-91,27,-94,47v16,51,125,16,125,-22v0,-17,-10,-25,-31,-25xm115,-181v14,10,51,13,37,40v-28,-7,-62,-21,-100,-41v-3,-2,-3,-26,5,-23v16,5,42,17,58,24",w:191},"ó":{d:"102,-132v50,-20,99,16,99,60v0,54,-60,64,-108,79v-50,-2,-110,-48,-76,-100v22,-17,49,-33,85,-39xm136,-104v-34,0,-91,27,-94,47v16,51,125,16,125,-22v0,-17,-10,-25,-31,-25xm49,-154v24,-3,85,-55,101,-32v3,11,-80,53,-89,53v-14,0,-13,-8,-12,-21",w:191},"ô":{d:"102,-132v50,-20,99,16,99,60v0,54,-60,64,-108,79v-50,-2,-110,-48,-76,-100v22,-17,49,-33,85,-39xm136,-104v-34,0,-91,27,-94,47v16,51,125,16,125,-22v0,-17,-10,-25,-31,-25xm110,-177v-22,6,-38,45,-65,22v-2,-4,-3,-9,-4,-13v18,-4,43,-32,61,-43v27,6,40,21,62,36v12,9,18,17,18,25v1,11,-15,10,-23,7",w:191},"õ":{d:"102,-132v50,-20,99,16,99,60v0,54,-60,64,-108,79v-50,-2,-110,-48,-76,-100v22,-17,49,-33,85,-39xm136,-104v-34,0,-91,27,-94,47v16,51,125,16,125,-22v0,-17,-10,-25,-31,-25xm58,-199v26,-21,54,18,69,22v4,0,15,-5,34,-13v22,-9,21,-16,31,-13v3,11,-9,9,-7,22v-26,20,-46,30,-59,30v-2,4,-49,-28,-49,-29v-11,0,-32,31,-46,32v-12,-3,-13,-21,-4,-23v4,-6,14,-15,31,-28",w:191},"ö":{d:"102,-132v50,-20,99,16,99,60v0,54,-60,64,-108,79v-50,-2,-110,-48,-76,-100v22,-17,49,-33,85,-39xm136,-104v-34,0,-91,27,-94,47v16,51,125,16,125,-22v0,-17,-10,-25,-31,-25xm161,-160v0,8,-4,13,-12,13v-17,0,-19,-19,-16,-34v18,-1,29,1,28,21xm65,-185v7,3,28,9,28,18v0,7,-9,18,-18,17v-18,1,-25,-24,-10,-35",w:191},"÷":{d:"167,-158v-4,3,-7,9,-10,20v-23,4,-34,-8,-29,-31v14,-6,18,1,39,11xm78,-72v-53,11,-53,12,-69,-15v-1,-12,11,-17,22,-14v71,-13,151,-18,230,-24v11,1,21,16,23,28v-28,20,-90,11,-126,16v-36,5,-62,5,-80,9xm123,-40v19,-17,41,-1,41,17v0,13,-6,19,-17,19v-15,0,-29,-14,-24,-36",w:293},"ø":{d:"76,-136v17,7,33,-8,51,0v9,-6,21,-13,36,-21v23,22,-13,31,3,50v11,13,4,21,14,35v-4,5,-1,14,-4,23v-14,23,-45,41,-84,39v-12,2,-29,28,-41,38v-2,-11,-34,-10,-15,-30v3,-7,5,-11,5,-11v-15,-24,-60,-54,-22,-89v23,-21,25,-32,57,-34xm102,-54v18,1,50,-19,30,-32v-12,7,-22,18,-30,32xm85,-92v-14,3,-26,8,-38,17v2,20,17,13,26,0v6,-8,12,-13,12,-17",w:188},"ù":{d:"196,-129v-1,-4,12,-13,15,-13v6,0,8,7,8,21v0,24,-7,25,-13,45v-7,7,-14,21,-24,29v-9,24,-61,45,-89,45v-63,0,-105,-72,-67,-126v24,-3,19,27,18,46v-1,26,23,42,54,40v38,-3,88,-51,98,-87xm126,-166v7,6,56,14,37,40v-28,-7,-62,-22,-100,-42v-2,-3,-2,-26,5,-23v16,4,42,18,58,25",w:213},"ú":{d:"196,-129v-1,-4,12,-13,15,-13v6,0,8,7,8,21v0,24,-7,25,-13,45v-7,7,-14,21,-24,29v-9,24,-61,45,-89,45v-63,0,-105,-72,-67,-126v24,-3,19,27,18,46v-1,26,23,42,54,40v38,-3,88,-51,98,-87xm106,-174v26,-11,48,-32,59,-14v3,11,-81,53,-89,54v-13,1,-15,-12,-11,-22v15,-7,14,-7,41,-18",w:213},"û":{d:"196,-129v-1,-4,12,-13,15,-13v6,0,8,7,8,21v0,24,-7,25,-13,45v-7,7,-14,21,-24,29v-9,24,-61,45,-89,45v-63,0,-105,-72,-67,-126v24,-3,19,27,18,46v-1,26,23,42,54,40v38,-3,88,-51,98,-87xm172,-143v-27,-6,-39,-26,-60,-37v-8,0,-10,4,-14,10v-11,15,-49,35,-56,0v17,-4,44,-32,61,-43v27,6,41,21,63,36v12,9,17,17,17,25v0,6,-3,9,-11,9",w:213},"ü":{d:"196,-129v-1,-4,12,-13,15,-13v6,0,8,7,8,21v0,24,-7,25,-13,45v-7,7,-14,21,-24,29v-9,24,-61,45,-89,45v-63,0,-105,-72,-67,-126v24,-3,19,27,18,46v-1,26,23,42,54,40v38,-3,88,-51,98,-87xm168,-161v0,8,-3,13,-11,13v-17,0,-20,-19,-17,-34v18,-1,29,1,28,21xm72,-186v7,3,29,9,28,18v0,7,-9,18,-18,17v-18,1,-25,-24,-10,-35",w:213},"ÿ":{d:"118,85v-11,11,-11,38,-22,61v-2,-1,-2,31,-17,27v-11,0,-21,-10,-21,-22v20,-66,23,-61,64,-168v-22,1,-38,16,-58,4v-22,4,-51,-16,-51,-42v-11,-13,-7,-59,7,-58v16,1,21,24,22,51v21,33,66,5,94,-7v4,-3,26,-14,38,-29r17,0v23,44,-23,59,-34,102v-6,9,-13,9,-13,26v-15,6,-12,33,-27,48v0,2,1,4,1,7xm158,-136v0,8,-4,13,-12,13v-18,0,-21,-20,-16,-34v18,-1,29,1,28,21xm62,-161v7,3,28,9,27,18v1,8,-8,17,-17,17v-18,0,-26,-24,-10,-35",w:190},"ı":{d:"43,-103v21,4,16,56,11,100v-7,2,-11,1,-20,-5v0,-7,-13,-18,-11,-25v4,-23,-3,-68,20,-70",w:80},"Œ":{d:"247,-243v71,4,161,-7,245,-8v17,0,27,6,27,17v-8,27,-70,14,-104,23v-3,1,-52,0,-65,7r0,4v16,16,17,29,17,65v32,10,74,-14,99,16v-14,25,-76,17,-127,24v-17,18,-55,32,-75,51v85,0,128,-3,204,-11v15,-2,21,11,20,29v-78,24,-177,12,-270,24v-24,3,-24,-29,-48,-15v-46,7,-70,4,-105,-4v-19,-18,-42,-22,-52,-55v-10,-34,0,-47,12,-78v-18,-59,48,-78,105,-84v17,-18,103,-13,117,-5xm125,-45v76,-9,186,-43,209,-105v-26,-67,-137,-83,-217,-54v3,34,-45,25,-60,58v-41,48,5,108,68,101",w:492},"œ":{d:"185,-54v25,28,107,-17,104,33v-12,12,-60,14,-87,14v0,0,1,1,2,1v-11,1,-39,-9,-50,-17v-28,17,-75,32,-114,7v-22,-14,-34,-11,-34,-41v0,-36,33,-49,48,-75v29,-16,72,-3,95,11v12,-9,48,-27,59,-26v30,0,64,15,65,40v0,7,-6,20,-20,37v-29,1,-44,11,-68,16xm226,-106v-21,-7,-41,-2,-48,13v14,1,42,-7,48,-13xm132,-87v-21,-35,-94,11,-92,24v-2,14,43,21,61,21v25,0,36,-20,31,-45",w:295},"Ÿ":{d:"176,-189v35,20,-25,54,-39,72v-26,34,-57,57,-74,104v-10,15,-4,14,-23,3r0,-10v19,-44,27,-46,50,-81v-9,-5,-24,4,-34,4v-38,0,-54,-50,-44,-87v21,-5,18,19,22,35v4,18,15,27,29,27v41,0,60,-39,113,-67xm153,-222v0,8,-3,12,-11,12v-18,0,-21,-19,-16,-33v18,-1,28,2,27,21xm57,-247v8,2,29,9,28,17v0,21,-37,24,-36,1v0,-7,2,-13,8,-18",w:135},"ƒ":{d:"115,-262v-23,6,-39,63,-38,96v1,3,57,2,54,16v1,22,-45,15,-51,30v3,34,12,68,10,103v14,17,-18,53,-28,63v-48,8,-89,5,-95,-37v20,-5,77,21,83,-18v17,-29,-4,-61,0,-98v0,-5,-3,-10,-7,-17v-33,4,-43,-17,-25,-37v10,-4,27,5,27,-10v0,-43,15,-77,32,-109v12,-7,16,-22,38,-20v11,1,51,35,25,55v-9,1,-16,-17,-25,-17",w:145},"ˆ":{d:"144,-220v-29,0,-41,-27,-63,-39v-8,0,-11,5,-15,11v-17,12,-32,31,-54,13v-2,-5,-3,-9,-4,-14v20,-5,45,-33,64,-45v28,6,43,23,65,38v12,9,19,19,19,27v0,6,-4,9,-12,9",w:165},"ˇ":{d:"39,-286v33,46,63,-4,96,-16v6,0,9,6,9,19v0,24,-49,46,-77,46v-32,0,-52,-28,-59,-48v0,-25,23,-17,31,-1",w:153},"˘":{d:"65,-269v20,-11,45,-31,74,-36v20,30,-42,40,-59,66v-5,6,-11,8,-18,8v-8,-3,-45,-32,-51,-54v5,-24,14,-13,34,1",w:158},"˙":{d:"23,-302v15,-13,32,1,32,18v1,22,-36,29,-39,4v0,0,3,-7,7,-22",w:70},"˚":{d:"23,-225v-43,-24,-11,-85,41,-78v16,2,31,4,46,17v32,54,-41,86,-87,61xm33,-257v2,20,57,11,57,-6v0,-6,-11,-9,-33,-12v-14,-2,-24,13,-24,18",w:123},"˛":{d:"82,-5v-8,12,-16,55,-21,75v0,4,2,7,7,7v6,0,22,-7,50,-20v8,0,12,7,12,20v-2,22,-6,14,-27,30v-15,12,-26,16,-30,16v-47,-8,-59,-14,-56,-75v8,-27,12,-54,25,-77v19,-21,35,15,40,24",w:138},"˜":{d:"47,-300v26,-21,57,19,72,23v4,0,16,-5,36,-14v24,-10,22,-16,32,-13v3,12,-7,11,-7,23v-27,21,-48,32,-62,32v-3,2,-52,-27,-51,-31v-12,-2,-34,40,-54,33v-4,-13,-8,-18,1,-24v5,-7,16,-15,33,-29",w:186},"˝":{d:"91,-249v15,-11,38,-53,57,-29v0,9,0,14,-3,23v-2,3,-20,22,-54,55v-5,5,-10,8,-16,8v-17,2,-6,-22,-7,-31v-1,0,-2,0,-4,1v-17,21,-29,31,-50,27v-5,-18,-3,-15,3,-27v23,-27,40,-46,48,-59v7,-12,31,3,29,9v-1,14,-3,24,-13,31v4,4,9,-1,10,-8",w:151},"–":{d:"6,-66v-8,-72,79,-21,146,-39v37,-10,79,7,111,0v9,8,14,13,14,17v2,26,-72,13,-99,21v-83,4,-124,21,-172,1",w:282},"—":{d:"175,-106v86,-9,201,1,286,-1v11,6,13,11,6,30v-118,15,-246,10,-377,10v-25,0,-73,3,-82,-8r-2,-26v11,-13,32,-9,52,-7v38,3,84,-5,117,2",w:485},"‘":{d:"73,-262v-10,7,-41,39,-38,69v-15,13,-27,-16,-28,-28v-2,-20,51,-83,66,-83v20,0,25,41,0,42",w:95},"’":{d:"74,-300v13,31,-1,99,-44,101v-13,0,-19,-5,-19,-15v6,-10,31,-34,35,-59v2,-11,1,-32,11,-32v6,0,11,2,17,5",w:90},"‚":{d:"25,63v-26,21,-48,-2,-22,-24v14,-12,35,-40,35,-69v3,-2,3,-11,12,-9v35,17,5,88,-25,102",w:97},"“":{d:"66,-261v-21,5,-37,51,-22,77v0,4,-2,6,-7,6v-31,-9,-38,-62,-12,-94v12,-15,21,-28,31,-34v16,-1,19,24,22,34v10,-11,22,-32,43,-23v-2,8,4,16,5,19v-6,11,-51,53,-29,74v-12,21,-30,5,-33,-17v-6,-13,9,-28,2,-42",w:118},"”":{d:"120,-294v12,3,30,26,19,34v2,15,-40,70,-55,66v-40,-10,10,-51,14,-64v3,-3,8,-31,22,-36xm70,-306v14,3,26,34,16,49v-19,30,-31,45,-58,59v-12,-11,-33,-17,-7,-36v13,-19,36,-27,36,-59v0,-5,9,-13,13,-13",w:148},"„":{d:"25,63v-26,21,-48,-2,-22,-24v11,-9,36,-41,35,-69v3,-2,4,-12,12,-9v36,14,5,89,-25,102xm84,64v-24,20,-45,-1,-21,-24v21,-20,32,-35,35,-69v3,-2,3,-11,12,-9v36,17,9,86,-26,102",w:135},"†":{d:"22,-286v15,6,5,-20,19,-19v9,-3,15,21,17,22v6,1,12,3,20,6v3,10,5,16,-9,16v-34,-10,-6,51,-34,52v-20,-7,11,-47,-15,-49v-14,3,-25,-5,-17,-24v7,-2,14,-4,19,-4",w:77},"‡":{d:"102,-284v16,2,42,-2,33,18v-7,15,-42,1,-38,30v3,3,31,1,30,11v4,15,-29,19,-36,24v-2,18,-4,24,-16,29r-25,-26v-25,7,-53,3,-42,-25v4,-10,70,0,51,-22v-17,4,-41,12,-39,-15v-5,-16,39,-18,44,-20v4,-2,7,-10,10,-24v19,-3,23,6,28,20",w:145},"•":{d:"130,-114v0,47,-124,54,-120,-8r6,-31v44,-28,64,-34,104,0v8,6,10,20,10,39",w:139},"…":{d:"244,-24v-1,21,-38,32,-41,3v-2,-19,23,-22,34,-17v0,7,0,15,7,14xm113,-24v0,-22,28,-21,38,-8v5,34,-39,40,-38,8xm35,-2v-10,-2,-36,-17,-18,-29v-1,-15,17,-17,31,-6v7,17,6,33,-13,35",w:258},"‰":{d:"398,-131v58,-1,87,13,72,65v-1,30,-66,63,-99,65v-56,3,-99,-58,-62,-102v2,2,5,2,8,2v20,-16,51,-17,81,-30xm202,-279v33,0,94,-24,95,18v-7,31,-33,27,-54,55v-36,32,-71,74,-112,99v-18,18,-40,34,-51,58v-19,14,-25,37,-56,40v-17,2,-25,-29,-10,-40v15,-11,40,-37,52,-52r87,-72v-51,13,-100,6,-116,-27v1,-5,-6,-30,-9,-36v-3,-5,22,-41,27,-39v29,2,16,34,5,49v0,15,14,23,42,23v42,0,59,-31,28,-38v-17,-4,-53,3,-50,-23v0,-7,1,-12,4,-16v16,-9,36,4,49,5v0,0,23,-4,69,-4xm222,-118v33,-2,55,18,50,57v-29,36,-48,45,-96,50v-27,-5,-56,-17,-58,-51v13,-37,64,-43,104,-56xm335,-61v13,44,101,7,108,-31v-11,-3,-20,-4,-30,-4v-18,-1,-82,18,-78,35xm225,-244v-18,0,-29,-1,-46,3v7,15,6,28,0,43v15,-14,34,-30,46,-46xm164,-53v26,5,59,-10,76,-26v-17,-16,-49,2,-67,14v1,8,-8,6,-9,12",w:485},"‹":{d:"64,-107v9,17,86,17,87,43v0,11,-4,16,-13,16v-36,-11,-70,-22,-109,-31v-19,-4,-18,-14,-9,-36v59,-56,93,-84,101,-84v17,0,19,20,13,29",w:159},"›":{d:"41,-181v26,27,112,44,70,91r-82,60v-20,3,-25,-23,-13,-32r70,-51r-66,-46v-5,-6,-4,-28,5,-29v4,2,9,4,16,7",w:137},"⁄":{d:"193,-305v7,6,17,31,3,41v-10,7,-12,13,-21,25v-79,56,-190,209,-197,260r-18,0v-23,-19,9,-70,15,-85v52,-83,121,-179,218,-241",w:120},"™":{d:"213,-307v28,9,11,49,7,75v-1,4,-4,6,-11,6v-7,1,-11,-14,-11,-34v-14,-6,-34,34,-46,28v-2,0,-10,-9,-24,-27v-10,7,-3,36,-27,31v-15,-24,-3,-27,1,-48v-6,-7,-27,-1,-31,3v-3,14,-7,30,-11,51v-5,10,-29,9,-24,-12v-5,-8,1,-18,3,-35v-13,6,-33,2,-29,-18v20,-17,64,-17,100,-19v28,-1,29,30,45,39v11,-6,35,-32,58,-40",w:239},"∆":{d:"18,-1v-24,-30,8,-48,25,-71v14,-19,34,-28,40,-56v20,-35,29,-14,57,4v9,39,43,62,57,102v0,16,-34,17,-50,14v-28,2,-72,4,-129,7xm139,-47r-22,-52v-12,-5,-12,15,-24,27v-7,6,-14,16,-23,28v23,1,36,-1,69,-3",w:199},"∙":{d:"57,-77v6,18,-7,21,-19,23v-34,6,-25,-40,-9,-43v18,-3,29,8,28,20",w:67},"√":{d:"364,-218v43,-21,80,-51,104,-32v-3,19,-24,21,-44,40v-41,15,-78,53,-136,78r-137,98v-20,16,-79,66,-91,68v-3,1,-25,-11,-24,-13v-4,-28,-43,-61,-30,-85v26,-15,42,19,58,32r295,-188v0,1,2,2,5,2",w:474},"∞":{d:"322,-72v-4,22,-54,41,-76,41v-43,0,-83,-17,-114,-35v-46,19,-125,53,-128,-18v-1,-14,10,-22,13,-35v29,-10,62,-31,97,-4v37,28,47,5,75,-8v40,-19,73,-10,114,1v13,1,18,55,19,58xm228,-69v15,0,62,-12,61,-25v-19,-23,-89,-10,-105,11v0,2,1,4,2,4v28,6,42,10,42,10xm75,-102v-13,2,-41,4,-44,19v0,4,3,7,10,7v21,0,40,-6,54,-17v-9,-6,-16,-9,-20,-9",w:330},"∫":{d:"62,-151v-7,-70,20,-130,63,-150v28,1,39,10,70,23v20,8,6,33,-6,35v-29,-13,-45,-20,-49,-20v-20,-4,-45,51,-43,70v8,60,5,129,5,189v0,62,-27,93,-79,93v-37,-1,-71,-14,-63,-57v21,0,79,34,91,-2v16,-3,14,-64,21,-85v-2,-31,-1,-74,-10,-96",w:156},"≈":{d:"133,-112v21,15,48,-30,78,-17v3,3,5,7,5,9v-8,30,-47,45,-76,45v-19,0,-64,-48,-90,-21r-29,20v-6,-1,-17,-16,-15,-32v24,-17,70,-42,107,-21v4,4,10,9,20,17xm138,-57v28,2,48,-25,76,-26v13,30,-21,42,-40,53v-41,24,-77,-15,-114,-23v-15,14,-46,32,-49,-1v-3,-9,27,-28,54,-30",w:223},"≠":{d:"48,-130v29,11,49,-57,60,-50v25,6,7,27,-1,46v22,5,29,7,21,22v-18,2,-48,-1,-50,15v9,8,53,-7,54,10v-4,22,-46,20,-72,24v-7,13,-18,32,-34,57v-8,6,-15,-3,-13,-14v-1,-9,15,-39,14,-45v-30,5,-24,-17,-13,-25v12,-1,36,4,29,-13v-14,0,-47,6,-36,-12v0,-18,27,-13,41,-15",w:140},"≤":{d:"73,-109v10,15,87,16,87,42v0,11,-5,16,-13,16v-36,-11,-69,-24,-109,-31v-18,-8,-18,-13,-9,-36v59,-56,93,-83,101,-83v16,0,18,17,14,28v-27,24,-42,35,-71,64xm10,-29v35,-12,117,-26,148,-3v1,2,-5,19,-8,18r-124,15v-16,2,-26,-18,-16,-30",w:168},"≥":{d:"115,-174v20,7,53,36,20,57v-19,11,-91,68,-82,59v-18,3,-25,-22,-13,-31v15,-10,14,-10,70,-51r-50,-37v-5,-4,-5,-27,4,-28v16,7,40,17,51,31xm14,-32v33,-10,86,-14,127,-10v12,12,5,23,-11,27v-49,9,-82,13,-99,13v-22,0,-24,-16,-17,-30",w:163},"◊":{d:"76,-158v48,-8,64,11,100,36v28,19,-5,39,-22,54v-15,13,-40,32,-48,49v-17,5,-12,0,-27,-16v-6,-6,-86,-31,-68,-53r2,-9v27,-23,48,-44,63,-61xm93,-65v12,-2,35,-31,41,-38v-5,-10,-16,-14,-34,-24v-12,12,-36,29,-40,44v19,11,30,18,33,18",w:199}}}),"undefined"==typeof Raphael&&"undefined"==typeof Snap)throw new Error("Raphael or Snap.svg is required to be included.");if(_.isEmpty(Diagram.themes))throw new Error("No themes were registered. Please call registerTheme(...).");Diagram.themes.hand=Diagram.themes.snapHand||Diagram.themes.raphaelHand,Diagram.themes.simple=Diagram.themes.snapSimple||Diagram.themes.raphaelSimple,Diagram.prototype.drawSVG=function(container,options){var defaultOptions={theme:"hand"};if(options=_.defaults(options||{},defaultOptions),!(options.theme in Diagram.themes))throw new Error("Unsupported theme: "+options.theme);var div=_.isString(container)?document.getElementById(container):container;if(null===div||!div.tagName)throw new Error("Invalid container: "+container);var Theme=Diagram.themes[options.theme];new Theme(this,options,function(drawing){drawing.draw(div)})},"undefined"!=typeof jQuery&&!function($){$.fn.sequenceDiagram=function(options){return this.each(function(){var $this=$(this),diagram=Diagram.parse($this.text());$this.html(""),diagram.drawSVG(this,options)})}}(jQuery);var root="object"==typeof self&&self.self==self&&self||"object"==typeof global&&global.global==global&&global;"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=Diagram),exports.Diagram=Diagram):root.Diagram=Diagram}(); +//# sourceMappingURL=sequence-diagram.js diff --git a/docs/assets/snap.svg-min.js b/docs/assets/snap.svg-min.js new file mode 100644 index 0000000..6567d19 --- /dev/null +++ b/docs/assets/snap.svg-min.js @@ -0,0 +1,21 @@ +// Snap.svg 0.4.1 +// +// Copyright (c) 2013 – 2015 Adobe Systems Incorporated. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// build: 2015-04-13 + +!function(a){var b,c,d="0.4.2",e="hasOwnProperty",f=/[\.\/]/,g=/\s*,\s*/,h="*",i=function(a,b){return a-b},j={n:{}},k=function(){for(var a=0,b=this.length;b>a;a++)if("undefined"!=typeof this[a])return this[a]},l=function(){for(var a=this.length;--a;)if("undefined"!=typeof this[a])return this[a]},m=function(a,d){a=String(a);var e,f=c,g=Array.prototype.slice.call(arguments,2),h=m.listeners(a),j=0,n=[],o={},p=[],q=b;p.firstDefined=k,p.lastDefined=l,b=a,c=0;for(var r=0,s=h.length;s>r;r++)"zIndex"in h[r]&&(n.push(h[r].zIndex),h[r].zIndex<0&&(o[h[r].zIndex]=h[r]));for(n.sort(i);n[j]<0;)if(e=o[n[j++]],p.push(e.apply(d,g)),c)return c=f,p;for(r=0;s>r;r++)if(e=h[r],"zIndex"in e)if(e.zIndex==n[j]){if(p.push(e.apply(d,g)),c)break;do if(j++,e=o[n[j]],e&&p.push(e.apply(d,g)),c)break;while(e)}else o[e.zIndex]=e;else if(p.push(e.apply(d,g)),c)break;return c=f,b=q,p};m._events=j,m.listeners=function(a){var b,c,d,e,g,i,k,l,m=a.split(f),n=j,o=[n],p=[];for(e=0,g=m.length;g>e;e++){for(l=[],i=0,k=o.length;k>i;i++)for(n=o[i].n,c=[n[m[e]],n[h]],d=2;d--;)b=c[d],b&&(l.push(b),p=p.concat(b.f||[]));o=l}return p},m.on=function(a,b){if(a=String(a),"function"!=typeof b)return function(){};for(var c=a.split(g),d=0,e=c.length;e>d;d++)!function(a){for(var c,d=a.split(f),e=j,g=0,h=d.length;h>g;g++)e=e.n,e=e.hasOwnProperty(d[g])&&e[d[g]]||(e[d[g]]={n:{}});for(e.f=e.f||[],g=0,h=e.f.length;h>g;g++)if(e.f[g]==b){c=!0;break}!c&&e.f.push(b)}(c[d]);return function(a){+a==+a&&(b.zIndex=+a)}},m.f=function(a){var b=[].slice.call(arguments,1);return function(){m.apply(null,[a,null].concat(b).concat([].slice.call(arguments,0)))}},m.stop=function(){c=1},m.nt=function(a){return a?new RegExp("(?:\\.|\\/|^)"+a+"(?:\\.|\\/|$)").test(b):b},m.nts=function(){return b.split(f)},m.off=m.unbind=function(a,b){if(!a)return void(m._events=j={n:{}});var c=a.split(g);if(c.length>1)for(var d=0,i=c.length;i>d;d++)m.off(c[d],b);else{c=a.split(f);var k,l,n,d,i,o,p,q=[j];for(d=0,i=c.length;i>d;d++)for(o=0;od;d++)for(k=q[d];k.n;){if(b){if(k.f){for(o=0,p=k.f.length;p>o;o++)if(k.f[o]==b){k.f.splice(o,1);break}!k.f.length&&delete k.f}for(l in k.n)if(k.n[e](l)&&k.n[l].f){var r=k.n[l].f;for(o=0,p=r.length;p>o;o++)if(r[o]==b){r.splice(o,1);break}!r.length&&delete k.n[l].f}}else{delete k.f;for(l in k.n)k.n[e](l)&&k.n[l].f&&delete k.n[l].f}k=k.n}}},m.once=function(a,b){var c=function(){return m.unbind(a,c),b.apply(this,arguments)};return m.on(a,c)},m.version=d,m.toString=function(){return"You are running Eve "+d},"undefined"!=typeof module&&module.exports?module.exports=m:"function"==typeof define&&define.amd?define("eve",[],function(){return m}):a.eve=m}(this),function(a,b){if("function"==typeof define&&define.amd)define(["eve"],function(c){return b(a,c)});else if("undefined"!=typeof exports){var c=require("eve");module.exports=b(a,c)}else b(a,a.eve)}(window||this,function(a,b){var c=function(b){var c={},d=a.requestAnimationFrame||a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame||a.msRequestAnimationFrame||function(a){setTimeout(a,16)},e=Array.isArray||function(a){return a instanceof Array||"[object Array]"==Object.prototype.toString.call(a)},f=0,g="M"+(+new Date).toString(36),h=function(){return g+(f++).toString(36)},i=Date.now||function(){return+new Date},j=function(a){var b=this;if(null==a)return b.s;var c=b.s-a;b.b+=b.dur*c,b.B+=b.dur*c,b.s=a},k=function(a){var b=this;return null==a?b.spd:void(b.spd=a)},l=function(a){var b=this;return null==a?b.dur:(b.s=b.s*a/b.dur,void(b.dur=a))},m=function(){var a=this;delete c[a.id],a.update(),b("mina.stop."+a.id,a)},n=function(){var a=this;a.pdif||(delete c[a.id],a.update(),a.pdif=a.get()-a.b)},o=function(){var a=this;a.pdif&&(a.b=a.get()-a.pdif,delete a.pdif,c[a.id]=a)},p=function(){var a,b=this;if(e(b.start)){a=[];for(var c=0,d=b.start.length;d>c;c++)a[c]=+b.start[c]+(b.end[c]-b.start[c])*b.easing(b.s)}else a=+b.start+(b.end-b.start)*b.easing(b.s);b.set(a)},q=function(){var a=0;for(var e in c)if(c.hasOwnProperty(e)){var f=c[e],g=f.get();a++,f.s=(g-f.b)/(f.dur/f.spd),f.s>=1&&(delete c[e],f.s=1,a--,function(a){setTimeout(function(){b("mina.finish."+a.id,a)})}(f)),f.update()}a&&d(q)},r=function(a,b,e,f,g,i,s){var t={id:h(),start:a,end:b,b:e,s:0,dur:f-e,spd:1,get:g,set:i,easing:s||r.linear,status:j,speed:k,duration:l,stop:m,pause:n,resume:o,update:p};c[t.id]=t;var u,v=0;for(u in c)if(c.hasOwnProperty(u)&&(v++,2==v))break;return 1==v&&d(q),t};return r.time=i,r.getById=function(a){return c[a]||null},r.linear=function(a){return a},r.easeout=function(a){return Math.pow(a,1.7)},r.easein=function(a){return Math.pow(a,.48)},r.easeinout=function(a){if(1==a)return 1;if(0==a)return 0;var b=.48-a/1.04,c=Math.sqrt(.1734+b*b),d=c-b,e=Math.pow(Math.abs(d),1/3)*(0>d?-1:1),f=-c-b,g=Math.pow(Math.abs(f),1/3)*(0>f?-1:1),h=e+g+.5;return 3*(1-h)*h*h+h*h*h},r.backin=function(a){if(1==a)return 1;var b=1.70158;return a*a*((b+1)*a-b)},r.backout=function(a){if(0==a)return 0;a-=1;var b=1.70158;return a*a*((b+1)*a+b)+1},r.elastic=function(a){return a==!!a?a:Math.pow(2,-10*a)*Math.sin(2*(a-.075)*Math.PI/.3)+1},r.bounce=function(a){var b,c=7.5625,d=2.75;return 1/d>a?b=c*a*a:2/d>a?(a-=1.5/d,b=c*a*a+.75):2.5/d>a?(a-=2.25/d,b=c*a*a+.9375):(a-=2.625/d,b=c*a*a+.984375),b},a.mina=r,r}("undefined"==typeof b?function(){}:b),d=function(a){function c(a,b){if(a){if(a.nodeType)return w(a);if(e(a,"array")&&c.set)return c.set.apply(c,a);if(a instanceof s)return a;if(null==b)return a=y.doc.querySelector(String(a)),w(a)}return a=null==a?"100%":a,b=null==b?"100%":b,new v(a,b)}function d(a,b){if(b){if("#text"==a&&(a=y.doc.createTextNode(b.text||b["#text"]||"")),"#comment"==a&&(a=y.doc.createComment(b.text||b["#text"]||"")),"string"==typeof a&&(a=d(a)),"string"==typeof b)return 1==a.nodeType?"xlink:"==b.substring(0,6)?a.getAttributeNS(T,b.substring(6)):"xml:"==b.substring(0,4)?a.getAttributeNS(U,b.substring(4)):a.getAttribute(b):"text"==b?a.nodeValue:null;if(1==a.nodeType){for(var c in b)if(b[z](c)){var e=A(b[c]);e?"xlink:"==c.substring(0,6)?a.setAttributeNS(T,c.substring(6),e):"xml:"==c.substring(0,4)?a.setAttributeNS(U,c.substring(4),e):a.setAttribute(c,e):a.removeAttribute(c)}}else"text"in b&&(a.nodeValue=b.text)}else a=y.doc.createElementNS(U,a);return a}function e(a,b){return b=A.prototype.toLowerCase.call(b),"finite"==b?isFinite(a):"array"==b&&(a instanceof Array||Array.isArray&&Array.isArray(a))?!0:"null"==b&&null===a||b==typeof a&&null!==a||"object"==b&&a===Object(a)||J.call(a).slice(8,-1).toLowerCase()==b}function f(a){if("function"==typeof a||Object(a)!==a)return a;var b=new a.constructor;for(var c in a)a[z](c)&&(b[c]=f(a[c]));return b}function h(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return a.push(a.splice(c,1)[0])}function i(a,b,c){function d(){var e=Array.prototype.slice.call(arguments,0),f=e.join("␀"),g=d.cache=d.cache||{},i=d.count=d.count||[];return g[z](f)?(h(i,f),c?c(g[f]):g[f]):(i.length>=1e3&&delete g[i.shift()],i.push(f),g[f]=a.apply(b,e),c?c(g[f]):g[f])}return d}function j(a,b,c,d,e,f){if(null==e){var g=a-c,h=b-d;return g||h?(180+180*D.atan2(-h,-g)/H+360)%360:0}return j(a,b,e,f)-j(c,d,e,f)}function k(a){return a%360*H/180}function l(a){return 180*a/H%360}function m(a){var b=[];return a=a.replace(/(?:^|\s)(\w+)\(([^)]+)\)/g,function(a,c,d){return d=d.split(/\s*,\s*|\s+/),"rotate"==c&&1==d.length&&d.push(0,0),"scale"==c&&(d.length>2?d=d.slice(0,2):2==d.length&&d.push(0,0),1==d.length&&d.push(d[0],0,0)),b.push("skewX"==c?["m",1,0,D.tan(k(d[0])),1,0,0]:"skewY"==c?["m",1,D.tan(k(d[0])),0,1,0,0]:[c.charAt(0)].concat(d)),a}),b}function n(a,b){var d=ab(a),e=new c.Matrix;if(d)for(var f=0,g=d.length;g>f;f++){var h,i,j,k,l,m=d[f],n=m.length,o=A(m[0]).toLowerCase(),p=m[0]!=o,q=p?e.invert():0;"t"==o&&2==n?e.translate(m[1],0):"t"==o&&3==n?p?(h=q.x(0,0),i=q.y(0,0),j=q.x(m[1],m[2]),k=q.y(m[1],m[2]),e.translate(j-h,k-i)):e.translate(m[1],m[2]):"r"==o?2==n?(l=l||b,e.rotate(m[1],l.x+l.width/2,l.y+l.height/2)):4==n&&(p?(j=q.x(m[2],m[3]),k=q.y(m[2],m[3]),e.rotate(m[1],j,k)):e.rotate(m[1],m[2],m[3])):"s"==o?2==n||3==n?(l=l||b,e.scale(m[1],m[n-1],l.x+l.width/2,l.y+l.height/2)):4==n?p?(j=q.x(m[2],m[3]),k=q.y(m[2],m[3]),e.scale(m[1],m[1],j,k)):e.scale(m[1],m[1],m[2],m[3]):5==n&&(p?(j=q.x(m[3],m[4]),k=q.y(m[3],m[4]),e.scale(m[1],m[2],j,k)):e.scale(m[1],m[2],m[3],m[4])):"m"==o&&7==n&&e.add(m[1],m[2],m[3],m[4],m[5],m[6])}return e}function o(a){var b=a.node.ownerSVGElement&&w(a.node.ownerSVGElement)||a.node.parentNode&&w(a.node.parentNode)||c.select("svg")||c(0,0),d=b.select("defs"),e=null==d?!1:d.node;return e||(e=u("defs",b.node).node),e}function p(a){return a.node.ownerSVGElement&&w(a.node.ownerSVGElement)||c.select("svg")}function q(a,b,c){function e(a){if(null==a)return I;if(a==+a)return a;d(j,{width:a});try{return j.getBBox().width}catch(b){return 0}}function f(a){if(null==a)return I;if(a==+a)return a;d(j,{height:a});try{return j.getBBox().height}catch(b){return 0}}function g(d,e){null==b?i[d]=e(a.attr(d)||0):d==b&&(i=e(null==c?a.attr(d)||0:c))}var h=p(a).node,i={},j=h.querySelector(".svg---mgr");switch(j||(j=d("rect"),d(j,{x:-9e9,y:-9e9,width:10,height:10,"class":"svg---mgr",fill:"none"}),h.appendChild(j)),a.type){case"rect":g("rx",e),g("ry",f);case"image":g("width",e),g("height",f);case"text":g("x",e),g("y",f);break;case"circle":g("cx",e),g("cy",f),g("r",e);break;case"ellipse":g("cx",e),g("cy",f),g("rx",e),g("ry",f);break;case"line":g("x1",e),g("x2",e),g("y1",f),g("y2",f);break;case"marker":g("refX",e),g("markerWidth",e),g("refY",f),g("markerHeight",f);break;case"radialGradient":g("fx",e),g("fy",f);break;case"tspan":g("dx",e),g("dy",f);break;default:g(b,e)}return h.removeChild(j),i}function r(a){e(a,"array")||(a=Array.prototype.slice.call(arguments,0));for(var b=0,c=0,d=this.node;this[b];)delete this[b++];for(b=0;bc;c++){var e={type:a[c].type,attr:a[c].attr()},f=a[c].children();b.push(e),f.length&&x(f,e.childNodes=[])}}c.version="0.4.0",c.toString=function(){return"Snap v"+this.version},c._={};var y={win:a.window,doc:a.window.document};c._.glob=y;{var z="hasOwnProperty",A=String,B=parseFloat,C=parseInt,D=Math,E=D.max,F=D.min,G=D.abs,H=(D.pow,D.PI),I=(D.round,""),J=Object.prototype.toString,K=/^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?%?)\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?%?)\s*\))\s*$/i,L=(c._.separator=/[,\s]+/,/[\s]*,[\s]*/),M={hs:1,rg:1},N=/([a-z])[\s,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\s]*,?[\s]*)+)/gi,O=/([rstm])[\s,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\s]*,?[\s]*)+)/gi,P=/(-?\d*\.?\d*(?:e[\-+]?\\d+)?)[\s]*,?[\s]*/gi,Q=0,R="S"+(+new Date).toString(36),S=function(a){return(a&&a.type?a.type:I)+R+(Q++).toString(36)},T="http://www.w3.org/1999/xlink",U="http://www.w3.org/2000/svg",V={};c.url=function(a){return"url('#"+a+"')"}}c._.$=d,c._.id=S,c.format=function(){var a=/\{([^\}]+)\}/g,b=/(?:(?:^|\.)(.+?)(?=\[|\.|$|\()|\[('|")(.+?)\2\])(\(\))?/g,c=function(a,c,d){var e=d;return c.replace(b,function(a,b,c,d,f){b=b||d,e&&(b in e&&(e=e[b]),"function"==typeof e&&f&&(e=e()))}),e=(null==e||e==d?a:e)+""};return function(b,d){return A(b).replace(a,function(a,b){return c(a,b,d)})}}(),c._.clone=f,c._.cacher=i,c.rad=k,c.deg=l,c.sin=function(a){return D.sin(c.rad(a))},c.tan=function(a){return D.tan(c.rad(a))},c.cos=function(a){return D.cos(c.rad(a))},c.asin=function(a){return c.deg(D.asin(a))},c.acos=function(a){return c.deg(D.acos(a))},c.atan=function(a){return c.deg(D.atan(a))},c.atan2=function(a){return c.deg(D.atan2(a))},c.angle=j,c.len=function(a,b,d,e){return Math.sqrt(c.len2(a,b,d,e))},c.len2=function(a,b,c,d){return(a-c)*(a-c)+(b-d)*(b-d)},c.closestPoint=function(a,b,c){function d(a){var d=a.x-b,e=a.y-c;return d*d+e*e}for(var e,f,g,h,i=a.node,j=i.getTotalLength(),k=j/i.pathSegList.numberOfItems*.125,l=1/0,m=0;j>=m;m+=k)(h=d(g=i.getPointAtLength(m))).5;){var n,o,p,q,r,s;(p=f-k)>=0&&(r=d(n=i.getPointAtLength(p)))f)return b-f;if(f>a-c)return b-f+a}return b},c.getRGB=i(function(a){if(!a||(a=A(a)).indexOf("-")+1)return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:Z};if("none"==a)return{r:-1,g:-1,b:-1,hex:"none",toString:Z};if(!(M[z](a.toLowerCase().substring(0,2))||"#"==a.charAt())&&(a=W(a)),!a)return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:Z};var b,d,f,g,h,i,j=a.match(K);return j?(j[2]&&(f=C(j[2].substring(5),16),d=C(j[2].substring(3,5),16),b=C(j[2].substring(1,3),16)),j[3]&&(f=C((h=j[3].charAt(3))+h,16),d=C((h=j[3].charAt(2))+h,16),b=C((h=j[3].charAt(1))+h,16)),j[4]&&(i=j[4].split(L),b=B(i[0]),"%"==i[0].slice(-1)&&(b*=2.55),d=B(i[1]),"%"==i[1].slice(-1)&&(d*=2.55),f=B(i[2]),"%"==i[2].slice(-1)&&(f*=2.55),"rgba"==j[1].toLowerCase().slice(0,4)&&(g=B(i[3])),i[3]&&"%"==i[3].slice(-1)&&(g/=100)),j[5]?(i=j[5].split(L),b=B(i[0]),"%"==i[0].slice(-1)&&(b/=100),d=B(i[1]),"%"==i[1].slice(-1)&&(d/=100),f=B(i[2]),"%"==i[2].slice(-1)&&(f/=100),("deg"==i[0].slice(-3)||"°"==i[0].slice(-1))&&(b/=360),"hsba"==j[1].toLowerCase().slice(0,4)&&(g=B(i[3])),i[3]&&"%"==i[3].slice(-1)&&(g/=100),c.hsb2rgb(b,d,f,g)):j[6]?(i=j[6].split(L),b=B(i[0]),"%"==i[0].slice(-1)&&(b/=100),d=B(i[1]),"%"==i[1].slice(-1)&&(d/=100),f=B(i[2]),"%"==i[2].slice(-1)&&(f/=100),("deg"==i[0].slice(-3)||"°"==i[0].slice(-1))&&(b/=360),"hsla"==j[1].toLowerCase().slice(0,4)&&(g=B(i[3])),i[3]&&"%"==i[3].slice(-1)&&(g/=100),c.hsl2rgb(b,d,f,g)):(b=F(D.round(b),255),d=F(D.round(d),255),f=F(D.round(f),255),g=F(E(g,0),1),j={r:b,g:d,b:f,toString:Z},j.hex="#"+(16777216|f|d<<8|b<<16).toString(16).slice(1),j.opacity=e(g,"finite")?g:1,j)):{r:-1,g:-1,b:-1,hex:"none",error:1,toString:Z}},c),c.hsb=i(function(a,b,d){return c.hsb2rgb(a,b,d).hex}),c.hsl=i(function(a,b,d){return c.hsl2rgb(a,b,d).hex}),c.rgb=i(function(a,b,c,d){if(e(d,"finite")){var f=D.round;return"rgba("+[f(a),f(b),f(c),+d.toFixed(2)]+")"}return"#"+(16777216|c|b<<8|a<<16).toString(16).slice(1)});var W=function(a){var b=y.doc.getElementsByTagName("head")[0]||y.doc.getElementsByTagName("svg")[0],c="rgb(255, 0, 0)";return(W=i(function(a){if("red"==a.toLowerCase())return c;b.style.color=c,b.style.color=a;var d=y.doc.defaultView.getComputedStyle(b,I).getPropertyValue("color");return d==c?null:d}))(a)},X=function(){return"hsb("+[this.h,this.s,this.b]+")"},Y=function(){return"hsl("+[this.h,this.s,this.l]+")"},Z=function(){return 1==this.opacity||null==this.opacity?this.hex:"rgba("+[this.r,this.g,this.b,this.opacity]+")"},$=function(a,b,d){if(null==b&&e(a,"object")&&"r"in a&&"g"in a&&"b"in a&&(d=a.b,b=a.g,a=a.r),null==b&&e(a,string)){var f=c.getRGB(a);a=f.r,b=f.g,d=f.b}return(a>1||b>1||d>1)&&(a/=255,b/=255,d/=255),[a,b,d]},_=function(a,b,d,f){a=D.round(255*a),b=D.round(255*b),d=D.round(255*d);var g={r:a,g:b,b:d,opacity:e(f,"finite")?f:1,hex:c.rgb(a,b,d),toString:Z};return e(f,"finite")&&(g.opacity=f),g};c.color=function(a){var b;return e(a,"object")&&"h"in a&&"s"in a&&"b"in a?(b=c.hsb2rgb(a),a.r=b.r,a.g=b.g,a.b=b.b,a.opacity=1,a.hex=b.hex):e(a,"object")&&"h"in a&&"s"in a&&"l"in a?(b=c.hsl2rgb(a),a.r=b.r,a.g=b.g,a.b=b.b,a.opacity=1,a.hex=b.hex):(e(a,"string")&&(a=c.getRGB(a)),e(a,"object")&&"r"in a&&"g"in a&&"b"in a&&!("error"in a)?(b=c.rgb2hsl(a),a.h=b.h,a.s=b.s,a.l=b.l,b=c.rgb2hsb(a),a.v=b.b):(a={hex:"none"},a.r=a.g=a.b=a.h=a.s=a.v=a.l=-1,a.error=1)),a.toString=Z,a},c.hsb2rgb=function(a,b,c,d){e(a,"object")&&"h"in a&&"s"in a&&"b"in a&&(c=a.b,b=a.s,d=a.o,a=a.h),a*=360;var f,g,h,i,j;return a=a%360/60,j=c*b,i=j*(1-G(a%2-1)),f=g=h=c-j,a=~~a,f+=[j,i,0,0,i,j][a],g+=[i,j,j,i,0,0][a],h+=[0,0,i,j,j,i][a],_(f,g,h,d)},c.hsl2rgb=function(a,b,c,d){e(a,"object")&&"h"in a&&"s"in a&&"l"in a&&(c=a.l,b=a.s,a=a.h),(a>1||b>1||c>1)&&(a/=360,b/=100,c/=100),a*=360;var f,g,h,i,j;return a=a%360/60,j=2*b*(.5>c?c:1-c),i=j*(1-G(a%2-1)),f=g=h=c-j/2,a=~~a,f+=[j,i,0,0,i,j][a],g+=[i,j,j,i,0,0][a],h+=[0,0,i,j,j,i][a],_(f,g,h,d)},c.rgb2hsb=function(a,b,c){c=$(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g;return f=E(a,b,c),g=f-F(a,b,c),d=0==g?null:f==a?(b-c)/g:f==b?(c-a)/g+2:(a-b)/g+4,d=(d+360)%6*60/360,e=0==g?0:g/f,{h:d,s:e,b:f,toString:X}},c.rgb2hsl=function(a,b,c){c=$(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g,h,i;return g=E(a,b,c),h=F(a,b,c),i=g-h,d=0==i?null:g==a?(b-c)/i:g==b?(c-a)/i+2:(a-b)/i+4,d=(d+360)%6*60/360,f=(g+h)/2,e=0==i?0:.5>f?i/(2*f):i/(2-2*f),{h:d,s:e,l:f,toString:Y}},c.parsePathString=function(a){if(!a)return null;var b=c.path(a);if(b.arr)return c.path.clone(b.arr);var d={a:7,c:6,o:2,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,u:3,z:0},f=[];return e(a,"array")&&e(a[0],"array")&&(f=c.path.clone(a)),f.length||A(a).replace(N,function(a,b,c){var e=[],g=b.toLowerCase();if(c.replace(P,function(a,b){b&&e.push(+b)}),"m"==g&&e.length>2&&(f.push([b].concat(e.splice(0,2))),g="l",b="m"==b?"l":"L"),"o"==g&&1==e.length&&f.push([b,e[0]]),"r"==g)f.push([b].concat(e));else for(;e.length>=d[g]&&(f.push([b].concat(e.splice(0,d[g]))),d[g]););}),f.toString=c.path.toString,b.arr=c.path.clone(f),f};var ab=c.parseTransformString=function(a){if(!a)return null;var b=[];return e(a,"array")&&e(a[0],"array")&&(b=c.path.clone(a)),b.length||A(a).replace(O,function(a,c,d){{var e=[];c.toLowerCase()}d.replace(P,function(a,b){b&&e.push(+b)}),b.push([c].concat(e))}),b.toString=c.path.toString,b};c._.svgTransform2string=m,c._.rgTransform=/^[a-z][\s]*-?\.?\d/i,c._.transform2matrix=n,c._unit2px=q;y.doc.contains||y.doc.compareDocumentPosition?function(a,b){var c=9==a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a==d||!(!d||1!=d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)for(;b;)if(b=b.parentNode,b==a)return!0;return!1};c._.getSomeDefs=o,c._.getSomeSVG=p,c.select=function(a){return a=A(a).replace(/([^\\]):/g,"$1\\:"),w(y.doc.querySelector(a))},c.selectAll=function(a){for(var b=y.doc.querySelectorAll(a),d=(c.set||Array)(),e=0;ei;i++)h[g[i].nodeName]=g[i].nodeValue;return h}if(e(a,"string")){if(!(arguments.length>1))return b("snap.util.getattr."+a,d).firstDefined();var k={};k[a]=c,a=k}for(var l in a)a[z](l)&&b("snap.util.attr."+l,d,a[l]);return d},c.parse=function(a){var b=y.doc.createDocumentFragment(),c=!0,d=y.doc.createElement("div");if(a=A(a),a.match(/^\s*<\s*svg(?:\s|>)/)||(a=""+a+"",c=!1),d.innerHTML=a,a=d.getElementsByTagName("svg")[0])if(c)b=a;else for(;a.firstChild;)b.appendChild(a.firstChild);return new t(b)},c.fragment=function(){for(var a=Array.prototype.slice.call(arguments,0),b=y.doc.createDocumentFragment(),d=0,e=a.length;e>d;d++){var f=a[d];f.node&&f.node.nodeType&&b.appendChild(f.node),f.nodeType&&b.appendChild(f),"string"==typeof f&&b.appendChild(c.parse(f).node)}return new t(b)},c._.make=u,c._.wrap=w,v.prototype.el=function(a,b){var c=u(a,this.node);return b&&c.attr(b),c},s.prototype.children=function(){for(var a=[],b=this.node.childNodes,d=0,e=b.length;e>d;d++)a[d]=c(b[d]);return a},s.prototype.toJSON=function(){var a=[];return x([this],a),a[0]},b.on("snap.util.getattr",function(){var a=b.nt();a=a.substring(a.lastIndexOf(".")+1);var c=a.replace(/[A-Z]/g,function(a){return"-"+a.toLowerCase()});return bb[z](c)?this.node.ownerDocument.defaultView.getComputedStyle(this.node,null).getPropertyValue(c):d(this.node,a)});var bb={"alignment-baseline":0,"baseline-shift":0,clip:0,"clip-path":0,"clip-rule":0,color:0,"color-interpolation":0,"color-interpolation-filters":0,"color-profile":0,"color-rendering":0,cursor:0,direction:0,display:0,"dominant-baseline":0,"enable-background":0,fill:0,"fill-opacity":0,"fill-rule":0,filter:0,"flood-color":0,"flood-opacity":0,font:0,"font-family":0,"font-size":0,"font-size-adjust":0,"font-stretch":0,"font-style":0,"font-variant":0,"font-weight":0,"glyph-orientation-horizontal":0,"glyph-orientation-vertical":0,"image-rendering":0,kerning:0,"letter-spacing":0,"lighting-color":0,marker:0,"marker-end":0,"marker-mid":0,"marker-start":0,mask:0,opacity:0,overflow:0,"pointer-events":0,"shape-rendering":0,"stop-color":0,"stop-opacity":0,stroke:0,"stroke-dasharray":0,"stroke-dashoffset":0,"stroke-linecap":0,"stroke-linejoin":0,"stroke-miterlimit":0,"stroke-opacity":0,"stroke-width":0,"text-anchor":0,"text-decoration":0,"text-rendering":0,"unicode-bidi":0,visibility:0,"word-spacing":0,"writing-mode":0};b.on("snap.util.attr",function(a){var c=b.nt(),e={};c=c.substring(c.lastIndexOf(".")+1),e[c]=a;var f=c.replace(/-(\w)/gi,function(a,b){return b.toUpperCase()}),g=c.replace(/[A-Z]/g,function(a){return"-"+a.toLowerCase()});bb[z](g)?this.node.style[f]=null==a?I:a:d(this.node,e)}),function(){}(v.prototype),c.ajax=function(a,c,d,f){var g=new XMLHttpRequest,h=S();if(g){if(e(c,"function"))f=d,d=c,c=null;else if(e(c,"object")){var i=[];for(var j in c)c.hasOwnProperty(j)&&i.push(encodeURIComponent(j)+"="+encodeURIComponent(c[j]));c=i.join("&")}return g.open(c?"POST":"GET",a,!0),c&&(g.setRequestHeader("X-Requested-With","XMLHttpRequest"),g.setRequestHeader("Content-type","application/x-www-form-urlencoded")),d&&(b.once("snap.ajax."+h+".0",d),b.once("snap.ajax."+h+".200",d),b.once("snap.ajax."+h+".304",d)),g.onreadystatechange=function(){4==g.readyState&&b("snap.ajax."+h+"."+g.status,f,g)},4==g.readyState?g:(g.send(c),g)}},c.load=function(a,b,d){c.ajax(a,function(a){var e=c.parse(a.responseText);d?b.call(d,e):b(e)})};var cb=function(a){var b=a.getBoundingClientRect(),c=a.ownerDocument,d=c.body,e=c.documentElement,f=e.clientTop||d.clientTop||0,h=e.clientLeft||d.clientLeft||0,i=b.top+(g.win.pageYOffset||e.scrollTop||d.scrollTop)-f,j=b.left+(g.win.pageXOffset||e.scrollLeft||d.scrollLeft)-h;return{y:i,x:j}};return c.getElementByPoint=function(a,b){var c=this,d=(c.canvas,y.doc.elementFromPoint(a,b));if(y.win.opera&&"svg"==d.tagName){var e=cb(d),f=d.createSVGRect();f.x=a-e.x,f.y=b-e.y,f.width=f.height=1;var g=d.getIntersectionList(f,null);g.length&&(d=g[g.length-1])}return d?w(d):null},c.plugin=function(a){a(c,s,v,y,t)},y.win.Snap=c,c}(a||this);return d.plugin(function(d,e,f,g,h){function i(a,b){if(null==b){var c=!0;if(b=a.node.getAttribute("linearGradient"==a.type||"radialGradient"==a.type?"gradientTransform":"pattern"==a.type?"patternTransform":"transform"),!b)return new d.Matrix;b=d._.svgTransform2string(b)}else b=d._.rgTransform.test(b)?o(b).replace(/\.{3}|\u2026/g,a._.transform||""):d._.svgTransform2string(b),n(b,"array")&&(b=d.path?d.path.toString.call(b):o(b)),a._.transform=b;var e=d._.transform2matrix(b,a.getBBox(1));return c?e:void(a.matrix=e)}function j(a){function b(a,b){var c=q(a.node,b);c=c&&c.match(f),c=c&&c[2],c&&"#"==c.charAt()&&(c=c.substring(1),c&&(h[c]=(h[c]||[]).concat(function(c){var d={};d[b]=URL(c),q(a.node,d)})))}function c(a){var b=q(a.node,"xlink:href");b&&"#"==b.charAt()&&(b=b.substring(1),b&&(h[b]=(h[b]||[]).concat(function(b){a.attr("xlink:href","#"+b)})))}for(var d,e=a.selectAll("*"),f=/^\s*url\(("|'|)(.*)\1\)\s*$/,g=[],h={},i=0,j=e.length;j>i;i++){d=e[i],b(d,"fill"),b(d,"stroke"),b(d,"filter"),b(d,"mask"),b(d,"clip-path"),c(d);var k=q(d.node,"id");k&&(q(d.node,{id:d.id}),g.push({old:k,id:d.id}))}for(i=0,j=g.length;j>i;i++){var l=h[g[i].old];if(l)for(var m=0,n=l.length;n>m;m++)l[m](g[i].id)}}function k(a,b,c){return function(d){var e=d.slice(a,b);return 1==e.length&&(e=e[0]),c?c(e):e}}function l(a){return function(){var b=a?"<"+this.type:"",c=this.node.attributes,d=this.node.childNodes;if(a)for(var e=0,f=c.length;f>e;e++)b+=" "+c[e].name+'="'+c[e].value.replace(/"/g,'\\"')+'"';if(d.length){for(a&&(b+=">"),e=0,f=d.length;f>e;e++)3==d[e].nodeType?b+=d[e].nodeValue:1==d[e].nodeType&&(b+=u(d[e]).toString());a&&(b+="")}else a&&(b+="/>");return b}}var m=e.prototype,n=d.is,o=String,p=d._unit2px,q=d._.$,r=d._.make,s=d._.getSomeDefs,t="hasOwnProperty",u=d._.wrap;m.getBBox=function(a){if(!d.Matrix||!d.path)return this.node.getBBox();var b=this,c=new d.Matrix;if(b.removed)return d._.box();for(;"use"==b.type;)if(a||(c=c.add(b.transform().localMatrix.translate(b.attr("x")||0,b.attr("y")||0))),b.original)b=b.original;else{var e=b.attr("xlink:href");b=b.original=b.node.ownerDocument.getElementById(e.substring(e.indexOf("#")+1))}var f=b._,g=d.path.get[b.type]||d.path.get.deflt;try{return a?(f.bboxwt=g?d.path.getBBox(b.realPath=g(b)):d._.box(b.node.getBBox()),d._.box(f.bboxwt)):(b.realPath=g(b),b.matrix=b.transform().localMatrix,f.bbox=d.path.getBBox(d.path.map(b.realPath,c.add(b.matrix))),d._.box(f.bbox))}catch(h){return d._.box()}};var v=function(){return this.string};m.transform=function(a){var b=this._;if(null==a){for(var c,e=this,f=new d.Matrix(this.node.getCTM()),g=i(this),h=[g],j=new d.Matrix,k=g.toTransformString(),l=o(g)==o(this.matrix)?o(b.transform):k;"svg"!=e.type&&(e=e.parent());)h.push(i(e));for(c=h.length;c--;)j.add(h[c]);return{string:l,globalMatrix:f,totalMatrix:j,localMatrix:g,diffMatrix:f.clone().add(g.invert()),global:f.toTransformString(),total:j.toTransformString(),local:k,toString:v}}return a instanceof d.Matrix?(this.matrix=a,this._.transform=a.toTransformString()):i(this,a),this.node&&("linearGradient"==this.type||"radialGradient"==this.type?q(this.node,{gradientTransform:this.matrix}):"pattern"==this.type?q(this.node,{patternTransform:this.matrix}):q(this.node,{transform:this.matrix})),this},m.parent=function(){return u(this.node.parentNode)},m.append=m.add=function(a){if(a){if("set"==a.type){var b=this;return a.forEach(function(a){b.add(a)}),this}a=u(a),this.node.appendChild(a.node),a.paper=this.paper}return this},m.appendTo=function(a){return a&&(a=u(a),a.append(this)),this},m.prepend=function(a){if(a){if("set"==a.type){var b,c=this;return a.forEach(function(a){b?b.after(a):c.prepend(a),b=a}),this}a=u(a);var d=a.parent();this.node.insertBefore(a.node,this.node.firstChild),this.add&&this.add(),a.paper=this.paper,this.parent()&&this.parent().add(),d&&d.add()}return this},m.prependTo=function(a){return a=u(a),a.prepend(this),this},m.before=function(a){if("set"==a.type){var b=this;return a.forEach(function(a){var c=a.parent();b.node.parentNode.insertBefore(a.node,b.node),c&&c.add()}),this.parent().add(),this}a=u(a);var c=a.parent();return this.node.parentNode.insertBefore(a.node,this.node),this.parent()&&this.parent().add(),c&&c.add(),a.paper=this.paper,this},m.after=function(a){a=u(a);var b=a.parent();return this.node.nextSibling?this.node.parentNode.insertBefore(a.node,this.node.nextSibling):this.node.parentNode.appendChild(a.node),this.parent()&&this.parent().add(),b&&b.add(),a.paper=this.paper,this},m.insertBefore=function(a){a=u(a);var b=this.parent();return a.node.parentNode.insertBefore(this.node,a.node),this.paper=a.paper,b&&b.add(),a.parent()&&a.parent().add(),this},m.insertAfter=function(a){a=u(a);var b=this.parent();return a.node.parentNode.insertBefore(this.node,a.node.nextSibling),this.paper=a.paper,b&&b.add(),a.parent()&&a.parent().add(),this},m.remove=function(){var a=this.parent();return this.node.parentNode&&this.node.parentNode.removeChild(this.node),delete this.paper,this.removed=!0,a&&a.add(),this},m.select=function(a){return u(this.node.querySelector(a))},m.selectAll=function(a){for(var b=this.node.querySelectorAll(a),c=(d.set||Array)(),e=0;eb;b++)a[b].stop();return this},m.animate=function(a,d,e,f){"function"!=typeof e||e.length||(f=e,e=c.linear),a instanceof w&&(f=a.callback,e=a.easing,d=a.dur,a=a.attr);var g,h,i,j,l=[],m=[],p={},q=this;for(var r in a)if(a[t](r)){q.equal?(j=q.equal(r,o(a[r])),g=j.from,h=j.to,i=j.f):(g=+q.attr(r),h=+a[r]);var s=n(g,"array")?g.length:1;p[r]=k(l.length,l.length+s,i),l=l.concat(g),m=m.concat(h)}var u=c.time(),v=c(l,m,u,u+d,c.time,function(a){var b={};for(var c in p)p[t](c)&&(b[c]=p[c](a));q.attr(b)},e);return q.anims[v.id]=v,v._attrs=a,v._callback=f,b("snap.animcreated."+q.id,v),b.once("mina.finish."+v.id,function(){delete q.anims[v.id],f&&f.call(q)}),b.once("mina.stop."+v.id,function(){delete q.anims[v.id]}),q};var x={};m.data=function(a,c){var e=x[this.id]=x[this.id]||{};if(0==arguments.length)return b("snap.data.get."+this.id,this,e,null),e; +if(1==arguments.length){if(d.is(a,"object")){for(var f in a)a[t](f)&&this.data(f,a[f]);return this}return b("snap.data.get."+this.id,this,e[a],a),e[a]}return e[a]=c,b("snap.data.set."+this.id,this,c,a),this},m.removeData=function(a){return null==a?x[this.id]={}:x[this.id]&&delete x[this.id][a],this},m.outerSVG=m.toString=l(1),m.innerSVG=l(),m.toDataURL=function(){if(a&&a.btoa){var b=this.getBBox(),c=d.format('{contents}',{x:+b.x.toFixed(3),y:+b.y.toFixed(3),width:+b.width.toFixed(3),height:+b.height.toFixed(3),contents:this.outerSVG()});return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(c)))}},h.prototype.select=m.select,h.prototype.selectAll=m.selectAll}),d.plugin(function(a){function b(a,b,d,e,f,g){return null==b&&"[object SVGMatrix]"==c.call(a)?(this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.e=a.e,void(this.f=a.f)):void(null!=a?(this.a=+a,this.b=+b,this.c=+d,this.d=+e,this.e=+f,this.f=+g):(this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0))}var c=Object.prototype.toString,d=String,e=Math,f="";!function(c){function g(a){return a[0]*a[0]+a[1]*a[1]}function h(a){var b=e.sqrt(g(a));a[0]&&(a[0]/=b),a[1]&&(a[1]/=b)}c.add=function(a,c,d,e,f,g){var h,i,j,k,l=[[],[],[]],m=[[this.a,this.c,this.e],[this.b,this.d,this.f],[0,0,1]],n=[[a,d,f],[c,e,g],[0,0,1]];for(a&&a instanceof b&&(n=[[a.a,a.c,a.e],[a.b,a.d,a.f],[0,0,1]]),h=0;3>h;h++)for(i=0;3>i;i++){for(k=0,j=0;3>j;j++)k+=m[h][j]*n[j][i];l[h][i]=k}return this.a=l[0][0],this.b=l[1][0],this.c=l[0][1],this.d=l[1][1],this.e=l[0][2],this.f=l[1][2],this},c.invert=function(){var a=this,c=a.a*a.d-a.b*a.c;return new b(a.d/c,-a.b/c,-a.c/c,a.a/c,(a.c*a.f-a.d*a.e)/c,(a.b*a.e-a.a*a.f)/c)},c.clone=function(){return new b(this.a,this.b,this.c,this.d,this.e,this.f)},c.translate=function(a,b){return this.add(1,0,0,1,a,b)},c.scale=function(a,b,c,d){return null==b&&(b=a),(c||d)&&this.add(1,0,0,1,c,d),this.add(a,0,0,b,0,0),(c||d)&&this.add(1,0,0,1,-c,-d),this},c.rotate=function(b,c,d){b=a.rad(b),c=c||0,d=d||0;var f=+e.cos(b).toFixed(9),g=+e.sin(b).toFixed(9);return this.add(f,g,-g,f,c,d),this.add(1,0,0,1,-c,-d)},c.x=function(a,b){return a*this.a+b*this.c+this.e},c.y=function(a,b){return a*this.b+b*this.d+this.f},c.get=function(a){return+this[d.fromCharCode(97+a)].toFixed(4)},c.toString=function(){return"matrix("+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)].join()+")"},c.offset=function(){return[this.e.toFixed(4),this.f.toFixed(4)]},c.determinant=function(){return this.a*this.d-this.b*this.c},c.split=function(){var b={};b.dx=this.e,b.dy=this.f;var c=[[this.a,this.c],[this.b,this.d]];b.scalex=e.sqrt(g(c[0])),h(c[0]),b.shear=c[0][0]*c[1][0]+c[0][1]*c[1][1],c[1]=[c[1][0]-c[0][0]*b.shear,c[1][1]-c[0][1]*b.shear],b.scaley=e.sqrt(g(c[1])),h(c[1]),b.shear/=b.scaley,this.determinant()<0&&(b.scalex=-b.scalex);var d=-c[0][1],f=c[1][1];return 0>f?(b.rotate=a.deg(e.acos(f)),0>d&&(b.rotate=360-b.rotate)):b.rotate=a.deg(e.asin(d)),b.isSimple=!(+b.shear.toFixed(9)||b.scalex.toFixed(9)!=b.scaley.toFixed(9)&&b.rotate),b.isSuperSimple=!+b.shear.toFixed(9)&&b.scalex.toFixed(9)==b.scaley.toFixed(9)&&!b.rotate,b.noRotation=!+b.shear.toFixed(9)&&!b.rotate,b},c.toTransformString=function(a){var b=a||this.split();return+b.shear.toFixed(9)?"m"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)]:(b.scalex=+b.scalex.toFixed(4),b.scaley=+b.scaley.toFixed(4),b.rotate=+b.rotate.toFixed(4),(b.dx||b.dy?"t"+[+b.dx.toFixed(4),+b.dy.toFixed(4)]:f)+(1!=b.scalex||1!=b.scaley?"s"+[b.scalex,b.scaley,0,0]:f)+(b.rotate?"r"+[+b.rotate.toFixed(4),0,0]:f))}}(b.prototype),a.Matrix=b,a.matrix=function(a,c,d,e,f,g){return new b(a,c,d,e,f,g)}}),d.plugin(function(a,c,d,e,f){function g(d){return function(e){if(b.stop(),e instanceof f&&1==e.node.childNodes.length&&("radialGradient"==e.node.firstChild.tagName||"linearGradient"==e.node.firstChild.tagName||"pattern"==e.node.firstChild.tagName)&&(e=e.node.firstChild,n(this).appendChild(e),e=l(e)),e instanceof c)if("radialGradient"==e.type||"linearGradient"==e.type||"pattern"==e.type){e.node.id||p(e.node,{id:e.id});var g=q(e.node.id)}else g=e.attr(d);else if(g=a.color(e),g.error){var h=a(n(this).ownerSVGElement).gradient(e);h?(h.node.id||p(h.node,{id:h.id}),g=q(h.node.id)):g=e}else g=r(g);var i={};i[d]=g,p(this.node,i),this.node.style[d]=t}}function h(a){b.stop(),a==+a&&(a+="px"),this.node.style.fontSize=a}function i(a){for(var b=[],c=a.childNodes,d=0,e=c.length;e>d;d++){var f=c[d];3==f.nodeType&&b.push(f.nodeValue),"tspan"==f.tagName&&b.push(1==f.childNodes.length&&3==f.firstChild.nodeType?f.firstChild.nodeValue:i(f))}return b}function j(){return b.stop(),this.node.style.fontSize}var k=a._.make,l=a._.wrap,m=a.is,n=a._.getSomeDefs,o=/^url\(#?([^)]+)\)$/,p=a._.$,q=a.url,r=String,s=a._.separator,t="";b.on("snap.util.attr.mask",function(a){if(a instanceof c||a instanceof f){if(b.stop(),a instanceof f&&1==a.node.childNodes.length&&(a=a.node.firstChild,n(this).appendChild(a),a=l(a)),"mask"==a.type)var d=a;else d=k("mask",n(this)),d.node.appendChild(a.node);!d.node.id&&p(d.node,{id:d.id}),p(this.node,{mask:q(d.id)})}}),function(a){b.on("snap.util.attr.clip",a),b.on("snap.util.attr.clip-path",a),b.on("snap.util.attr.clipPath",a)}(function(a){if(a instanceof c||a instanceof f){if(b.stop(),"clipPath"==a.type)var d=a;else d=k("clipPath",n(this)),d.node.appendChild(a.node),!d.node.id&&p(d.node,{id:d.id});p(this.node,{"clip-path":q(d.node.id||d.id)})}}),b.on("snap.util.attr.fill",g("fill")),b.on("snap.util.attr.stroke",g("stroke"));var u=/^([lr])(?:\(([^)]*)\))?(.*)$/i;b.on("snap.util.grad.parse",function(a){a=r(a);var b=a.match(u);if(!b)return null;var c=b[1],d=b[2],e=b[3];return d=d.split(/\s*,\s*/).map(function(a){return+a==a?+a:a}),1==d.length&&0==d[0]&&(d=[]),e=e.split("-"),e=e.map(function(a){a=a.split(":");var b={color:a[0]};return a[1]&&(b.offset=parseFloat(a[1])),b}),{type:c,params:d,stops:e}}),b.on("snap.util.attr.d",function(c){b.stop(),m(c,"array")&&m(c[0],"array")&&(c=a.path.toString.call(c)),c=r(c),c.match(/[ruo]/i)&&(c=a.path.toAbsolute(c)),p(this.node,{d:c})})(-1),b.on("snap.util.attr.#text",function(a){b.stop(),a=r(a);for(var c=e.doc.createTextNode(a);this.node.firstChild;)this.node.removeChild(this.node.firstChild);this.node.appendChild(c)})(-1),b.on("snap.util.attr.path",function(a){b.stop(),this.attr({d:a})})(-1),b.on("snap.util.attr.class",function(a){b.stop(),this.node.className.baseVal=a})(-1),b.on("snap.util.attr.viewBox",function(a){var c;c=m(a,"object")&&"x"in a?[a.x,a.y,a.width,a.height].join(" "):m(a,"array")?a.join(" "):a,p(this.node,{viewBox:c}),b.stop()})(-1),b.on("snap.util.attr.transform",function(a){this.transform(a),b.stop()})(-1),b.on("snap.util.attr.r",function(a){"rect"==this.type&&(b.stop(),p(this.node,{rx:a,ry:a}))})(-1),b.on("snap.util.attr.textpath",function(a){if(b.stop(),"text"==this.type){var d,e,f;if(!a&&this.textPath){for(e=this.textPath;e.node.firstChild;)this.node.appendChild(e.node.firstChild);return e.remove(),void delete this.textPath}if(m(a,"string")){var g=n(this),h=l(g.parentNode).path(a);g.appendChild(h.node),d=h.id,h.attr({id:d})}else a=l(a),a instanceof c&&(d=a.attr("id"),d||(d=a.id,a.attr({id:d})));if(d)if(e=this.textPath,f=this.node,e)e.attr({"xlink:href":"#"+d});else{for(e=p("textPath",{"xlink:href":"#"+d});f.firstChild;)e.appendChild(f.firstChild);f.appendChild(e),this.textPath=l(e)}}})(-1),b.on("snap.util.attr.text",function(a){if("text"==this.type){for(var c=this.node,d=function(a){var b=p("tspan");if(m(a,"array"))for(var c=0;c1&&(a=Array.prototype.slice.call(arguments,0));var b={};return h(a,"object")&&!h(a,"array")?b=a:null!=a&&(b={points:a}),this.el("polyline",b)},g.polygon=function(a){arguments.length>1&&(a=Array.prototype.slice.call(arguments,0));var b={};return h(a,"object")&&!h(a,"array")?b=a:null!=a&&(b={points:a}),this.el("polygon",b)},function(){function d(){return this.selectAll("stop")}function e(a,b){var d=k("stop"),e={offset:+b+"%"};return a=c.color(a),e["stop-color"]=a.hex,a.opacity<1&&(e["stop-opacity"]=a.opacity),k(d,e),this.node.appendChild(d),this}function f(){if("linearGradient"==this.type){var a=k(this.node,"x1")||0,b=k(this.node,"x2")||1,d=k(this.node,"y1")||0,e=k(this.node,"y2")||0;return c._.box(a,d,math.abs(b-a),math.abs(e-d))}var f=this.node.cx||.5,g=this.node.cy||.5,h=this.node.r||0;return c._.box(f-h,g-h,2*h,2*h)}function h(a,c){function d(a,b){for(var c=(b-l)/(a-m),d=m;a>d;d++)g[d].offset=+(+l+c*(d-m)).toFixed(2);m=a,l=b}var e,f=b("snap.util.grad.parse",null,c).firstDefined();if(!f)return null;f.params.unshift(a),e="l"==f.type.toLowerCase()?i.apply(0,f.params):j.apply(0,f.params),f.type!=f.type.toLowerCase()&&k(e.node,{gradientUnits:"userSpaceOnUse"});var g=f.stops,h=g.length,l=0,m=0;h--;for(var n=0;h>n;n++)"offset"in g[n]&&d(n,g[n].offset);for(g[h].offset=g[h].offset||100,d(h,g[h].offset),n=0;h>=n;n++){var o=g[n];e.addStop(o.color,o.offset)}return e}function i(a,b,g,h,i){var j=c._.make("linearGradient",a);return j.stops=d,j.addStop=e,j.getBBox=f,null!=b&&k(j.node,{x1:b,y1:g,x2:h,y2:i}),j}function j(a,b,g,h,i,j){var l=c._.make("radialGradient",a);return l.stops=d,l.addStop=e,l.getBBox=f,null!=b&&k(l.node,{cx:b,cy:g,r:h}),null!=i&&null!=j&&k(l.node,{fx:i,fy:j}),l}var k=c._.$;g.gradient=function(a){return h(this.defs,a)},g.gradientLinear=function(a,b,c,d){return i(this.defs,a,b,c,d)},g.gradientRadial=function(a,b,c,d,e){return j(this.defs,a,b,c,d,e)},g.toString=function(){var a,b=this.node.ownerDocument,d=b.createDocumentFragment(),e=b.createElement("div"),f=this.node.cloneNode(!0);return d.appendChild(e),e.appendChild(f),c._.$(f,{xmlns:"http://www.w3.org/2000/svg"}),a=e.innerHTML,d.removeChild(d.firstChild),a},g.toDataURL=function(){return a&&a.btoa?"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(this))):void 0},g.clear=function(){for(var a,b=this.node.firstChild;b;)a=b.nextSibling,"defs"!=b.tagName?b.parentNode.removeChild(b):g.clear.call({node:b}),b=a}}()}),d.plugin(function(a,b){function c(a){var b=c.ps=c.ps||{};return b[a]?b[a].sleep=100:b[a]={sleep:100},setTimeout(function(){for(var c in b)b[K](c)&&c!=a&&(b[c].sleep--,!b[c].sleep&&delete b[c])}),b[a]}function d(a,b,c,d){return null==a&&(a=b=c=d=0),null==b&&(b=a.y,c=a.width,d=a.height,a=a.x),{x:a,y:b,width:c,w:c,height:d,h:d,x2:a+c,y2:b+d,cx:a+c/2,cy:b+d/2,r1:N.min(c,d)/2,r2:N.max(c,d)/2,r0:N.sqrt(c*c+d*d)/2,path:w(a,b,c,d),vb:[a,b,c,d].join(" ")}}function e(){return this.join(",").replace(L,"$1")}function f(a){var b=J(a);return b.toString=e,b}function g(a,b,c,d,e,f,g,h,j){return null==j?n(a,b,c,d,e,f,g,h):i(a,b,c,d,e,f,g,h,o(a,b,c,d,e,f,g,h,j))}function h(c,d){function e(a){return+(+a).toFixed(3)}return a._.cacher(function(a,f,h){a instanceof b&&(a=a.attr("d")),a=E(a);for(var j,k,l,m,n,o="",p={},q=0,r=0,s=a.length;s>r;r++){if(l=a[r],"M"==l[0])j=+l[1],k=+l[2];else{if(m=g(j,k,l[1],l[2],l[3],l[4],l[5],l[6]),q+m>f){if(d&&!p.start){if(n=g(j,k,l[1],l[2],l[3],l[4],l[5],l[6],f-q),o+=["C"+e(n.start.x),e(n.start.y),e(n.m.x),e(n.m.y),e(n.x),e(n.y)],h)return o;p.start=o,o=["M"+e(n.x),e(n.y)+"C"+e(n.n.x),e(n.n.y),e(n.end.x),e(n.end.y),e(l[5]),e(l[6])].join(),q+=m,j=+l[5],k=+l[6];continue}if(!c&&!d)return n=g(j,k,l[1],l[2],l[3],l[4],l[5],l[6],f-q)}q+=m,j=+l[5],k=+l[6]}o+=l.shift()+l}return p.end=o,n=c?q:d?p:i(j,k,l[0],l[1],l[2],l[3],l[4],l[5],1)},null,a._.clone)}function i(a,b,c,d,e,f,g,h,i){var j=1-i,k=R(j,3),l=R(j,2),m=i*i,n=m*i,o=k*a+3*l*i*c+3*j*i*i*e+n*g,p=k*b+3*l*i*d+3*j*i*i*f+n*h,q=a+2*i*(c-a)+m*(e-2*c+a),r=b+2*i*(d-b)+m*(f-2*d+b),s=c+2*i*(e-c)+m*(g-2*e+c),t=d+2*i*(f-d)+m*(h-2*f+d),u=j*a+i*c,v=j*b+i*d,w=j*e+i*g,x=j*f+i*h,y=90-180*N.atan2(q-s,r-t)/O;return{x:o,y:p,m:{x:q,y:r},n:{x:s,y:t},start:{x:u,y:v},end:{x:w,y:x},alpha:y}}function j(b,c,e,f,g,h,i,j){a.is(b,"array")||(b=[b,c,e,f,g,h,i,j]);var k=D.apply(null,b);return d(k.min.x,k.min.y,k.max.x-k.min.x,k.max.y-k.min.y)}function k(a,b,c){return b>=a.x&&b<=a.x+a.width&&c>=a.y&&c<=a.y+a.height}function l(a,b){return a=d(a),b=d(b),k(b,a.x,a.y)||k(b,a.x2,a.y)||k(b,a.x,a.y2)||k(b,a.x2,a.y2)||k(a,b.x,b.y)||k(a,b.x2,b.y)||k(a,b.x,b.y2)||k(a,b.x2,b.y2)||(a.xb.x||b.xa.x)&&(a.yb.y||b.ya.y)}function m(a,b,c,d,e){var f=-3*b+9*c-9*d+3*e,g=a*f+6*b-12*c+6*d;return a*g-3*b+3*c}function n(a,b,c,d,e,f,g,h,i){null==i&&(i=1),i=i>1?1:0>i?0:i;for(var j=i/2,k=12,l=[-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816],n=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472],o=0,p=0;k>p;p++){var q=j*l[p]+j,r=m(q,a,c,e,g),s=m(q,b,d,f,h),t=r*r+s*s;o+=n[p]*N.sqrt(t)}return j*o}function o(a,b,c,d,e,f,g,h,i){if(!(0>i||n(a,b,c,d,e,f,g,h)o;)l/=2,m+=(i>j?1:-1)*l,j=n(a,b,c,d,e,f,g,h,m);return m}}function p(a,b,c,d,e,f,g,h){if(!(Q(a,c)Q(e,g)||Q(b,d)Q(f,h))){var i=(a*d-b*c)*(e-g)-(a-c)*(e*h-f*g),j=(a*d-b*c)*(f-h)-(b-d)*(e*h-f*g),k=(a-c)*(f-h)-(b-d)*(e-g);if(k){var l=i/k,m=j/k,n=+l.toFixed(2),o=+m.toFixed(2);if(!(n<+P(a,c).toFixed(2)||n>+Q(a,c).toFixed(2)||n<+P(e,g).toFixed(2)||n>+Q(e,g).toFixed(2)||o<+P(b,d).toFixed(2)||o>+Q(b,d).toFixed(2)||o<+P(f,h).toFixed(2)||o>+Q(f,h).toFixed(2)))return{x:l,y:m}}}}function q(a,b,c){var d=j(a),e=j(b);if(!l(d,e))return c?0:[];for(var f=n.apply(0,a),g=n.apply(0,b),h=~~(f/8),k=~~(g/8),m=[],o=[],q={},r=c?0:[],s=0;h+1>s;s++){var t=i.apply(0,a.concat(s/h));m.push({x:t.x,y:t.y,t:s/h})}for(s=0;k+1>s;s++)t=i.apply(0,b.concat(s/k)),o.push({x:t.x,y:t.y,t:s/k});for(s=0;h>s;s++)for(var u=0;k>u;u++){var v=m[s],w=m[s+1],x=o[u],y=o[u+1],z=S(w.x-v.x)<.001?"y":"x",A=S(y.x-x.x)<.001?"y":"x",B=p(v.x,v.y,w.x,w.y,x.x,x.y,y.x,y.y);if(B){if(q[B.x.toFixed(4)]==B.y.toFixed(4))continue;q[B.x.toFixed(4)]=B.y.toFixed(4);var C=v.t+S((B[z]-v[z])/(w[z]-v[z]))*(w.t-v.t),D=x.t+S((B[A]-x[A])/(y[A]-x[A]))*(y.t-x.t);C>=0&&1>=C&&D>=0&&1>=D&&(c?r++:r.push({x:B.x,y:B.y,t1:C,t2:D}))}}return r}function r(a,b){return t(a,b)}function s(a,b){return t(a,b,1)}function t(a,b,c){a=E(a),b=E(b);for(var d,e,f,g,h,i,j,k,l,m,n=c?0:[],o=0,p=a.length;p>o;o++){var r=a[o];if("M"==r[0])d=h=r[1],e=i=r[2];else{"C"==r[0]?(l=[d,e].concat(r.slice(1)),d=l[6],e=l[7]):(l=[d,e,d,e,h,i,h,i],d=h,e=i);for(var s=0,t=b.length;t>s;s++){var u=b[s];if("M"==u[0])f=j=u[1],g=k=u[2];else{"C"==u[0]?(m=[f,g].concat(u.slice(1)),f=m[6],g=m[7]):(m=[f,g,f,g,j,k,j,k],f=j,g=k);var v=q(l,m,c);if(c)n+=v;else{for(var w=0,x=v.length;x>w;w++)v[w].segment1=o,v[w].segment2=s,v[w].bez1=l,v[w].bez2=m;n=n.concat(v)}}}}}return n}function u(a,b,c){var d=v(a);return k(d,b,c)&&t(a,[["M",b,c],["H",d.x2+10]],1)%2==1}function v(a){var b=c(a);if(b.bbox)return J(b.bbox);if(!a)return d();a=E(a);for(var e,f=0,g=0,h=[],i=[],j=0,k=a.length;k>j;j++)if(e=a[j],"M"==e[0])f=e[1],g=e[2],h.push(f),i.push(g);else{var l=D(f,g,e[1],e[2],e[3],e[4],e[5],e[6]);h=h.concat(l.min.x,l.max.x),i=i.concat(l.min.y,l.max.y),f=e[5],g=e[6]}var m=P.apply(0,h),n=P.apply(0,i),o=Q.apply(0,h),p=Q.apply(0,i),q=d(m,n,o-m,p-n);return b.bbox=J(q),q}function w(a,b,c,d,f){if(f)return[["M",+a+ +f,b],["l",c-2*f,0],["a",f,f,0,0,1,f,f],["l",0,d-2*f],["a",f,f,0,0,1,-f,f],["l",2*f-c,0],["a",f,f,0,0,1,-f,-f],["l",0,2*f-d],["a",f,f,0,0,1,f,-f],["z"]];var g=[["M",a,b],["l",c,0],["l",0,d],["l",-c,0],["z"]];return g.toString=e,g}function x(a,b,c,d,f){if(null==f&&null==d&&(d=c),a=+a,b=+b,c=+c,d=+d,null!=f)var g=Math.PI/180,h=a+c*Math.cos(-d*g),i=a+c*Math.cos(-f*g),j=b+c*Math.sin(-d*g),k=b+c*Math.sin(-f*g),l=[["M",h,j],["A",c,c,0,+(f-d>180),0,i,k]];else l=[["M",a,b],["m",0,-d],["a",c,d,0,1,1,0,2*d],["a",c,d,0,1,1,0,-2*d],["z"]];return l.toString=e,l}function y(b){var d=c(b),g=String.prototype.toLowerCase;if(d.rel)return f(d.rel);a.is(b,"array")&&a.is(b&&b[0],"array")||(b=a.parsePathString(b));var h=[],i=0,j=0,k=0,l=0,m=0;"M"==b[0][0]&&(i=b[0][1],j=b[0][2],k=i,l=j,m++,h.push(["M",i,j]));for(var n=m,o=b.length;o>n;n++){var p=h[n]=[],q=b[n];if(q[0]!=g.call(q[0]))switch(p[0]=g.call(q[0]),p[0]){case"a":p[1]=q[1],p[2]=q[2],p[3]=q[3],p[4]=q[4],p[5]=q[5],p[6]=+(q[6]-i).toFixed(3),p[7]=+(q[7]-j).toFixed(3);break;case"v":p[1]=+(q[1]-j).toFixed(3);break;case"m":k=q[1],l=q[2];default:for(var r=1,s=q.length;s>r;r++)p[r]=+(q[r]-(r%2?i:j)).toFixed(3)}else{p=h[n]=[],"m"==q[0]&&(k=q[1]+i,l=q[2]+j);for(var t=0,u=q.length;u>t;t++)h[n][t]=q[t]}var v=h[n].length;switch(h[n][0]){case"z":i=k,j=l;break;case"h":i+=+h[n][v-1];break;case"v":j+=+h[n][v-1];break;default:i+=+h[n][v-2],j+=+h[n][v-1]}}return h.toString=e,d.rel=f(h),h}function z(b){var d=c(b);if(d.abs)return f(d.abs);if(I(b,"array")&&I(b&&b[0],"array")||(b=a.parsePathString(b)),!b||!b.length)return[["M",0,0]];var g,h=[],i=0,j=0,k=0,l=0,m=0;"M"==b[0][0]&&(i=+b[0][1],j=+b[0][2],k=i,l=j,m++,h[0]=["M",i,j]);for(var n,o,p=3==b.length&&"M"==b[0][0]&&"R"==b[1][0].toUpperCase()&&"Z"==b[2][0].toUpperCase(),q=m,r=b.length;r>q;q++){if(h.push(n=[]),o=b[q],g=o[0],g!=g.toUpperCase())switch(n[0]=g.toUpperCase(),n[0]){case"A":n[1]=o[1],n[2]=o[2],n[3]=o[3],n[4]=o[4],n[5]=o[5],n[6]=+o[6]+i,n[7]=+o[7]+j;break;case"V":n[1]=+o[1]+j;break;case"H":n[1]=+o[1]+i;break;case"R":for(var s=[i,j].concat(o.slice(1)),t=2,u=s.length;u>t;t++)s[t]=+s[t]+i,s[++t]=+s[t]+j;h.pop(),h=h.concat(G(s,p));break;case"O":h.pop(),s=x(i,j,o[1],o[2]),s.push(s[0]),h=h.concat(s);break;case"U":h.pop(),h=h.concat(x(i,j,o[1],o[2],o[3])),n=["U"].concat(h[h.length-1].slice(-2));break;case"M":k=+o[1]+i,l=+o[2]+j;default:for(t=1,u=o.length;u>t;t++)n[t]=+o[t]+(t%2?i:j)}else if("R"==g)s=[i,j].concat(o.slice(1)),h.pop(),h=h.concat(G(s,p)),n=["R"].concat(o.slice(-2));else if("O"==g)h.pop(),s=x(i,j,o[1],o[2]),s.push(s[0]),h=h.concat(s);else if("U"==g)h.pop(),h=h.concat(x(i,j,o[1],o[2],o[3])),n=["U"].concat(h[h.length-1].slice(-2));else for(var v=0,w=o.length;w>v;v++)n[v]=o[v];if(g=g.toUpperCase(),"O"!=g)switch(n[0]){case"Z":i=+k,j=+l;break;case"H":i=n[1];break;case"V":j=n[1];break;case"M":k=n[n.length-2],l=n[n.length-1];default:i=n[n.length-2],j=n[n.length-1]}}return h.toString=e,d.abs=f(h),h}function A(a,b,c,d){return[a,b,c,d,c,d]}function B(a,b,c,d,e,f){var g=1/3,h=2/3;return[g*a+h*c,g*b+h*d,g*e+h*c,g*f+h*d,e,f]}function C(b,c,d,e,f,g,h,i,j,k){var l,m=120*O/180,n=O/180*(+f||0),o=[],p=a._.cacher(function(a,b,c){var d=a*N.cos(c)-b*N.sin(c),e=a*N.sin(c)+b*N.cos(c);return{x:d,y:e}});if(k)y=k[0],z=k[1],w=k[2],x=k[3];else{l=p(b,c,-n),b=l.x,c=l.y,l=p(i,j,-n),i=l.x,j=l.y;var q=(N.cos(O/180*f),N.sin(O/180*f),(b-i)/2),r=(c-j)/2,s=q*q/(d*d)+r*r/(e*e);s>1&&(s=N.sqrt(s),d=s*d,e=s*e);var t=d*d,u=e*e,v=(g==h?-1:1)*N.sqrt(S((t*u-t*r*r-u*q*q)/(t*r*r+u*q*q))),w=v*d*r/e+(b+i)/2,x=v*-e*q/d+(c+j)/2,y=N.asin(((c-x)/e).toFixed(9)),z=N.asin(((j-x)/e).toFixed(9));y=w>b?O-y:y,z=w>i?O-z:z,0>y&&(y=2*O+y),0>z&&(z=2*O+z),h&&y>z&&(y-=2*O),!h&&z>y&&(z-=2*O)}var A=z-y;if(S(A)>m){var B=z,D=i,E=j;z=y+m*(h&&z>y?1:-1),i=w+d*N.cos(z),j=x+e*N.sin(z),o=C(i,j,d,e,f,0,h,D,E,[z,B,w,x])}A=z-y;var F=N.cos(y),G=N.sin(y),H=N.cos(z),I=N.sin(z),J=N.tan(A/4),K=4/3*d*J,L=4/3*e*J,M=[b,c],P=[b+K*G,c-L*F],Q=[i+K*I,j-L*H],R=[i,j];if(P[0]=2*M[0]-P[0],P[1]=2*M[1]-P[1],k)return[P,Q,R].concat(o);o=[P,Q,R].concat(o).join().split(",");for(var T=[],U=0,V=o.length;V>U;U++)T[U]=U%2?p(o[U-1],o[U],n).y:p(o[U],o[U+1],n).x;return T}function D(a,b,c,d,e,f,g,h){for(var i,j,k,l,m,n,o,p,q=[],r=[[],[]],s=0;2>s;++s)if(0==s?(j=6*a-12*c+6*e,i=-3*a+9*c-9*e+3*g,k=3*c-3*a):(j=6*b-12*d+6*f,i=-3*b+9*d-9*f+3*h,k=3*d-3*b),S(i)<1e-12){if(S(j)<1e-12)continue;l=-k/j,l>0&&1>l&&q.push(l)}else o=j*j-4*k*i,p=N.sqrt(o),0>o||(m=(-j+p)/(2*i),m>0&&1>m&&q.push(m),n=(-j-p)/(2*i),n>0&&1>n&&q.push(n));for(var t,u=q.length,v=u;u--;)l=q[u],t=1-l,r[0][u]=t*t*t*a+3*t*t*l*c+3*t*l*l*e+l*l*l*g,r[1][u]=t*t*t*b+3*t*t*l*d+3*t*l*l*f+l*l*l*h;return r[0][v]=a,r[1][v]=b,r[0][v+1]=g,r[1][v+1]=h,r[0].length=r[1].length=v+2,{min:{x:P.apply(0,r[0]),y:P.apply(0,r[1])},max:{x:Q.apply(0,r[0]),y:Q.apply(0,r[1])}}}function E(a,b){var d=!b&&c(a);if(!b&&d.curve)return f(d.curve);for(var e=z(a),g=b&&z(b),h={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},i={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},j=(function(a,b,c){var d,e;if(!a)return["C",b.x,b.y,b.x,b.y,b.x,b.y];switch(!(a[0]in{T:1,Q:1})&&(b.qx=b.qy=null),a[0]){case"M":b.X=a[1],b.Y=a[2];break;case"A":a=["C"].concat(C.apply(0,[b.x,b.y].concat(a.slice(1))));break;case"S":"C"==c||"S"==c?(d=2*b.x-b.bx,e=2*b.y-b.by):(d=b.x,e=b.y),a=["C",d,e].concat(a.slice(1));break;case"T":"Q"==c||"T"==c?(b.qx=2*b.x-b.qx,b.qy=2*b.y-b.qy):(b.qx=b.x,b.qy=b.y),a=["C"].concat(B(b.x,b.y,b.qx,b.qy,a[1],a[2]));break;case"Q":b.qx=a[1],b.qy=a[2],a=["C"].concat(B(b.x,b.y,a[1],a[2],a[3],a[4]));break;case"L":a=["C"].concat(A(b.x,b.y,a[1],a[2]));break;case"H":a=["C"].concat(A(b.x,b.y,a[1],b.y));break;case"V":a=["C"].concat(A(b.x,b.y,b.x,a[1]));break;case"Z":a=["C"].concat(A(b.x,b.y,b.X,b.Y))}return a}),k=function(a,b){if(a[b].length>7){a[b].shift();for(var c=a[b];c.length;)m[b]="A",g&&(n[b]="A"),a.splice(b++,0,["C"].concat(c.splice(0,6)));a.splice(b,1),r=Q(e.length,g&&g.length||0)}},l=function(a,b,c,d,f){a&&b&&"M"==a[f][0]&&"M"!=b[f][0]&&(b.splice(f,0,["M",d.x,d.y]),c.bx=0,c.by=0,c.x=a[f][1],c.y=a[f][2],r=Q(e.length,g&&g.length||0))},m=[],n=[],o="",p="",q=0,r=Q(e.length,g&&g.length||0);r>q;q++){e[q]&&(o=e[q][0]),"C"!=o&&(m[q]=o,q&&(p=m[q-1])),e[q]=j(e[q],h,p),"A"!=m[q]&&"C"==o&&(m[q]="C"),k(e,q),g&&(g[q]&&(o=g[q][0]),"C"!=o&&(n[q]=o,q&&(p=n[q-1])),g[q]=j(g[q],i,p),"A"!=n[q]&&"C"==o&&(n[q]="C"),k(g,q)),l(e,g,h,i,q),l(g,e,i,h,q);var s=e[q],t=g&&g[q],u=s.length,v=g&&t.length;h.x=s[u-2],h.y=s[u-1],h.bx=M(s[u-4])||h.x,h.by=M(s[u-3])||h.y,i.bx=g&&(M(t[v-4])||i.x),i.by=g&&(M(t[v-3])||i.y),i.x=g&&t[v-2],i.y=g&&t[v-1]}return g||(d.curve=f(e)),g?[e,g]:e}function F(a,b){if(!b)return a;var c,d,e,f,g,h,i;for(a=E(a),e=0,g=a.length;g>e;e++)for(i=a[e],f=1,h=i.length;h>f;f+=2)c=b.x(i[f],i[f+1]),d=b.y(i[f],i[f+1]),i[f]=c,i[f+1]=d;return a}function G(a,b){for(var c=[],d=0,e=a.length;e-2*!b>d;d+=2){var f=[{x:+a[d-2],y:+a[d-1]},{x:+a[d],y:+a[d+1]},{x:+a[d+2],y:+a[d+3]},{x:+a[d+4],y:+a[d+5]}];b?d?e-4==d?f[3]={x:+a[0],y:+a[1]}:e-2==d&&(f[2]={x:+a[0],y:+a[1]},f[3]={x:+a[2],y:+a[3]}):f[0]={x:+a[e-2],y:+a[e-1]}:e-4==d?f[3]=f[2]:d||(f[0]={x:+a[d],y:+a[d+1]}),c.push(["C",(-f[0].x+6*f[1].x+f[2].x)/6,(-f[0].y+6*f[1].y+f[2].y)/6,(f[1].x+6*f[2].x-f[3].x)/6,(f[1].y+6*f[2].y-f[3].y)/6,f[2].x,f[2].y])}return c}var H=b.prototype,I=a.is,J=a._.clone,K="hasOwnProperty",L=/,?([a-z]),?/gi,M=parseFloat,N=Math,O=N.PI,P=N.min,Q=N.max,R=N.pow,S=N.abs,T=h(1),U=h(),V=h(0,1),W=a._unit2px,X={path:function(a){return a.attr("path")},circle:function(a){var b=W(a);return x(b.cx,b.cy,b.r)},ellipse:function(a){var b=W(a);return x(b.cx||0,b.cy||0,b.rx,b.ry)},rect:function(a){var b=W(a);return w(b.x||0,b.y||0,b.width,b.height,b.rx,b.ry)},image:function(a){var b=W(a);return w(b.x||0,b.y||0,b.width,b.height)},line:function(a){return"M"+[a.attr("x1")||0,a.attr("y1")||0,a.attr("x2"),a.attr("y2")]},polyline:function(a){return"M"+a.attr("points")},polygon:function(a){return"M"+a.attr("points")+"z"},deflt:function(a){var b=a.node.getBBox();return w(b.x,b.y,b.width,b.height)}};a.path=c,a.path.getTotalLength=T,a.path.getPointAtLength=U,a.path.getSubpath=function(a,b,c){if(this.getTotalLength(a)-c<1e-6)return V(a,b).end;var d=V(a,c,1);return b?V(d,b).end:d},H.getTotalLength=function(){return this.node.getTotalLength?this.node.getTotalLength():void 0},H.getPointAtLength=function(a){return U(this.attr("d"),a)},H.getSubpath=function(b,c){return a.path.getSubpath(this.attr("d"),b,c)},a._.box=d,a.path.findDotsAtSegment=i,a.path.bezierBBox=j,a.path.isPointInsideBBox=k,a.closest=function(b,c,e,f){for(var g=100,h=d(b-g/2,c-g/2,g,g),i=[],j=e[0].hasOwnProperty("x")?function(a){return{x:e[a].x,y:e[a].y}}:function(a){return{x:e[a],y:f[a]}},l=0;1e6>=g&&!l;){for(var m=0,n=e.length;n>m;m++){var o=j(m);if(k(h,o.x,o.y)){l++,i.push(o);break}}l||(g*=2,h=d(b-g/2,c-g/2,g,g))}if(1e6!=g){var p,q=1/0;for(m=0,n=i.length;n>m;m++){var r=a.len(b,c,i[m].x,i[m].y);q>r&&(q=r,i[m].len=r,p=i[m])}return p}},a.path.isBBoxIntersect=l,a.path.intersection=r,a.path.intersectionNumber=s,a.path.isPointInside=u,a.path.getBBox=v,a.path.get=X,a.path.toRelative=y,a.path.toAbsolute=z,a.path.toCubic=E,a.path.map=F,a.path.toString=e,a.path.clone=f}),d.plugin(function(a){var d=Math.max,e=Math.min,f=function(a){if(this.items=[],this.bindings={},this.length=0,this.type="set",a)for(var b=0,c=a.length;c>b;b++)a[b]&&(this[this.items.length]=this.items[this.items.length]=a[b],this.length++)},g=f.prototype;g.push=function(){for(var a,b,c=0,d=arguments.length;d>c;c++)a=arguments[c],a&&(b=this.items.length,this[b]=this.items[b]=a,this.length++);return this},g.pop=function(){return this.length&&delete this[this.length--],this.items.pop()},g.forEach=function(a,b){for(var c=0,d=this.items.length;d>c;c++)if(a.call(b,this.items[c],c)===!1)return this;return this},g.animate=function(d,e,f,g){"function"!=typeof f||f.length||(g=f,f=c.linear),d instanceof a._.Animation&&(g=d.callback,f=d.easing,e=f.dur,d=d.attr);var h=arguments;if(a.is(d,"array")&&a.is(h[h.length-1],"array"))var i=!0;var j,k=function(){j?this.b=j:j=this.b},l=0,m=this,n=g&&function(){++l==m.length&&g.call(this) +};return this.forEach(function(a,c){b.once("snap.animcreated."+a.id,k),i?h[c]&&a.animate.apply(a,h[c]):a.animate(d,e,f,n)})},g.remove=function(){for(;this.length;)this.pop().remove();return this},g.bind=function(a,b,c){var d={};if("function"==typeof b)this.bindings[a]=b;else{var e=c||a;this.bindings[a]=function(a){d[e]=a,b.attr(d)}}return this},g.attr=function(a){var b={};for(var c in a)this.bindings[c]?this.bindings[c](a[c]):b[c]=a[c];for(var d=0,e=this.items.length;e>d;d++)this.items[d].attr(b);return this},g.clear=function(){for(;this.length;)this.pop()},g.splice=function(a,b){a=0>a?d(this.length+a,0):a,b=d(0,e(this.length-a,b));var c,g=[],h=[],i=[];for(c=2;cc;c++)h.push(this[a+c]);for(;cc?i[c]:g[c-j];for(c=this.items.length=this.length-=b-j;this[c];)delete this[c++];return new f(h)},g.exclude=function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]==a)return this.splice(b,1),!0;return!1},g.insertAfter=function(a){for(var b=this.items.length;b--;)this.items[b].insertAfter(a);return this},g.getBBox=function(){for(var a=[],b=[],c=[],f=[],g=this.items.length;g--;)if(!this.items[g].removed){var h=this.items[g].getBBox();a.push(h.x),b.push(h.y),c.push(h.x+h.width),f.push(h.y+h.height)}return a=e.apply(0,a),b=e.apply(0,b),c=d.apply(0,c),f=d.apply(0,f),{x:a,y:b,x2:c,y2:f,width:c-a,height:f-b,cx:a+(c-a)/2,cy:b+(f-b)/2}},g.clone=function(a){a=new f;for(var b=0,c=this.items.length;c>b;b++)a.push(this.items[b].clone());return a},g.toString=function(){return"Snap‘s set"},g.type="set",a.Set=f,a.set=function(){var a=new f;return arguments.length&&a.push.apply(a,Array.prototype.slice.call(arguments,0)),a}}),d.plugin(function(a,c){function d(a){var b=a[0];switch(b.toLowerCase()){case"t":return[b,0,0];case"m":return[b,1,0,0,1,0,0];case"r":return 4==a.length?[b,0,a[2],a[3]]:[b,0];case"s":return 5==a.length?[b,1,1,a[3],a[4]]:3==a.length?[b,1,1]:[b,1]}}function e(b,c,e){c=p(c).replace(/\.{3}|\u2026/g,b),b=a.parseTransformString(b)||[],c=a.parseTransformString(c)||[];for(var f,g,h,i,l=Math.max(b.length,c.length),m=[],n=[],o=0;l>o;o++){if(h=b[o]||d(c[o]),i=c[o]||d(h),h[0]!=i[0]||"r"==h[0].toLowerCase()&&(h[2]!=i[2]||h[3]!=i[3])||"s"==h[0].toLowerCase()&&(h[3]!=i[3]||h[4]!=i[4])){b=a._.transform2matrix(b,e()),c=a._.transform2matrix(c,e()),m=[["m",b.a,b.b,b.c,b.d,b.e,b.f]],n=[["m",c.a,c.b,c.c,c.d,c.e,c.f]];break}for(m[o]=[],n[o]=[],f=0,g=Math.max(h.length,i.length);g>f;f++)f in h&&(m[o][f]=h[f]),f in i&&(n[o][f]=i[f])}return{from:k(m),to:k(n),f:j(m)}}function f(a){return a}function g(a){return function(b){return+b.toFixed(3)+a}}function h(a){return a.join(" ")}function i(b){return a.rgb(b[0],b[1],b[2])}function j(a){var b,c,d,e,f,g,h=0,i=[];for(b=0,c=a.length;c>b;b++){for(f="[",g=['"'+a[b][0]+'"'],d=1,e=a[b].length;e>d;d++)g[d]="val["+h++ +"]";f+=g+"]",i[b]=f}return Function("val","return Snap.path.toString.call(["+i+"])")}function k(a){for(var b=[],c=0,d=a.length;d>c;c++)for(var e=1,f=a[c].length;f>e;e++)b.push(a[c][e]);return b}function l(a){return isFinite(parseFloat(a))}function m(b,c){return a.is(b,"array")&&a.is(c,"array")?b.toString()==c.toString():!1}var n={},o=/[a-z]+$/i,p=String;n.stroke=n.fill="colour",c.prototype.equal=function(a,c){return b("snap.util.equal",this,a,c).firstDefined()},b.on("snap.util.equal",function(b,c){var d,q,r=p(this.attr(b)||""),s=this;if(l(r)&&l(c))return{from:parseFloat(r),to:parseFloat(c),f:f};if("colour"==n[b])return d=a.color(r),q=a.color(c),{from:[d.r,d.g,d.b,d.opacity],to:[q.r,q.g,q.b,q.opacity],f:i};if("viewBox"==b)return d=this.attr(b).vb.split(" ").map(Number),q=c.split(" ").map(Number),{from:d,to:q,f:h};if("transform"==b||"gradientTransform"==b||"patternTransform"==b)return c instanceof a.Matrix&&(c=c.toTransformString()),a._.rgTransform.test(c)||(c=a._.svgTransform2string(c)),e(r,c,function(){return s.getBBox(1)});if("d"==b||"path"==b)return d=a.path.toCubic(r,c),{from:k(d[0]),to:k(d[1]),f:j(d[0])};if("points"==b)return d=p(r).split(a._.separator),q=p(c).split(a._.separator),{from:d,to:q,f:function(a){return a}};var t=r.match(o),u=p(c).match(o);return t&&m(t,u)?{from:parseFloat(r),to:parseFloat(c),f:g(t)}:{from:this.asPX(b),to:this.asPX(b,c),f:f}})}),d.plugin(function(a,c,d,e){for(var f=c.prototype,g="hasOwnProperty",h=("createTouch"in e.doc),i=["click","dblclick","mousedown","mousemove","mouseout","mouseover","mouseup","touchstart","touchmove","touchend","touchcancel"],j={mousedown:"touchstart",mousemove:"touchmove",mouseup:"touchend"},k=(function(a,b){var c="y"==a?"scrollTop":"scrollLeft",d=b&&b.node?b.node.ownerDocument:e.doc;return d[c in d.documentElement?"documentElement":"body"][c]}),l=function(){return this.originalEvent.preventDefault()},m=function(){return this.originalEvent.stopPropagation()},n=function(a,b,c,d){var e=h&&j[b]?j[b]:b,f=function(e){var f=k("y",d),i=k("x",d);if(h&&j[g](b))for(var n=0,o=e.targetTouches&&e.targetTouches.length;o>n;n++)if(e.targetTouches[n].target==a||a.contains(e.targetTouches[n].target)){var p=e;e=e.targetTouches[n],e.originalEvent=p,e.preventDefault=l,e.stopPropagation=m;break}var q=e.clientX+i,r=e.clientY+f;return c.call(d,e,q,r)};return b!==e&&a.addEventListener(b,f,!1),a.addEventListener(e,f,!1),function(){return b!==e&&a.removeEventListener(b,f,!1),a.removeEventListener(e,f,!1),!0}},o=[],p=function(a){for(var c,d=a.clientX,e=a.clientY,f=k("y"),g=k("x"),i=o.length;i--;){if(c=o[i],h){for(var j,l=a.touches&&a.touches.length;l--;)if(j=a.touches[l],j.identifier==c.el._drag.id||c.el.node.contains(j.target)){d=j.clientX,e=j.clientY,(a.originalEvent?a.originalEvent:a).preventDefault();break}}else a.preventDefault();{var m=c.el.node;m.nextSibling,m.parentNode,m.style.display}d+=g,e+=f,b("snap.drag.move."+c.el.id,c.move_scope||c.el,d-c.el._drag.x,e-c.el._drag.y,d,e,a)}},q=function(c){a.unmousemove(p).unmouseup(q);for(var d,e=o.length;e--;)d=o[e],d.el._drag={},b("snap.drag.end."+d.el.id,d.end_scope||d.start_scope||d.move_scope||d.el,c),b.off("snap.drag.*."+d.el.id);o=[]},r=i.length;r--;)!function(b){a[b]=f[b]=function(c,d){if(a.is(c,"function"))this.events=this.events||[],this.events.push({name:b,f:c,unbind:n(this.node||document,b,c,d||this)});else for(var e=0,f=this.events.length;f>e;e++)if(this.events[e].name==b)try{this.events[e].f.call(this)}catch(g){}return this},a["un"+b]=f["un"+b]=function(a){for(var c=this.events||[],d=c.length;d--;)if(c[d].name==b&&(c[d].f==a||!a))return c[d].unbind(),c.splice(d,1),!c.length&&delete this.events,this;return this}}(i[r]);f.hover=function(a,b,c,d){return this.mouseover(a,c).mouseout(b,d||c)},f.unhover=function(a,b){return this.unmouseover(a).unmouseout(b)};var s=[];f.drag=function(c,d,e,f,g,h){function i(i,j,l){(i.originalEvent||i).preventDefault(),k._drag.x=j,k._drag.y=l,k._drag.id=i.identifier,!o.length&&a.mousemove(p).mouseup(q),o.push({el:k,move_scope:f,start_scope:g,end_scope:h}),d&&b.on("snap.drag.start."+k.id,d),c&&b.on("snap.drag.move."+k.id,c),e&&b.on("snap.drag.end."+k.id,e),b("snap.drag.start."+k.id,g||f||k,j,l,i)}function j(a,c,d){b("snap.draginit."+k.id,k,a,c,d)}var k=this;if(!arguments.length){var l;return k.drag(function(a,b){this.attr({transform:l+(l?"T":"t")+[a,b]})},function(){l=this.transform().local})}return b.on("snap.draginit."+k.id,i),k._drag={},s.push({el:k,start:i,init:j}),k.mousedown(j),k},f.undrag=function(){for(var c=s.length;c--;)s[c].el==this&&(this.unmousedown(s[c].init),s.splice(c,1),b.unbind("snap.drag.*."+this.id),b.unbind("snap.draginit."+this.id));return!s.length&&a.unmousemove(p).unmouseup(q),this}}),d.plugin(function(a,c,d){var e=(c.prototype,d.prototype),f=/^\s*url\((.+)\)/,g=String,h=a._.$;a.filter={},e.filter=function(b){var d=this;"svg"!=d.type&&(d=d.paper);var e=a.parse(g(b)),f=a._.id(),i=(d.node.offsetWidth,d.node.offsetHeight,h("filter"));return h(i,{id:f,filterUnits:"userSpaceOnUse"}),i.appendChild(e.node),d.defs.appendChild(i),new c(i)},b.on("snap.util.getattr.filter",function(){b.stop();var c=h(this.node,"filter");if(c){var d=g(c).match(f);return d&&a.select(d[1])}}),b.on("snap.util.attr.filter",function(d){if(d instanceof c&&"filter"==d.type){b.stop();var e=d.node.id;e||(h(d.node,{id:d.id}),e=d.id),h(this.node,{filter:a.url(e)})}d&&"none"!=d||(b.stop(),this.node.removeAttribute("filter"))}),a.filter.blur=function(b,c){null==b&&(b=2);var d=null==c?b:[b,c];return a.format('',{def:d})},a.filter.blur.toString=function(){return this()},a.filter.shadow=function(b,c,d,e,f){return"string"==typeof d&&(e=d,f=e,d=4),"string"!=typeof e&&(f=e,e="#000"),e=e||"#000",null==d&&(d=4),null==f&&(f=1),null==b&&(b=0,c=2),null==c&&(c=b),e=a.color(e),a.format('',{color:e,dx:b,dy:c,blur:d,opacity:f})},a.filter.shadow.toString=function(){return this()},a.filter.grayscale=function(b){return null==b&&(b=1),a.format('',{a:.2126+.7874*(1-b),b:.7152-.7152*(1-b),c:.0722-.0722*(1-b),d:.2126-.2126*(1-b),e:.7152+.2848*(1-b),f:.0722-.0722*(1-b),g:.2126-.2126*(1-b),h:.0722+.9278*(1-b)})},a.filter.grayscale.toString=function(){return this()},a.filter.sepia=function(b){return null==b&&(b=1),a.format('',{a:.393+.607*(1-b),b:.769-.769*(1-b),c:.189-.189*(1-b),d:.349-.349*(1-b),e:.686+.314*(1-b),f:.168-.168*(1-b),g:.272-.272*(1-b),h:.534-.534*(1-b),i:.131+.869*(1-b)})},a.filter.sepia.toString=function(){return this()},a.filter.saturate=function(b){return null==b&&(b=1),a.format('',{amount:1-b})},a.filter.saturate.toString=function(){return this()},a.filter.hueRotate=function(b){return b=b||0,a.format('',{angle:b})},a.filter.hueRotate.toString=function(){return this()},a.filter.invert=function(b){return null==b&&(b=1),a.format('',{amount:b,amount2:1-b})},a.filter.invert.toString=function(){return this()},a.filter.brightness=function(b){return null==b&&(b=1),a.format('',{amount:b})},a.filter.brightness.toString=function(){return this()},a.filter.contrast=function(b){return null==b&&(b=1),a.format('',{amount:b,amount2:.5-b/2})},a.filter.contrast.toString=function(){return this()}}),d.plugin(function(a,b){var c=a._.box,d=a.is,e=/^[^a-z]*([tbmlrc])/i,f=function(){return"T"+this.dx+","+this.dy};b.prototype.getAlign=function(a,b){null==b&&d(a,"string")&&(b=a,a=null),a=a||this.paper;var g=a.getBBox?a.getBBox():c(a),h=this.getBBox(),i={};switch(b=b&&b.match(e),b=b?b[1].toLowerCase():"c"){case"t":i.dx=0,i.dy=g.y-h.y;break;case"b":i.dx=0,i.dy=g.y2-h.y2;break;case"m":i.dx=0,i.dy=g.cy-h.cy;break;case"l":i.dx=g.x-h.x,i.dy=0;break;case"r":i.dx=g.x2-h.x2,i.dy=0;break;default:i.dx=g.cx-h.cx,i.dy=0}return i.toString=f,i},b.prototype.align=function(a,b){return this.transform("..."+this.getAlign(a,b))}}),d}); diff --git a/docs/assets/underscore-min.js b/docs/assets/underscore-min.js new file mode 100644 index 0000000..6567d19 --- /dev/null +++ b/docs/assets/underscore-min.js @@ -0,0 +1,21 @@ +// Snap.svg 0.4.1 +// +// Copyright (c) 2013 – 2015 Adobe Systems Incorporated. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// build: 2015-04-13 + +!function(a){var b,c,d="0.4.2",e="hasOwnProperty",f=/[\.\/]/,g=/\s*,\s*/,h="*",i=function(a,b){return a-b},j={n:{}},k=function(){for(var a=0,b=this.length;b>a;a++)if("undefined"!=typeof this[a])return this[a]},l=function(){for(var a=this.length;--a;)if("undefined"!=typeof this[a])return this[a]},m=function(a,d){a=String(a);var e,f=c,g=Array.prototype.slice.call(arguments,2),h=m.listeners(a),j=0,n=[],o={},p=[],q=b;p.firstDefined=k,p.lastDefined=l,b=a,c=0;for(var r=0,s=h.length;s>r;r++)"zIndex"in h[r]&&(n.push(h[r].zIndex),h[r].zIndex<0&&(o[h[r].zIndex]=h[r]));for(n.sort(i);n[j]<0;)if(e=o[n[j++]],p.push(e.apply(d,g)),c)return c=f,p;for(r=0;s>r;r++)if(e=h[r],"zIndex"in e)if(e.zIndex==n[j]){if(p.push(e.apply(d,g)),c)break;do if(j++,e=o[n[j]],e&&p.push(e.apply(d,g)),c)break;while(e)}else o[e.zIndex]=e;else if(p.push(e.apply(d,g)),c)break;return c=f,b=q,p};m._events=j,m.listeners=function(a){var b,c,d,e,g,i,k,l,m=a.split(f),n=j,o=[n],p=[];for(e=0,g=m.length;g>e;e++){for(l=[],i=0,k=o.length;k>i;i++)for(n=o[i].n,c=[n[m[e]],n[h]],d=2;d--;)b=c[d],b&&(l.push(b),p=p.concat(b.f||[]));o=l}return p},m.on=function(a,b){if(a=String(a),"function"!=typeof b)return function(){};for(var c=a.split(g),d=0,e=c.length;e>d;d++)!function(a){for(var c,d=a.split(f),e=j,g=0,h=d.length;h>g;g++)e=e.n,e=e.hasOwnProperty(d[g])&&e[d[g]]||(e[d[g]]={n:{}});for(e.f=e.f||[],g=0,h=e.f.length;h>g;g++)if(e.f[g]==b){c=!0;break}!c&&e.f.push(b)}(c[d]);return function(a){+a==+a&&(b.zIndex=+a)}},m.f=function(a){var b=[].slice.call(arguments,1);return function(){m.apply(null,[a,null].concat(b).concat([].slice.call(arguments,0)))}},m.stop=function(){c=1},m.nt=function(a){return a?new RegExp("(?:\\.|\\/|^)"+a+"(?:\\.|\\/|$)").test(b):b},m.nts=function(){return b.split(f)},m.off=m.unbind=function(a,b){if(!a)return void(m._events=j={n:{}});var c=a.split(g);if(c.length>1)for(var d=0,i=c.length;i>d;d++)m.off(c[d],b);else{c=a.split(f);var k,l,n,d,i,o,p,q=[j];for(d=0,i=c.length;i>d;d++)for(o=0;od;d++)for(k=q[d];k.n;){if(b){if(k.f){for(o=0,p=k.f.length;p>o;o++)if(k.f[o]==b){k.f.splice(o,1);break}!k.f.length&&delete k.f}for(l in k.n)if(k.n[e](l)&&k.n[l].f){var r=k.n[l].f;for(o=0,p=r.length;p>o;o++)if(r[o]==b){r.splice(o,1);break}!r.length&&delete k.n[l].f}}else{delete k.f;for(l in k.n)k.n[e](l)&&k.n[l].f&&delete k.n[l].f}k=k.n}}},m.once=function(a,b){var c=function(){return m.unbind(a,c),b.apply(this,arguments)};return m.on(a,c)},m.version=d,m.toString=function(){return"You are running Eve "+d},"undefined"!=typeof module&&module.exports?module.exports=m:"function"==typeof define&&define.amd?define("eve",[],function(){return m}):a.eve=m}(this),function(a,b){if("function"==typeof define&&define.amd)define(["eve"],function(c){return b(a,c)});else if("undefined"!=typeof exports){var c=require("eve");module.exports=b(a,c)}else b(a,a.eve)}(window||this,function(a,b){var c=function(b){var c={},d=a.requestAnimationFrame||a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame||a.msRequestAnimationFrame||function(a){setTimeout(a,16)},e=Array.isArray||function(a){return a instanceof Array||"[object Array]"==Object.prototype.toString.call(a)},f=0,g="M"+(+new Date).toString(36),h=function(){return g+(f++).toString(36)},i=Date.now||function(){return+new Date},j=function(a){var b=this;if(null==a)return b.s;var c=b.s-a;b.b+=b.dur*c,b.B+=b.dur*c,b.s=a},k=function(a){var b=this;return null==a?b.spd:void(b.spd=a)},l=function(a){var b=this;return null==a?b.dur:(b.s=b.s*a/b.dur,void(b.dur=a))},m=function(){var a=this;delete c[a.id],a.update(),b("mina.stop."+a.id,a)},n=function(){var a=this;a.pdif||(delete c[a.id],a.update(),a.pdif=a.get()-a.b)},o=function(){var a=this;a.pdif&&(a.b=a.get()-a.pdif,delete a.pdif,c[a.id]=a)},p=function(){var a,b=this;if(e(b.start)){a=[];for(var c=0,d=b.start.length;d>c;c++)a[c]=+b.start[c]+(b.end[c]-b.start[c])*b.easing(b.s)}else a=+b.start+(b.end-b.start)*b.easing(b.s);b.set(a)},q=function(){var a=0;for(var e in c)if(c.hasOwnProperty(e)){var f=c[e],g=f.get();a++,f.s=(g-f.b)/(f.dur/f.spd),f.s>=1&&(delete c[e],f.s=1,a--,function(a){setTimeout(function(){b("mina.finish."+a.id,a)})}(f)),f.update()}a&&d(q)},r=function(a,b,e,f,g,i,s){var t={id:h(),start:a,end:b,b:e,s:0,dur:f-e,spd:1,get:g,set:i,easing:s||r.linear,status:j,speed:k,duration:l,stop:m,pause:n,resume:o,update:p};c[t.id]=t;var u,v=0;for(u in c)if(c.hasOwnProperty(u)&&(v++,2==v))break;return 1==v&&d(q),t};return r.time=i,r.getById=function(a){return c[a]||null},r.linear=function(a){return a},r.easeout=function(a){return Math.pow(a,1.7)},r.easein=function(a){return Math.pow(a,.48)},r.easeinout=function(a){if(1==a)return 1;if(0==a)return 0;var b=.48-a/1.04,c=Math.sqrt(.1734+b*b),d=c-b,e=Math.pow(Math.abs(d),1/3)*(0>d?-1:1),f=-c-b,g=Math.pow(Math.abs(f),1/3)*(0>f?-1:1),h=e+g+.5;return 3*(1-h)*h*h+h*h*h},r.backin=function(a){if(1==a)return 1;var b=1.70158;return a*a*((b+1)*a-b)},r.backout=function(a){if(0==a)return 0;a-=1;var b=1.70158;return a*a*((b+1)*a+b)+1},r.elastic=function(a){return a==!!a?a:Math.pow(2,-10*a)*Math.sin(2*(a-.075)*Math.PI/.3)+1},r.bounce=function(a){var b,c=7.5625,d=2.75;return 1/d>a?b=c*a*a:2/d>a?(a-=1.5/d,b=c*a*a+.75):2.5/d>a?(a-=2.25/d,b=c*a*a+.9375):(a-=2.625/d,b=c*a*a+.984375),b},a.mina=r,r}("undefined"==typeof b?function(){}:b),d=function(a){function c(a,b){if(a){if(a.nodeType)return w(a);if(e(a,"array")&&c.set)return c.set.apply(c,a);if(a instanceof s)return a;if(null==b)return a=y.doc.querySelector(String(a)),w(a)}return a=null==a?"100%":a,b=null==b?"100%":b,new v(a,b)}function d(a,b){if(b){if("#text"==a&&(a=y.doc.createTextNode(b.text||b["#text"]||"")),"#comment"==a&&(a=y.doc.createComment(b.text||b["#text"]||"")),"string"==typeof a&&(a=d(a)),"string"==typeof b)return 1==a.nodeType?"xlink:"==b.substring(0,6)?a.getAttributeNS(T,b.substring(6)):"xml:"==b.substring(0,4)?a.getAttributeNS(U,b.substring(4)):a.getAttribute(b):"text"==b?a.nodeValue:null;if(1==a.nodeType){for(var c in b)if(b[z](c)){var e=A(b[c]);e?"xlink:"==c.substring(0,6)?a.setAttributeNS(T,c.substring(6),e):"xml:"==c.substring(0,4)?a.setAttributeNS(U,c.substring(4),e):a.setAttribute(c,e):a.removeAttribute(c)}}else"text"in b&&(a.nodeValue=b.text)}else a=y.doc.createElementNS(U,a);return a}function e(a,b){return b=A.prototype.toLowerCase.call(b),"finite"==b?isFinite(a):"array"==b&&(a instanceof Array||Array.isArray&&Array.isArray(a))?!0:"null"==b&&null===a||b==typeof a&&null!==a||"object"==b&&a===Object(a)||J.call(a).slice(8,-1).toLowerCase()==b}function f(a){if("function"==typeof a||Object(a)!==a)return a;var b=new a.constructor;for(var c in a)a[z](c)&&(b[c]=f(a[c]));return b}function h(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return a.push(a.splice(c,1)[0])}function i(a,b,c){function d(){var e=Array.prototype.slice.call(arguments,0),f=e.join("␀"),g=d.cache=d.cache||{},i=d.count=d.count||[];return g[z](f)?(h(i,f),c?c(g[f]):g[f]):(i.length>=1e3&&delete g[i.shift()],i.push(f),g[f]=a.apply(b,e),c?c(g[f]):g[f])}return d}function j(a,b,c,d,e,f){if(null==e){var g=a-c,h=b-d;return g||h?(180+180*D.atan2(-h,-g)/H+360)%360:0}return j(a,b,e,f)-j(c,d,e,f)}function k(a){return a%360*H/180}function l(a){return 180*a/H%360}function m(a){var b=[];return a=a.replace(/(?:^|\s)(\w+)\(([^)]+)\)/g,function(a,c,d){return d=d.split(/\s*,\s*|\s+/),"rotate"==c&&1==d.length&&d.push(0,0),"scale"==c&&(d.length>2?d=d.slice(0,2):2==d.length&&d.push(0,0),1==d.length&&d.push(d[0],0,0)),b.push("skewX"==c?["m",1,0,D.tan(k(d[0])),1,0,0]:"skewY"==c?["m",1,D.tan(k(d[0])),0,1,0,0]:[c.charAt(0)].concat(d)),a}),b}function n(a,b){var d=ab(a),e=new c.Matrix;if(d)for(var f=0,g=d.length;g>f;f++){var h,i,j,k,l,m=d[f],n=m.length,o=A(m[0]).toLowerCase(),p=m[0]!=o,q=p?e.invert():0;"t"==o&&2==n?e.translate(m[1],0):"t"==o&&3==n?p?(h=q.x(0,0),i=q.y(0,0),j=q.x(m[1],m[2]),k=q.y(m[1],m[2]),e.translate(j-h,k-i)):e.translate(m[1],m[2]):"r"==o?2==n?(l=l||b,e.rotate(m[1],l.x+l.width/2,l.y+l.height/2)):4==n&&(p?(j=q.x(m[2],m[3]),k=q.y(m[2],m[3]),e.rotate(m[1],j,k)):e.rotate(m[1],m[2],m[3])):"s"==o?2==n||3==n?(l=l||b,e.scale(m[1],m[n-1],l.x+l.width/2,l.y+l.height/2)):4==n?p?(j=q.x(m[2],m[3]),k=q.y(m[2],m[3]),e.scale(m[1],m[1],j,k)):e.scale(m[1],m[1],m[2],m[3]):5==n&&(p?(j=q.x(m[3],m[4]),k=q.y(m[3],m[4]),e.scale(m[1],m[2],j,k)):e.scale(m[1],m[2],m[3],m[4])):"m"==o&&7==n&&e.add(m[1],m[2],m[3],m[4],m[5],m[6])}return e}function o(a){var b=a.node.ownerSVGElement&&w(a.node.ownerSVGElement)||a.node.parentNode&&w(a.node.parentNode)||c.select("svg")||c(0,0),d=b.select("defs"),e=null==d?!1:d.node;return e||(e=u("defs",b.node).node),e}function p(a){return a.node.ownerSVGElement&&w(a.node.ownerSVGElement)||c.select("svg")}function q(a,b,c){function e(a){if(null==a)return I;if(a==+a)return a;d(j,{width:a});try{return j.getBBox().width}catch(b){return 0}}function f(a){if(null==a)return I;if(a==+a)return a;d(j,{height:a});try{return j.getBBox().height}catch(b){return 0}}function g(d,e){null==b?i[d]=e(a.attr(d)||0):d==b&&(i=e(null==c?a.attr(d)||0:c))}var h=p(a).node,i={},j=h.querySelector(".svg---mgr");switch(j||(j=d("rect"),d(j,{x:-9e9,y:-9e9,width:10,height:10,"class":"svg---mgr",fill:"none"}),h.appendChild(j)),a.type){case"rect":g("rx",e),g("ry",f);case"image":g("width",e),g("height",f);case"text":g("x",e),g("y",f);break;case"circle":g("cx",e),g("cy",f),g("r",e);break;case"ellipse":g("cx",e),g("cy",f),g("rx",e),g("ry",f);break;case"line":g("x1",e),g("x2",e),g("y1",f),g("y2",f);break;case"marker":g("refX",e),g("markerWidth",e),g("refY",f),g("markerHeight",f);break;case"radialGradient":g("fx",e),g("fy",f);break;case"tspan":g("dx",e),g("dy",f);break;default:g(b,e)}return h.removeChild(j),i}function r(a){e(a,"array")||(a=Array.prototype.slice.call(arguments,0));for(var b=0,c=0,d=this.node;this[b];)delete this[b++];for(b=0;bc;c++){var e={type:a[c].type,attr:a[c].attr()},f=a[c].children();b.push(e),f.length&&x(f,e.childNodes=[])}}c.version="0.4.0",c.toString=function(){return"Snap v"+this.version},c._={};var y={win:a.window,doc:a.window.document};c._.glob=y;{var z="hasOwnProperty",A=String,B=parseFloat,C=parseInt,D=Math,E=D.max,F=D.min,G=D.abs,H=(D.pow,D.PI),I=(D.round,""),J=Object.prototype.toString,K=/^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?%?)\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?%?)\s*\))\s*$/i,L=(c._.separator=/[,\s]+/,/[\s]*,[\s]*/),M={hs:1,rg:1},N=/([a-z])[\s,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\s]*,?[\s]*)+)/gi,O=/([rstm])[\s,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\s]*,?[\s]*)+)/gi,P=/(-?\d*\.?\d*(?:e[\-+]?\\d+)?)[\s]*,?[\s]*/gi,Q=0,R="S"+(+new Date).toString(36),S=function(a){return(a&&a.type?a.type:I)+R+(Q++).toString(36)},T="http://www.w3.org/1999/xlink",U="http://www.w3.org/2000/svg",V={};c.url=function(a){return"url('#"+a+"')"}}c._.$=d,c._.id=S,c.format=function(){var a=/\{([^\}]+)\}/g,b=/(?:(?:^|\.)(.+?)(?=\[|\.|$|\()|\[('|")(.+?)\2\])(\(\))?/g,c=function(a,c,d){var e=d;return c.replace(b,function(a,b,c,d,f){b=b||d,e&&(b in e&&(e=e[b]),"function"==typeof e&&f&&(e=e()))}),e=(null==e||e==d?a:e)+""};return function(b,d){return A(b).replace(a,function(a,b){return c(a,b,d)})}}(),c._.clone=f,c._.cacher=i,c.rad=k,c.deg=l,c.sin=function(a){return D.sin(c.rad(a))},c.tan=function(a){return D.tan(c.rad(a))},c.cos=function(a){return D.cos(c.rad(a))},c.asin=function(a){return c.deg(D.asin(a))},c.acos=function(a){return c.deg(D.acos(a))},c.atan=function(a){return c.deg(D.atan(a))},c.atan2=function(a){return c.deg(D.atan2(a))},c.angle=j,c.len=function(a,b,d,e){return Math.sqrt(c.len2(a,b,d,e))},c.len2=function(a,b,c,d){return(a-c)*(a-c)+(b-d)*(b-d)},c.closestPoint=function(a,b,c){function d(a){var d=a.x-b,e=a.y-c;return d*d+e*e}for(var e,f,g,h,i=a.node,j=i.getTotalLength(),k=j/i.pathSegList.numberOfItems*.125,l=1/0,m=0;j>=m;m+=k)(h=d(g=i.getPointAtLength(m))).5;){var n,o,p,q,r,s;(p=f-k)>=0&&(r=d(n=i.getPointAtLength(p)))f)return b-f;if(f>a-c)return b-f+a}return b},c.getRGB=i(function(a){if(!a||(a=A(a)).indexOf("-")+1)return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:Z};if("none"==a)return{r:-1,g:-1,b:-1,hex:"none",toString:Z};if(!(M[z](a.toLowerCase().substring(0,2))||"#"==a.charAt())&&(a=W(a)),!a)return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:Z};var b,d,f,g,h,i,j=a.match(K);return j?(j[2]&&(f=C(j[2].substring(5),16),d=C(j[2].substring(3,5),16),b=C(j[2].substring(1,3),16)),j[3]&&(f=C((h=j[3].charAt(3))+h,16),d=C((h=j[3].charAt(2))+h,16),b=C((h=j[3].charAt(1))+h,16)),j[4]&&(i=j[4].split(L),b=B(i[0]),"%"==i[0].slice(-1)&&(b*=2.55),d=B(i[1]),"%"==i[1].slice(-1)&&(d*=2.55),f=B(i[2]),"%"==i[2].slice(-1)&&(f*=2.55),"rgba"==j[1].toLowerCase().slice(0,4)&&(g=B(i[3])),i[3]&&"%"==i[3].slice(-1)&&(g/=100)),j[5]?(i=j[5].split(L),b=B(i[0]),"%"==i[0].slice(-1)&&(b/=100),d=B(i[1]),"%"==i[1].slice(-1)&&(d/=100),f=B(i[2]),"%"==i[2].slice(-1)&&(f/=100),("deg"==i[0].slice(-3)||"°"==i[0].slice(-1))&&(b/=360),"hsba"==j[1].toLowerCase().slice(0,4)&&(g=B(i[3])),i[3]&&"%"==i[3].slice(-1)&&(g/=100),c.hsb2rgb(b,d,f,g)):j[6]?(i=j[6].split(L),b=B(i[0]),"%"==i[0].slice(-1)&&(b/=100),d=B(i[1]),"%"==i[1].slice(-1)&&(d/=100),f=B(i[2]),"%"==i[2].slice(-1)&&(f/=100),("deg"==i[0].slice(-3)||"°"==i[0].slice(-1))&&(b/=360),"hsla"==j[1].toLowerCase().slice(0,4)&&(g=B(i[3])),i[3]&&"%"==i[3].slice(-1)&&(g/=100),c.hsl2rgb(b,d,f,g)):(b=F(D.round(b),255),d=F(D.round(d),255),f=F(D.round(f),255),g=F(E(g,0),1),j={r:b,g:d,b:f,toString:Z},j.hex="#"+(16777216|f|d<<8|b<<16).toString(16).slice(1),j.opacity=e(g,"finite")?g:1,j)):{r:-1,g:-1,b:-1,hex:"none",error:1,toString:Z}},c),c.hsb=i(function(a,b,d){return c.hsb2rgb(a,b,d).hex}),c.hsl=i(function(a,b,d){return c.hsl2rgb(a,b,d).hex}),c.rgb=i(function(a,b,c,d){if(e(d,"finite")){var f=D.round;return"rgba("+[f(a),f(b),f(c),+d.toFixed(2)]+")"}return"#"+(16777216|c|b<<8|a<<16).toString(16).slice(1)});var W=function(a){var b=y.doc.getElementsByTagName("head")[0]||y.doc.getElementsByTagName("svg")[0],c="rgb(255, 0, 0)";return(W=i(function(a){if("red"==a.toLowerCase())return c;b.style.color=c,b.style.color=a;var d=y.doc.defaultView.getComputedStyle(b,I).getPropertyValue("color");return d==c?null:d}))(a)},X=function(){return"hsb("+[this.h,this.s,this.b]+")"},Y=function(){return"hsl("+[this.h,this.s,this.l]+")"},Z=function(){return 1==this.opacity||null==this.opacity?this.hex:"rgba("+[this.r,this.g,this.b,this.opacity]+")"},$=function(a,b,d){if(null==b&&e(a,"object")&&"r"in a&&"g"in a&&"b"in a&&(d=a.b,b=a.g,a=a.r),null==b&&e(a,string)){var f=c.getRGB(a);a=f.r,b=f.g,d=f.b}return(a>1||b>1||d>1)&&(a/=255,b/=255,d/=255),[a,b,d]},_=function(a,b,d,f){a=D.round(255*a),b=D.round(255*b),d=D.round(255*d);var g={r:a,g:b,b:d,opacity:e(f,"finite")?f:1,hex:c.rgb(a,b,d),toString:Z};return e(f,"finite")&&(g.opacity=f),g};c.color=function(a){var b;return e(a,"object")&&"h"in a&&"s"in a&&"b"in a?(b=c.hsb2rgb(a),a.r=b.r,a.g=b.g,a.b=b.b,a.opacity=1,a.hex=b.hex):e(a,"object")&&"h"in a&&"s"in a&&"l"in a?(b=c.hsl2rgb(a),a.r=b.r,a.g=b.g,a.b=b.b,a.opacity=1,a.hex=b.hex):(e(a,"string")&&(a=c.getRGB(a)),e(a,"object")&&"r"in a&&"g"in a&&"b"in a&&!("error"in a)?(b=c.rgb2hsl(a),a.h=b.h,a.s=b.s,a.l=b.l,b=c.rgb2hsb(a),a.v=b.b):(a={hex:"none"},a.r=a.g=a.b=a.h=a.s=a.v=a.l=-1,a.error=1)),a.toString=Z,a},c.hsb2rgb=function(a,b,c,d){e(a,"object")&&"h"in a&&"s"in a&&"b"in a&&(c=a.b,b=a.s,d=a.o,a=a.h),a*=360;var f,g,h,i,j;return a=a%360/60,j=c*b,i=j*(1-G(a%2-1)),f=g=h=c-j,a=~~a,f+=[j,i,0,0,i,j][a],g+=[i,j,j,i,0,0][a],h+=[0,0,i,j,j,i][a],_(f,g,h,d)},c.hsl2rgb=function(a,b,c,d){e(a,"object")&&"h"in a&&"s"in a&&"l"in a&&(c=a.l,b=a.s,a=a.h),(a>1||b>1||c>1)&&(a/=360,b/=100,c/=100),a*=360;var f,g,h,i,j;return a=a%360/60,j=2*b*(.5>c?c:1-c),i=j*(1-G(a%2-1)),f=g=h=c-j/2,a=~~a,f+=[j,i,0,0,i,j][a],g+=[i,j,j,i,0,0][a],h+=[0,0,i,j,j,i][a],_(f,g,h,d)},c.rgb2hsb=function(a,b,c){c=$(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g;return f=E(a,b,c),g=f-F(a,b,c),d=0==g?null:f==a?(b-c)/g:f==b?(c-a)/g+2:(a-b)/g+4,d=(d+360)%6*60/360,e=0==g?0:g/f,{h:d,s:e,b:f,toString:X}},c.rgb2hsl=function(a,b,c){c=$(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g,h,i;return g=E(a,b,c),h=F(a,b,c),i=g-h,d=0==i?null:g==a?(b-c)/i:g==b?(c-a)/i+2:(a-b)/i+4,d=(d+360)%6*60/360,f=(g+h)/2,e=0==i?0:.5>f?i/(2*f):i/(2-2*f),{h:d,s:e,l:f,toString:Y}},c.parsePathString=function(a){if(!a)return null;var b=c.path(a);if(b.arr)return c.path.clone(b.arr);var d={a:7,c:6,o:2,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,u:3,z:0},f=[];return e(a,"array")&&e(a[0],"array")&&(f=c.path.clone(a)),f.length||A(a).replace(N,function(a,b,c){var e=[],g=b.toLowerCase();if(c.replace(P,function(a,b){b&&e.push(+b)}),"m"==g&&e.length>2&&(f.push([b].concat(e.splice(0,2))),g="l",b="m"==b?"l":"L"),"o"==g&&1==e.length&&f.push([b,e[0]]),"r"==g)f.push([b].concat(e));else for(;e.length>=d[g]&&(f.push([b].concat(e.splice(0,d[g]))),d[g]););}),f.toString=c.path.toString,b.arr=c.path.clone(f),f};var ab=c.parseTransformString=function(a){if(!a)return null;var b=[];return e(a,"array")&&e(a[0],"array")&&(b=c.path.clone(a)),b.length||A(a).replace(O,function(a,c,d){{var e=[];c.toLowerCase()}d.replace(P,function(a,b){b&&e.push(+b)}),b.push([c].concat(e))}),b.toString=c.path.toString,b};c._.svgTransform2string=m,c._.rgTransform=/^[a-z][\s]*-?\.?\d/i,c._.transform2matrix=n,c._unit2px=q;y.doc.contains||y.doc.compareDocumentPosition?function(a,b){var c=9==a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a==d||!(!d||1!=d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)for(;b;)if(b=b.parentNode,b==a)return!0;return!1};c._.getSomeDefs=o,c._.getSomeSVG=p,c.select=function(a){return a=A(a).replace(/([^\\]):/g,"$1\\:"),w(y.doc.querySelector(a))},c.selectAll=function(a){for(var b=y.doc.querySelectorAll(a),d=(c.set||Array)(),e=0;ei;i++)h[g[i].nodeName]=g[i].nodeValue;return h}if(e(a,"string")){if(!(arguments.length>1))return b("snap.util.getattr."+a,d).firstDefined();var k={};k[a]=c,a=k}for(var l in a)a[z](l)&&b("snap.util.attr."+l,d,a[l]);return d},c.parse=function(a){var b=y.doc.createDocumentFragment(),c=!0,d=y.doc.createElement("div");if(a=A(a),a.match(/^\s*<\s*svg(?:\s|>)/)||(a=""+a+"",c=!1),d.innerHTML=a,a=d.getElementsByTagName("svg")[0])if(c)b=a;else for(;a.firstChild;)b.appendChild(a.firstChild);return new t(b)},c.fragment=function(){for(var a=Array.prototype.slice.call(arguments,0),b=y.doc.createDocumentFragment(),d=0,e=a.length;e>d;d++){var f=a[d];f.node&&f.node.nodeType&&b.appendChild(f.node),f.nodeType&&b.appendChild(f),"string"==typeof f&&b.appendChild(c.parse(f).node)}return new t(b)},c._.make=u,c._.wrap=w,v.prototype.el=function(a,b){var c=u(a,this.node);return b&&c.attr(b),c},s.prototype.children=function(){for(var a=[],b=this.node.childNodes,d=0,e=b.length;e>d;d++)a[d]=c(b[d]);return a},s.prototype.toJSON=function(){var a=[];return x([this],a),a[0]},b.on("snap.util.getattr",function(){var a=b.nt();a=a.substring(a.lastIndexOf(".")+1);var c=a.replace(/[A-Z]/g,function(a){return"-"+a.toLowerCase()});return bb[z](c)?this.node.ownerDocument.defaultView.getComputedStyle(this.node,null).getPropertyValue(c):d(this.node,a)});var bb={"alignment-baseline":0,"baseline-shift":0,clip:0,"clip-path":0,"clip-rule":0,color:0,"color-interpolation":0,"color-interpolation-filters":0,"color-profile":0,"color-rendering":0,cursor:0,direction:0,display:0,"dominant-baseline":0,"enable-background":0,fill:0,"fill-opacity":0,"fill-rule":0,filter:0,"flood-color":0,"flood-opacity":0,font:0,"font-family":0,"font-size":0,"font-size-adjust":0,"font-stretch":0,"font-style":0,"font-variant":0,"font-weight":0,"glyph-orientation-horizontal":0,"glyph-orientation-vertical":0,"image-rendering":0,kerning:0,"letter-spacing":0,"lighting-color":0,marker:0,"marker-end":0,"marker-mid":0,"marker-start":0,mask:0,opacity:0,overflow:0,"pointer-events":0,"shape-rendering":0,"stop-color":0,"stop-opacity":0,stroke:0,"stroke-dasharray":0,"stroke-dashoffset":0,"stroke-linecap":0,"stroke-linejoin":0,"stroke-miterlimit":0,"stroke-opacity":0,"stroke-width":0,"text-anchor":0,"text-decoration":0,"text-rendering":0,"unicode-bidi":0,visibility:0,"word-spacing":0,"writing-mode":0};b.on("snap.util.attr",function(a){var c=b.nt(),e={};c=c.substring(c.lastIndexOf(".")+1),e[c]=a;var f=c.replace(/-(\w)/gi,function(a,b){return b.toUpperCase()}),g=c.replace(/[A-Z]/g,function(a){return"-"+a.toLowerCase()});bb[z](g)?this.node.style[f]=null==a?I:a:d(this.node,e)}),function(){}(v.prototype),c.ajax=function(a,c,d,f){var g=new XMLHttpRequest,h=S();if(g){if(e(c,"function"))f=d,d=c,c=null;else if(e(c,"object")){var i=[];for(var j in c)c.hasOwnProperty(j)&&i.push(encodeURIComponent(j)+"="+encodeURIComponent(c[j]));c=i.join("&")}return g.open(c?"POST":"GET",a,!0),c&&(g.setRequestHeader("X-Requested-With","XMLHttpRequest"),g.setRequestHeader("Content-type","application/x-www-form-urlencoded")),d&&(b.once("snap.ajax."+h+".0",d),b.once("snap.ajax."+h+".200",d),b.once("snap.ajax."+h+".304",d)),g.onreadystatechange=function(){4==g.readyState&&b("snap.ajax."+h+"."+g.status,f,g)},4==g.readyState?g:(g.send(c),g)}},c.load=function(a,b,d){c.ajax(a,function(a){var e=c.parse(a.responseText);d?b.call(d,e):b(e)})};var cb=function(a){var b=a.getBoundingClientRect(),c=a.ownerDocument,d=c.body,e=c.documentElement,f=e.clientTop||d.clientTop||0,h=e.clientLeft||d.clientLeft||0,i=b.top+(g.win.pageYOffset||e.scrollTop||d.scrollTop)-f,j=b.left+(g.win.pageXOffset||e.scrollLeft||d.scrollLeft)-h;return{y:i,x:j}};return c.getElementByPoint=function(a,b){var c=this,d=(c.canvas,y.doc.elementFromPoint(a,b));if(y.win.opera&&"svg"==d.tagName){var e=cb(d),f=d.createSVGRect();f.x=a-e.x,f.y=b-e.y,f.width=f.height=1;var g=d.getIntersectionList(f,null);g.length&&(d=g[g.length-1])}return d?w(d):null},c.plugin=function(a){a(c,s,v,y,t)},y.win.Snap=c,c}(a||this);return d.plugin(function(d,e,f,g,h){function i(a,b){if(null==b){var c=!0;if(b=a.node.getAttribute("linearGradient"==a.type||"radialGradient"==a.type?"gradientTransform":"pattern"==a.type?"patternTransform":"transform"),!b)return new d.Matrix;b=d._.svgTransform2string(b)}else b=d._.rgTransform.test(b)?o(b).replace(/\.{3}|\u2026/g,a._.transform||""):d._.svgTransform2string(b),n(b,"array")&&(b=d.path?d.path.toString.call(b):o(b)),a._.transform=b;var e=d._.transform2matrix(b,a.getBBox(1));return c?e:void(a.matrix=e)}function j(a){function b(a,b){var c=q(a.node,b);c=c&&c.match(f),c=c&&c[2],c&&"#"==c.charAt()&&(c=c.substring(1),c&&(h[c]=(h[c]||[]).concat(function(c){var d={};d[b]=URL(c),q(a.node,d)})))}function c(a){var b=q(a.node,"xlink:href");b&&"#"==b.charAt()&&(b=b.substring(1),b&&(h[b]=(h[b]||[]).concat(function(b){a.attr("xlink:href","#"+b)})))}for(var d,e=a.selectAll("*"),f=/^\s*url\(("|'|)(.*)\1\)\s*$/,g=[],h={},i=0,j=e.length;j>i;i++){d=e[i],b(d,"fill"),b(d,"stroke"),b(d,"filter"),b(d,"mask"),b(d,"clip-path"),c(d);var k=q(d.node,"id");k&&(q(d.node,{id:d.id}),g.push({old:k,id:d.id}))}for(i=0,j=g.length;j>i;i++){var l=h[g[i].old];if(l)for(var m=0,n=l.length;n>m;m++)l[m](g[i].id)}}function k(a,b,c){return function(d){var e=d.slice(a,b);return 1==e.length&&(e=e[0]),c?c(e):e}}function l(a){return function(){var b=a?"<"+this.type:"",c=this.node.attributes,d=this.node.childNodes;if(a)for(var e=0,f=c.length;f>e;e++)b+=" "+c[e].name+'="'+c[e].value.replace(/"/g,'\\"')+'"';if(d.length){for(a&&(b+=">"),e=0,f=d.length;f>e;e++)3==d[e].nodeType?b+=d[e].nodeValue:1==d[e].nodeType&&(b+=u(d[e]).toString());a&&(b+="")}else a&&(b+="/>");return b}}var m=e.prototype,n=d.is,o=String,p=d._unit2px,q=d._.$,r=d._.make,s=d._.getSomeDefs,t="hasOwnProperty",u=d._.wrap;m.getBBox=function(a){if(!d.Matrix||!d.path)return this.node.getBBox();var b=this,c=new d.Matrix;if(b.removed)return d._.box();for(;"use"==b.type;)if(a||(c=c.add(b.transform().localMatrix.translate(b.attr("x")||0,b.attr("y")||0))),b.original)b=b.original;else{var e=b.attr("xlink:href");b=b.original=b.node.ownerDocument.getElementById(e.substring(e.indexOf("#")+1))}var f=b._,g=d.path.get[b.type]||d.path.get.deflt;try{return a?(f.bboxwt=g?d.path.getBBox(b.realPath=g(b)):d._.box(b.node.getBBox()),d._.box(f.bboxwt)):(b.realPath=g(b),b.matrix=b.transform().localMatrix,f.bbox=d.path.getBBox(d.path.map(b.realPath,c.add(b.matrix))),d._.box(f.bbox))}catch(h){return d._.box()}};var v=function(){return this.string};m.transform=function(a){var b=this._;if(null==a){for(var c,e=this,f=new d.Matrix(this.node.getCTM()),g=i(this),h=[g],j=new d.Matrix,k=g.toTransformString(),l=o(g)==o(this.matrix)?o(b.transform):k;"svg"!=e.type&&(e=e.parent());)h.push(i(e));for(c=h.length;c--;)j.add(h[c]);return{string:l,globalMatrix:f,totalMatrix:j,localMatrix:g,diffMatrix:f.clone().add(g.invert()),global:f.toTransformString(),total:j.toTransformString(),local:k,toString:v}}return a instanceof d.Matrix?(this.matrix=a,this._.transform=a.toTransformString()):i(this,a),this.node&&("linearGradient"==this.type||"radialGradient"==this.type?q(this.node,{gradientTransform:this.matrix}):"pattern"==this.type?q(this.node,{patternTransform:this.matrix}):q(this.node,{transform:this.matrix})),this},m.parent=function(){return u(this.node.parentNode)},m.append=m.add=function(a){if(a){if("set"==a.type){var b=this;return a.forEach(function(a){b.add(a)}),this}a=u(a),this.node.appendChild(a.node),a.paper=this.paper}return this},m.appendTo=function(a){return a&&(a=u(a),a.append(this)),this},m.prepend=function(a){if(a){if("set"==a.type){var b,c=this;return a.forEach(function(a){b?b.after(a):c.prepend(a),b=a}),this}a=u(a);var d=a.parent();this.node.insertBefore(a.node,this.node.firstChild),this.add&&this.add(),a.paper=this.paper,this.parent()&&this.parent().add(),d&&d.add()}return this},m.prependTo=function(a){return a=u(a),a.prepend(this),this},m.before=function(a){if("set"==a.type){var b=this;return a.forEach(function(a){var c=a.parent();b.node.parentNode.insertBefore(a.node,b.node),c&&c.add()}),this.parent().add(),this}a=u(a);var c=a.parent();return this.node.parentNode.insertBefore(a.node,this.node),this.parent()&&this.parent().add(),c&&c.add(),a.paper=this.paper,this},m.after=function(a){a=u(a);var b=a.parent();return this.node.nextSibling?this.node.parentNode.insertBefore(a.node,this.node.nextSibling):this.node.parentNode.appendChild(a.node),this.parent()&&this.parent().add(),b&&b.add(),a.paper=this.paper,this},m.insertBefore=function(a){a=u(a);var b=this.parent();return a.node.parentNode.insertBefore(this.node,a.node),this.paper=a.paper,b&&b.add(),a.parent()&&a.parent().add(),this},m.insertAfter=function(a){a=u(a);var b=this.parent();return a.node.parentNode.insertBefore(this.node,a.node.nextSibling),this.paper=a.paper,b&&b.add(),a.parent()&&a.parent().add(),this},m.remove=function(){var a=this.parent();return this.node.parentNode&&this.node.parentNode.removeChild(this.node),delete this.paper,this.removed=!0,a&&a.add(),this},m.select=function(a){return u(this.node.querySelector(a))},m.selectAll=function(a){for(var b=this.node.querySelectorAll(a),c=(d.set||Array)(),e=0;eb;b++)a[b].stop();return this},m.animate=function(a,d,e,f){"function"!=typeof e||e.length||(f=e,e=c.linear),a instanceof w&&(f=a.callback,e=a.easing,d=a.dur,a=a.attr);var g,h,i,j,l=[],m=[],p={},q=this;for(var r in a)if(a[t](r)){q.equal?(j=q.equal(r,o(a[r])),g=j.from,h=j.to,i=j.f):(g=+q.attr(r),h=+a[r]);var s=n(g,"array")?g.length:1;p[r]=k(l.length,l.length+s,i),l=l.concat(g),m=m.concat(h)}var u=c.time(),v=c(l,m,u,u+d,c.time,function(a){var b={};for(var c in p)p[t](c)&&(b[c]=p[c](a));q.attr(b)},e);return q.anims[v.id]=v,v._attrs=a,v._callback=f,b("snap.animcreated."+q.id,v),b.once("mina.finish."+v.id,function(){delete q.anims[v.id],f&&f.call(q)}),b.once("mina.stop."+v.id,function(){delete q.anims[v.id]}),q};var x={};m.data=function(a,c){var e=x[this.id]=x[this.id]||{};if(0==arguments.length)return b("snap.data.get."+this.id,this,e,null),e; +if(1==arguments.length){if(d.is(a,"object")){for(var f in a)a[t](f)&&this.data(f,a[f]);return this}return b("snap.data.get."+this.id,this,e[a],a),e[a]}return e[a]=c,b("snap.data.set."+this.id,this,c,a),this},m.removeData=function(a){return null==a?x[this.id]={}:x[this.id]&&delete x[this.id][a],this},m.outerSVG=m.toString=l(1),m.innerSVG=l(),m.toDataURL=function(){if(a&&a.btoa){var b=this.getBBox(),c=d.format('{contents}',{x:+b.x.toFixed(3),y:+b.y.toFixed(3),width:+b.width.toFixed(3),height:+b.height.toFixed(3),contents:this.outerSVG()});return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(c)))}},h.prototype.select=m.select,h.prototype.selectAll=m.selectAll}),d.plugin(function(a){function b(a,b,d,e,f,g){return null==b&&"[object SVGMatrix]"==c.call(a)?(this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.e=a.e,void(this.f=a.f)):void(null!=a?(this.a=+a,this.b=+b,this.c=+d,this.d=+e,this.e=+f,this.f=+g):(this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0))}var c=Object.prototype.toString,d=String,e=Math,f="";!function(c){function g(a){return a[0]*a[0]+a[1]*a[1]}function h(a){var b=e.sqrt(g(a));a[0]&&(a[0]/=b),a[1]&&(a[1]/=b)}c.add=function(a,c,d,e,f,g){var h,i,j,k,l=[[],[],[]],m=[[this.a,this.c,this.e],[this.b,this.d,this.f],[0,0,1]],n=[[a,d,f],[c,e,g],[0,0,1]];for(a&&a instanceof b&&(n=[[a.a,a.c,a.e],[a.b,a.d,a.f],[0,0,1]]),h=0;3>h;h++)for(i=0;3>i;i++){for(k=0,j=0;3>j;j++)k+=m[h][j]*n[j][i];l[h][i]=k}return this.a=l[0][0],this.b=l[1][0],this.c=l[0][1],this.d=l[1][1],this.e=l[0][2],this.f=l[1][2],this},c.invert=function(){var a=this,c=a.a*a.d-a.b*a.c;return new b(a.d/c,-a.b/c,-a.c/c,a.a/c,(a.c*a.f-a.d*a.e)/c,(a.b*a.e-a.a*a.f)/c)},c.clone=function(){return new b(this.a,this.b,this.c,this.d,this.e,this.f)},c.translate=function(a,b){return this.add(1,0,0,1,a,b)},c.scale=function(a,b,c,d){return null==b&&(b=a),(c||d)&&this.add(1,0,0,1,c,d),this.add(a,0,0,b,0,0),(c||d)&&this.add(1,0,0,1,-c,-d),this},c.rotate=function(b,c,d){b=a.rad(b),c=c||0,d=d||0;var f=+e.cos(b).toFixed(9),g=+e.sin(b).toFixed(9);return this.add(f,g,-g,f,c,d),this.add(1,0,0,1,-c,-d)},c.x=function(a,b){return a*this.a+b*this.c+this.e},c.y=function(a,b){return a*this.b+b*this.d+this.f},c.get=function(a){return+this[d.fromCharCode(97+a)].toFixed(4)},c.toString=function(){return"matrix("+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)].join()+")"},c.offset=function(){return[this.e.toFixed(4),this.f.toFixed(4)]},c.determinant=function(){return this.a*this.d-this.b*this.c},c.split=function(){var b={};b.dx=this.e,b.dy=this.f;var c=[[this.a,this.c],[this.b,this.d]];b.scalex=e.sqrt(g(c[0])),h(c[0]),b.shear=c[0][0]*c[1][0]+c[0][1]*c[1][1],c[1]=[c[1][0]-c[0][0]*b.shear,c[1][1]-c[0][1]*b.shear],b.scaley=e.sqrt(g(c[1])),h(c[1]),b.shear/=b.scaley,this.determinant()<0&&(b.scalex=-b.scalex);var d=-c[0][1],f=c[1][1];return 0>f?(b.rotate=a.deg(e.acos(f)),0>d&&(b.rotate=360-b.rotate)):b.rotate=a.deg(e.asin(d)),b.isSimple=!(+b.shear.toFixed(9)||b.scalex.toFixed(9)!=b.scaley.toFixed(9)&&b.rotate),b.isSuperSimple=!+b.shear.toFixed(9)&&b.scalex.toFixed(9)==b.scaley.toFixed(9)&&!b.rotate,b.noRotation=!+b.shear.toFixed(9)&&!b.rotate,b},c.toTransformString=function(a){var b=a||this.split();return+b.shear.toFixed(9)?"m"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)]:(b.scalex=+b.scalex.toFixed(4),b.scaley=+b.scaley.toFixed(4),b.rotate=+b.rotate.toFixed(4),(b.dx||b.dy?"t"+[+b.dx.toFixed(4),+b.dy.toFixed(4)]:f)+(1!=b.scalex||1!=b.scaley?"s"+[b.scalex,b.scaley,0,0]:f)+(b.rotate?"r"+[+b.rotate.toFixed(4),0,0]:f))}}(b.prototype),a.Matrix=b,a.matrix=function(a,c,d,e,f,g){return new b(a,c,d,e,f,g)}}),d.plugin(function(a,c,d,e,f){function g(d){return function(e){if(b.stop(),e instanceof f&&1==e.node.childNodes.length&&("radialGradient"==e.node.firstChild.tagName||"linearGradient"==e.node.firstChild.tagName||"pattern"==e.node.firstChild.tagName)&&(e=e.node.firstChild,n(this).appendChild(e),e=l(e)),e instanceof c)if("radialGradient"==e.type||"linearGradient"==e.type||"pattern"==e.type){e.node.id||p(e.node,{id:e.id});var g=q(e.node.id)}else g=e.attr(d);else if(g=a.color(e),g.error){var h=a(n(this).ownerSVGElement).gradient(e);h?(h.node.id||p(h.node,{id:h.id}),g=q(h.node.id)):g=e}else g=r(g);var i={};i[d]=g,p(this.node,i),this.node.style[d]=t}}function h(a){b.stop(),a==+a&&(a+="px"),this.node.style.fontSize=a}function i(a){for(var b=[],c=a.childNodes,d=0,e=c.length;e>d;d++){var f=c[d];3==f.nodeType&&b.push(f.nodeValue),"tspan"==f.tagName&&b.push(1==f.childNodes.length&&3==f.firstChild.nodeType?f.firstChild.nodeValue:i(f))}return b}function j(){return b.stop(),this.node.style.fontSize}var k=a._.make,l=a._.wrap,m=a.is,n=a._.getSomeDefs,o=/^url\(#?([^)]+)\)$/,p=a._.$,q=a.url,r=String,s=a._.separator,t="";b.on("snap.util.attr.mask",function(a){if(a instanceof c||a instanceof f){if(b.stop(),a instanceof f&&1==a.node.childNodes.length&&(a=a.node.firstChild,n(this).appendChild(a),a=l(a)),"mask"==a.type)var d=a;else d=k("mask",n(this)),d.node.appendChild(a.node);!d.node.id&&p(d.node,{id:d.id}),p(this.node,{mask:q(d.id)})}}),function(a){b.on("snap.util.attr.clip",a),b.on("snap.util.attr.clip-path",a),b.on("snap.util.attr.clipPath",a)}(function(a){if(a instanceof c||a instanceof f){if(b.stop(),"clipPath"==a.type)var d=a;else d=k("clipPath",n(this)),d.node.appendChild(a.node),!d.node.id&&p(d.node,{id:d.id});p(this.node,{"clip-path":q(d.node.id||d.id)})}}),b.on("snap.util.attr.fill",g("fill")),b.on("snap.util.attr.stroke",g("stroke"));var u=/^([lr])(?:\(([^)]*)\))?(.*)$/i;b.on("snap.util.grad.parse",function(a){a=r(a);var b=a.match(u);if(!b)return null;var c=b[1],d=b[2],e=b[3];return d=d.split(/\s*,\s*/).map(function(a){return+a==a?+a:a}),1==d.length&&0==d[0]&&(d=[]),e=e.split("-"),e=e.map(function(a){a=a.split(":");var b={color:a[0]};return a[1]&&(b.offset=parseFloat(a[1])),b}),{type:c,params:d,stops:e}}),b.on("snap.util.attr.d",function(c){b.stop(),m(c,"array")&&m(c[0],"array")&&(c=a.path.toString.call(c)),c=r(c),c.match(/[ruo]/i)&&(c=a.path.toAbsolute(c)),p(this.node,{d:c})})(-1),b.on("snap.util.attr.#text",function(a){b.stop(),a=r(a);for(var c=e.doc.createTextNode(a);this.node.firstChild;)this.node.removeChild(this.node.firstChild);this.node.appendChild(c)})(-1),b.on("snap.util.attr.path",function(a){b.stop(),this.attr({d:a})})(-1),b.on("snap.util.attr.class",function(a){b.stop(),this.node.className.baseVal=a})(-1),b.on("snap.util.attr.viewBox",function(a){var c;c=m(a,"object")&&"x"in a?[a.x,a.y,a.width,a.height].join(" "):m(a,"array")?a.join(" "):a,p(this.node,{viewBox:c}),b.stop()})(-1),b.on("snap.util.attr.transform",function(a){this.transform(a),b.stop()})(-1),b.on("snap.util.attr.r",function(a){"rect"==this.type&&(b.stop(),p(this.node,{rx:a,ry:a}))})(-1),b.on("snap.util.attr.textpath",function(a){if(b.stop(),"text"==this.type){var d,e,f;if(!a&&this.textPath){for(e=this.textPath;e.node.firstChild;)this.node.appendChild(e.node.firstChild);return e.remove(),void delete this.textPath}if(m(a,"string")){var g=n(this),h=l(g.parentNode).path(a);g.appendChild(h.node),d=h.id,h.attr({id:d})}else a=l(a),a instanceof c&&(d=a.attr("id"),d||(d=a.id,a.attr({id:d})));if(d)if(e=this.textPath,f=this.node,e)e.attr({"xlink:href":"#"+d});else{for(e=p("textPath",{"xlink:href":"#"+d});f.firstChild;)e.appendChild(f.firstChild);f.appendChild(e),this.textPath=l(e)}}})(-1),b.on("snap.util.attr.text",function(a){if("text"==this.type){for(var c=this.node,d=function(a){var b=p("tspan");if(m(a,"array"))for(var c=0;c1&&(a=Array.prototype.slice.call(arguments,0));var b={};return h(a,"object")&&!h(a,"array")?b=a:null!=a&&(b={points:a}),this.el("polyline",b)},g.polygon=function(a){arguments.length>1&&(a=Array.prototype.slice.call(arguments,0));var b={};return h(a,"object")&&!h(a,"array")?b=a:null!=a&&(b={points:a}),this.el("polygon",b)},function(){function d(){return this.selectAll("stop")}function e(a,b){var d=k("stop"),e={offset:+b+"%"};return a=c.color(a),e["stop-color"]=a.hex,a.opacity<1&&(e["stop-opacity"]=a.opacity),k(d,e),this.node.appendChild(d),this}function f(){if("linearGradient"==this.type){var a=k(this.node,"x1")||0,b=k(this.node,"x2")||1,d=k(this.node,"y1")||0,e=k(this.node,"y2")||0;return c._.box(a,d,math.abs(b-a),math.abs(e-d))}var f=this.node.cx||.5,g=this.node.cy||.5,h=this.node.r||0;return c._.box(f-h,g-h,2*h,2*h)}function h(a,c){function d(a,b){for(var c=(b-l)/(a-m),d=m;a>d;d++)g[d].offset=+(+l+c*(d-m)).toFixed(2);m=a,l=b}var e,f=b("snap.util.grad.parse",null,c).firstDefined();if(!f)return null;f.params.unshift(a),e="l"==f.type.toLowerCase()?i.apply(0,f.params):j.apply(0,f.params),f.type!=f.type.toLowerCase()&&k(e.node,{gradientUnits:"userSpaceOnUse"});var g=f.stops,h=g.length,l=0,m=0;h--;for(var n=0;h>n;n++)"offset"in g[n]&&d(n,g[n].offset);for(g[h].offset=g[h].offset||100,d(h,g[h].offset),n=0;h>=n;n++){var o=g[n];e.addStop(o.color,o.offset)}return e}function i(a,b,g,h,i){var j=c._.make("linearGradient",a);return j.stops=d,j.addStop=e,j.getBBox=f,null!=b&&k(j.node,{x1:b,y1:g,x2:h,y2:i}),j}function j(a,b,g,h,i,j){var l=c._.make("radialGradient",a);return l.stops=d,l.addStop=e,l.getBBox=f,null!=b&&k(l.node,{cx:b,cy:g,r:h}),null!=i&&null!=j&&k(l.node,{fx:i,fy:j}),l}var k=c._.$;g.gradient=function(a){return h(this.defs,a)},g.gradientLinear=function(a,b,c,d){return i(this.defs,a,b,c,d)},g.gradientRadial=function(a,b,c,d,e){return j(this.defs,a,b,c,d,e)},g.toString=function(){var a,b=this.node.ownerDocument,d=b.createDocumentFragment(),e=b.createElement("div"),f=this.node.cloneNode(!0);return d.appendChild(e),e.appendChild(f),c._.$(f,{xmlns:"http://www.w3.org/2000/svg"}),a=e.innerHTML,d.removeChild(d.firstChild),a},g.toDataURL=function(){return a&&a.btoa?"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(this))):void 0},g.clear=function(){for(var a,b=this.node.firstChild;b;)a=b.nextSibling,"defs"!=b.tagName?b.parentNode.removeChild(b):g.clear.call({node:b}),b=a}}()}),d.plugin(function(a,b){function c(a){var b=c.ps=c.ps||{};return b[a]?b[a].sleep=100:b[a]={sleep:100},setTimeout(function(){for(var c in b)b[K](c)&&c!=a&&(b[c].sleep--,!b[c].sleep&&delete b[c])}),b[a]}function d(a,b,c,d){return null==a&&(a=b=c=d=0),null==b&&(b=a.y,c=a.width,d=a.height,a=a.x),{x:a,y:b,width:c,w:c,height:d,h:d,x2:a+c,y2:b+d,cx:a+c/2,cy:b+d/2,r1:N.min(c,d)/2,r2:N.max(c,d)/2,r0:N.sqrt(c*c+d*d)/2,path:w(a,b,c,d),vb:[a,b,c,d].join(" ")}}function e(){return this.join(",").replace(L,"$1")}function f(a){var b=J(a);return b.toString=e,b}function g(a,b,c,d,e,f,g,h,j){return null==j?n(a,b,c,d,e,f,g,h):i(a,b,c,d,e,f,g,h,o(a,b,c,d,e,f,g,h,j))}function h(c,d){function e(a){return+(+a).toFixed(3)}return a._.cacher(function(a,f,h){a instanceof b&&(a=a.attr("d")),a=E(a);for(var j,k,l,m,n,o="",p={},q=0,r=0,s=a.length;s>r;r++){if(l=a[r],"M"==l[0])j=+l[1],k=+l[2];else{if(m=g(j,k,l[1],l[2],l[3],l[4],l[5],l[6]),q+m>f){if(d&&!p.start){if(n=g(j,k,l[1],l[2],l[3],l[4],l[5],l[6],f-q),o+=["C"+e(n.start.x),e(n.start.y),e(n.m.x),e(n.m.y),e(n.x),e(n.y)],h)return o;p.start=o,o=["M"+e(n.x),e(n.y)+"C"+e(n.n.x),e(n.n.y),e(n.end.x),e(n.end.y),e(l[5]),e(l[6])].join(),q+=m,j=+l[5],k=+l[6];continue}if(!c&&!d)return n=g(j,k,l[1],l[2],l[3],l[4],l[5],l[6],f-q)}q+=m,j=+l[5],k=+l[6]}o+=l.shift()+l}return p.end=o,n=c?q:d?p:i(j,k,l[0],l[1],l[2],l[3],l[4],l[5],1)},null,a._.clone)}function i(a,b,c,d,e,f,g,h,i){var j=1-i,k=R(j,3),l=R(j,2),m=i*i,n=m*i,o=k*a+3*l*i*c+3*j*i*i*e+n*g,p=k*b+3*l*i*d+3*j*i*i*f+n*h,q=a+2*i*(c-a)+m*(e-2*c+a),r=b+2*i*(d-b)+m*(f-2*d+b),s=c+2*i*(e-c)+m*(g-2*e+c),t=d+2*i*(f-d)+m*(h-2*f+d),u=j*a+i*c,v=j*b+i*d,w=j*e+i*g,x=j*f+i*h,y=90-180*N.atan2(q-s,r-t)/O;return{x:o,y:p,m:{x:q,y:r},n:{x:s,y:t},start:{x:u,y:v},end:{x:w,y:x},alpha:y}}function j(b,c,e,f,g,h,i,j){a.is(b,"array")||(b=[b,c,e,f,g,h,i,j]);var k=D.apply(null,b);return d(k.min.x,k.min.y,k.max.x-k.min.x,k.max.y-k.min.y)}function k(a,b,c){return b>=a.x&&b<=a.x+a.width&&c>=a.y&&c<=a.y+a.height}function l(a,b){return a=d(a),b=d(b),k(b,a.x,a.y)||k(b,a.x2,a.y)||k(b,a.x,a.y2)||k(b,a.x2,a.y2)||k(a,b.x,b.y)||k(a,b.x2,b.y)||k(a,b.x,b.y2)||k(a,b.x2,b.y2)||(a.xb.x||b.xa.x)&&(a.yb.y||b.ya.y)}function m(a,b,c,d,e){var f=-3*b+9*c-9*d+3*e,g=a*f+6*b-12*c+6*d;return a*g-3*b+3*c}function n(a,b,c,d,e,f,g,h,i){null==i&&(i=1),i=i>1?1:0>i?0:i;for(var j=i/2,k=12,l=[-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816],n=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472],o=0,p=0;k>p;p++){var q=j*l[p]+j,r=m(q,a,c,e,g),s=m(q,b,d,f,h),t=r*r+s*s;o+=n[p]*N.sqrt(t)}return j*o}function o(a,b,c,d,e,f,g,h,i){if(!(0>i||n(a,b,c,d,e,f,g,h)o;)l/=2,m+=(i>j?1:-1)*l,j=n(a,b,c,d,e,f,g,h,m);return m}}function p(a,b,c,d,e,f,g,h){if(!(Q(a,c)Q(e,g)||Q(b,d)Q(f,h))){var i=(a*d-b*c)*(e-g)-(a-c)*(e*h-f*g),j=(a*d-b*c)*(f-h)-(b-d)*(e*h-f*g),k=(a-c)*(f-h)-(b-d)*(e-g);if(k){var l=i/k,m=j/k,n=+l.toFixed(2),o=+m.toFixed(2);if(!(n<+P(a,c).toFixed(2)||n>+Q(a,c).toFixed(2)||n<+P(e,g).toFixed(2)||n>+Q(e,g).toFixed(2)||o<+P(b,d).toFixed(2)||o>+Q(b,d).toFixed(2)||o<+P(f,h).toFixed(2)||o>+Q(f,h).toFixed(2)))return{x:l,y:m}}}}function q(a,b,c){var d=j(a),e=j(b);if(!l(d,e))return c?0:[];for(var f=n.apply(0,a),g=n.apply(0,b),h=~~(f/8),k=~~(g/8),m=[],o=[],q={},r=c?0:[],s=0;h+1>s;s++){var t=i.apply(0,a.concat(s/h));m.push({x:t.x,y:t.y,t:s/h})}for(s=0;k+1>s;s++)t=i.apply(0,b.concat(s/k)),o.push({x:t.x,y:t.y,t:s/k});for(s=0;h>s;s++)for(var u=0;k>u;u++){var v=m[s],w=m[s+1],x=o[u],y=o[u+1],z=S(w.x-v.x)<.001?"y":"x",A=S(y.x-x.x)<.001?"y":"x",B=p(v.x,v.y,w.x,w.y,x.x,x.y,y.x,y.y);if(B){if(q[B.x.toFixed(4)]==B.y.toFixed(4))continue;q[B.x.toFixed(4)]=B.y.toFixed(4);var C=v.t+S((B[z]-v[z])/(w[z]-v[z]))*(w.t-v.t),D=x.t+S((B[A]-x[A])/(y[A]-x[A]))*(y.t-x.t);C>=0&&1>=C&&D>=0&&1>=D&&(c?r++:r.push({x:B.x,y:B.y,t1:C,t2:D}))}}return r}function r(a,b){return t(a,b)}function s(a,b){return t(a,b,1)}function t(a,b,c){a=E(a),b=E(b);for(var d,e,f,g,h,i,j,k,l,m,n=c?0:[],o=0,p=a.length;p>o;o++){var r=a[o];if("M"==r[0])d=h=r[1],e=i=r[2];else{"C"==r[0]?(l=[d,e].concat(r.slice(1)),d=l[6],e=l[7]):(l=[d,e,d,e,h,i,h,i],d=h,e=i);for(var s=0,t=b.length;t>s;s++){var u=b[s];if("M"==u[0])f=j=u[1],g=k=u[2];else{"C"==u[0]?(m=[f,g].concat(u.slice(1)),f=m[6],g=m[7]):(m=[f,g,f,g,j,k,j,k],f=j,g=k);var v=q(l,m,c);if(c)n+=v;else{for(var w=0,x=v.length;x>w;w++)v[w].segment1=o,v[w].segment2=s,v[w].bez1=l,v[w].bez2=m;n=n.concat(v)}}}}}return n}function u(a,b,c){var d=v(a);return k(d,b,c)&&t(a,[["M",b,c],["H",d.x2+10]],1)%2==1}function v(a){var b=c(a);if(b.bbox)return J(b.bbox);if(!a)return d();a=E(a);for(var e,f=0,g=0,h=[],i=[],j=0,k=a.length;k>j;j++)if(e=a[j],"M"==e[0])f=e[1],g=e[2],h.push(f),i.push(g);else{var l=D(f,g,e[1],e[2],e[3],e[4],e[5],e[6]);h=h.concat(l.min.x,l.max.x),i=i.concat(l.min.y,l.max.y),f=e[5],g=e[6]}var m=P.apply(0,h),n=P.apply(0,i),o=Q.apply(0,h),p=Q.apply(0,i),q=d(m,n,o-m,p-n);return b.bbox=J(q),q}function w(a,b,c,d,f){if(f)return[["M",+a+ +f,b],["l",c-2*f,0],["a",f,f,0,0,1,f,f],["l",0,d-2*f],["a",f,f,0,0,1,-f,f],["l",2*f-c,0],["a",f,f,0,0,1,-f,-f],["l",0,2*f-d],["a",f,f,0,0,1,f,-f],["z"]];var g=[["M",a,b],["l",c,0],["l",0,d],["l",-c,0],["z"]];return g.toString=e,g}function x(a,b,c,d,f){if(null==f&&null==d&&(d=c),a=+a,b=+b,c=+c,d=+d,null!=f)var g=Math.PI/180,h=a+c*Math.cos(-d*g),i=a+c*Math.cos(-f*g),j=b+c*Math.sin(-d*g),k=b+c*Math.sin(-f*g),l=[["M",h,j],["A",c,c,0,+(f-d>180),0,i,k]];else l=[["M",a,b],["m",0,-d],["a",c,d,0,1,1,0,2*d],["a",c,d,0,1,1,0,-2*d],["z"]];return l.toString=e,l}function y(b){var d=c(b),g=String.prototype.toLowerCase;if(d.rel)return f(d.rel);a.is(b,"array")&&a.is(b&&b[0],"array")||(b=a.parsePathString(b));var h=[],i=0,j=0,k=0,l=0,m=0;"M"==b[0][0]&&(i=b[0][1],j=b[0][2],k=i,l=j,m++,h.push(["M",i,j]));for(var n=m,o=b.length;o>n;n++){var p=h[n]=[],q=b[n];if(q[0]!=g.call(q[0]))switch(p[0]=g.call(q[0]),p[0]){case"a":p[1]=q[1],p[2]=q[2],p[3]=q[3],p[4]=q[4],p[5]=q[5],p[6]=+(q[6]-i).toFixed(3),p[7]=+(q[7]-j).toFixed(3);break;case"v":p[1]=+(q[1]-j).toFixed(3);break;case"m":k=q[1],l=q[2];default:for(var r=1,s=q.length;s>r;r++)p[r]=+(q[r]-(r%2?i:j)).toFixed(3)}else{p=h[n]=[],"m"==q[0]&&(k=q[1]+i,l=q[2]+j);for(var t=0,u=q.length;u>t;t++)h[n][t]=q[t]}var v=h[n].length;switch(h[n][0]){case"z":i=k,j=l;break;case"h":i+=+h[n][v-1];break;case"v":j+=+h[n][v-1];break;default:i+=+h[n][v-2],j+=+h[n][v-1]}}return h.toString=e,d.rel=f(h),h}function z(b){var d=c(b);if(d.abs)return f(d.abs);if(I(b,"array")&&I(b&&b[0],"array")||(b=a.parsePathString(b)),!b||!b.length)return[["M",0,0]];var g,h=[],i=0,j=0,k=0,l=0,m=0;"M"==b[0][0]&&(i=+b[0][1],j=+b[0][2],k=i,l=j,m++,h[0]=["M",i,j]);for(var n,o,p=3==b.length&&"M"==b[0][0]&&"R"==b[1][0].toUpperCase()&&"Z"==b[2][0].toUpperCase(),q=m,r=b.length;r>q;q++){if(h.push(n=[]),o=b[q],g=o[0],g!=g.toUpperCase())switch(n[0]=g.toUpperCase(),n[0]){case"A":n[1]=o[1],n[2]=o[2],n[3]=o[3],n[4]=o[4],n[5]=o[5],n[6]=+o[6]+i,n[7]=+o[7]+j;break;case"V":n[1]=+o[1]+j;break;case"H":n[1]=+o[1]+i;break;case"R":for(var s=[i,j].concat(o.slice(1)),t=2,u=s.length;u>t;t++)s[t]=+s[t]+i,s[++t]=+s[t]+j;h.pop(),h=h.concat(G(s,p));break;case"O":h.pop(),s=x(i,j,o[1],o[2]),s.push(s[0]),h=h.concat(s);break;case"U":h.pop(),h=h.concat(x(i,j,o[1],o[2],o[3])),n=["U"].concat(h[h.length-1].slice(-2));break;case"M":k=+o[1]+i,l=+o[2]+j;default:for(t=1,u=o.length;u>t;t++)n[t]=+o[t]+(t%2?i:j)}else if("R"==g)s=[i,j].concat(o.slice(1)),h.pop(),h=h.concat(G(s,p)),n=["R"].concat(o.slice(-2));else if("O"==g)h.pop(),s=x(i,j,o[1],o[2]),s.push(s[0]),h=h.concat(s);else if("U"==g)h.pop(),h=h.concat(x(i,j,o[1],o[2],o[3])),n=["U"].concat(h[h.length-1].slice(-2));else for(var v=0,w=o.length;w>v;v++)n[v]=o[v];if(g=g.toUpperCase(),"O"!=g)switch(n[0]){case"Z":i=+k,j=+l;break;case"H":i=n[1];break;case"V":j=n[1];break;case"M":k=n[n.length-2],l=n[n.length-1];default:i=n[n.length-2],j=n[n.length-1]}}return h.toString=e,d.abs=f(h),h}function A(a,b,c,d){return[a,b,c,d,c,d]}function B(a,b,c,d,e,f){var g=1/3,h=2/3;return[g*a+h*c,g*b+h*d,g*e+h*c,g*f+h*d,e,f]}function C(b,c,d,e,f,g,h,i,j,k){var l,m=120*O/180,n=O/180*(+f||0),o=[],p=a._.cacher(function(a,b,c){var d=a*N.cos(c)-b*N.sin(c),e=a*N.sin(c)+b*N.cos(c);return{x:d,y:e}});if(k)y=k[0],z=k[1],w=k[2],x=k[3];else{l=p(b,c,-n),b=l.x,c=l.y,l=p(i,j,-n),i=l.x,j=l.y;var q=(N.cos(O/180*f),N.sin(O/180*f),(b-i)/2),r=(c-j)/2,s=q*q/(d*d)+r*r/(e*e);s>1&&(s=N.sqrt(s),d=s*d,e=s*e);var t=d*d,u=e*e,v=(g==h?-1:1)*N.sqrt(S((t*u-t*r*r-u*q*q)/(t*r*r+u*q*q))),w=v*d*r/e+(b+i)/2,x=v*-e*q/d+(c+j)/2,y=N.asin(((c-x)/e).toFixed(9)),z=N.asin(((j-x)/e).toFixed(9));y=w>b?O-y:y,z=w>i?O-z:z,0>y&&(y=2*O+y),0>z&&(z=2*O+z),h&&y>z&&(y-=2*O),!h&&z>y&&(z-=2*O)}var A=z-y;if(S(A)>m){var B=z,D=i,E=j;z=y+m*(h&&z>y?1:-1),i=w+d*N.cos(z),j=x+e*N.sin(z),o=C(i,j,d,e,f,0,h,D,E,[z,B,w,x])}A=z-y;var F=N.cos(y),G=N.sin(y),H=N.cos(z),I=N.sin(z),J=N.tan(A/4),K=4/3*d*J,L=4/3*e*J,M=[b,c],P=[b+K*G,c-L*F],Q=[i+K*I,j-L*H],R=[i,j];if(P[0]=2*M[0]-P[0],P[1]=2*M[1]-P[1],k)return[P,Q,R].concat(o);o=[P,Q,R].concat(o).join().split(",");for(var T=[],U=0,V=o.length;V>U;U++)T[U]=U%2?p(o[U-1],o[U],n).y:p(o[U],o[U+1],n).x;return T}function D(a,b,c,d,e,f,g,h){for(var i,j,k,l,m,n,o,p,q=[],r=[[],[]],s=0;2>s;++s)if(0==s?(j=6*a-12*c+6*e,i=-3*a+9*c-9*e+3*g,k=3*c-3*a):(j=6*b-12*d+6*f,i=-3*b+9*d-9*f+3*h,k=3*d-3*b),S(i)<1e-12){if(S(j)<1e-12)continue;l=-k/j,l>0&&1>l&&q.push(l)}else o=j*j-4*k*i,p=N.sqrt(o),0>o||(m=(-j+p)/(2*i),m>0&&1>m&&q.push(m),n=(-j-p)/(2*i),n>0&&1>n&&q.push(n));for(var t,u=q.length,v=u;u--;)l=q[u],t=1-l,r[0][u]=t*t*t*a+3*t*t*l*c+3*t*l*l*e+l*l*l*g,r[1][u]=t*t*t*b+3*t*t*l*d+3*t*l*l*f+l*l*l*h;return r[0][v]=a,r[1][v]=b,r[0][v+1]=g,r[1][v+1]=h,r[0].length=r[1].length=v+2,{min:{x:P.apply(0,r[0]),y:P.apply(0,r[1])},max:{x:Q.apply(0,r[0]),y:Q.apply(0,r[1])}}}function E(a,b){var d=!b&&c(a);if(!b&&d.curve)return f(d.curve);for(var e=z(a),g=b&&z(b),h={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},i={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},j=(function(a,b,c){var d,e;if(!a)return["C",b.x,b.y,b.x,b.y,b.x,b.y];switch(!(a[0]in{T:1,Q:1})&&(b.qx=b.qy=null),a[0]){case"M":b.X=a[1],b.Y=a[2];break;case"A":a=["C"].concat(C.apply(0,[b.x,b.y].concat(a.slice(1))));break;case"S":"C"==c||"S"==c?(d=2*b.x-b.bx,e=2*b.y-b.by):(d=b.x,e=b.y),a=["C",d,e].concat(a.slice(1));break;case"T":"Q"==c||"T"==c?(b.qx=2*b.x-b.qx,b.qy=2*b.y-b.qy):(b.qx=b.x,b.qy=b.y),a=["C"].concat(B(b.x,b.y,b.qx,b.qy,a[1],a[2]));break;case"Q":b.qx=a[1],b.qy=a[2],a=["C"].concat(B(b.x,b.y,a[1],a[2],a[3],a[4]));break;case"L":a=["C"].concat(A(b.x,b.y,a[1],a[2]));break;case"H":a=["C"].concat(A(b.x,b.y,a[1],b.y));break;case"V":a=["C"].concat(A(b.x,b.y,b.x,a[1]));break;case"Z":a=["C"].concat(A(b.x,b.y,b.X,b.Y))}return a}),k=function(a,b){if(a[b].length>7){a[b].shift();for(var c=a[b];c.length;)m[b]="A",g&&(n[b]="A"),a.splice(b++,0,["C"].concat(c.splice(0,6)));a.splice(b,1),r=Q(e.length,g&&g.length||0)}},l=function(a,b,c,d,f){a&&b&&"M"==a[f][0]&&"M"!=b[f][0]&&(b.splice(f,0,["M",d.x,d.y]),c.bx=0,c.by=0,c.x=a[f][1],c.y=a[f][2],r=Q(e.length,g&&g.length||0))},m=[],n=[],o="",p="",q=0,r=Q(e.length,g&&g.length||0);r>q;q++){e[q]&&(o=e[q][0]),"C"!=o&&(m[q]=o,q&&(p=m[q-1])),e[q]=j(e[q],h,p),"A"!=m[q]&&"C"==o&&(m[q]="C"),k(e,q),g&&(g[q]&&(o=g[q][0]),"C"!=o&&(n[q]=o,q&&(p=n[q-1])),g[q]=j(g[q],i,p),"A"!=n[q]&&"C"==o&&(n[q]="C"),k(g,q)),l(e,g,h,i,q),l(g,e,i,h,q);var s=e[q],t=g&&g[q],u=s.length,v=g&&t.length;h.x=s[u-2],h.y=s[u-1],h.bx=M(s[u-4])||h.x,h.by=M(s[u-3])||h.y,i.bx=g&&(M(t[v-4])||i.x),i.by=g&&(M(t[v-3])||i.y),i.x=g&&t[v-2],i.y=g&&t[v-1]}return g||(d.curve=f(e)),g?[e,g]:e}function F(a,b){if(!b)return a;var c,d,e,f,g,h,i;for(a=E(a),e=0,g=a.length;g>e;e++)for(i=a[e],f=1,h=i.length;h>f;f+=2)c=b.x(i[f],i[f+1]),d=b.y(i[f],i[f+1]),i[f]=c,i[f+1]=d;return a}function G(a,b){for(var c=[],d=0,e=a.length;e-2*!b>d;d+=2){var f=[{x:+a[d-2],y:+a[d-1]},{x:+a[d],y:+a[d+1]},{x:+a[d+2],y:+a[d+3]},{x:+a[d+4],y:+a[d+5]}];b?d?e-4==d?f[3]={x:+a[0],y:+a[1]}:e-2==d&&(f[2]={x:+a[0],y:+a[1]},f[3]={x:+a[2],y:+a[3]}):f[0]={x:+a[e-2],y:+a[e-1]}:e-4==d?f[3]=f[2]:d||(f[0]={x:+a[d],y:+a[d+1]}),c.push(["C",(-f[0].x+6*f[1].x+f[2].x)/6,(-f[0].y+6*f[1].y+f[2].y)/6,(f[1].x+6*f[2].x-f[3].x)/6,(f[1].y+6*f[2].y-f[3].y)/6,f[2].x,f[2].y])}return c}var H=b.prototype,I=a.is,J=a._.clone,K="hasOwnProperty",L=/,?([a-z]),?/gi,M=parseFloat,N=Math,O=N.PI,P=N.min,Q=N.max,R=N.pow,S=N.abs,T=h(1),U=h(),V=h(0,1),W=a._unit2px,X={path:function(a){return a.attr("path")},circle:function(a){var b=W(a);return x(b.cx,b.cy,b.r)},ellipse:function(a){var b=W(a);return x(b.cx||0,b.cy||0,b.rx,b.ry)},rect:function(a){var b=W(a);return w(b.x||0,b.y||0,b.width,b.height,b.rx,b.ry)},image:function(a){var b=W(a);return w(b.x||0,b.y||0,b.width,b.height)},line:function(a){return"M"+[a.attr("x1")||0,a.attr("y1")||0,a.attr("x2"),a.attr("y2")]},polyline:function(a){return"M"+a.attr("points")},polygon:function(a){return"M"+a.attr("points")+"z"},deflt:function(a){var b=a.node.getBBox();return w(b.x,b.y,b.width,b.height)}};a.path=c,a.path.getTotalLength=T,a.path.getPointAtLength=U,a.path.getSubpath=function(a,b,c){if(this.getTotalLength(a)-c<1e-6)return V(a,b).end;var d=V(a,c,1);return b?V(d,b).end:d},H.getTotalLength=function(){return this.node.getTotalLength?this.node.getTotalLength():void 0},H.getPointAtLength=function(a){return U(this.attr("d"),a)},H.getSubpath=function(b,c){return a.path.getSubpath(this.attr("d"),b,c)},a._.box=d,a.path.findDotsAtSegment=i,a.path.bezierBBox=j,a.path.isPointInsideBBox=k,a.closest=function(b,c,e,f){for(var g=100,h=d(b-g/2,c-g/2,g,g),i=[],j=e[0].hasOwnProperty("x")?function(a){return{x:e[a].x,y:e[a].y}}:function(a){return{x:e[a],y:f[a]}},l=0;1e6>=g&&!l;){for(var m=0,n=e.length;n>m;m++){var o=j(m);if(k(h,o.x,o.y)){l++,i.push(o);break}}l||(g*=2,h=d(b-g/2,c-g/2,g,g))}if(1e6!=g){var p,q=1/0;for(m=0,n=i.length;n>m;m++){var r=a.len(b,c,i[m].x,i[m].y);q>r&&(q=r,i[m].len=r,p=i[m])}return p}},a.path.isBBoxIntersect=l,a.path.intersection=r,a.path.intersectionNumber=s,a.path.isPointInside=u,a.path.getBBox=v,a.path.get=X,a.path.toRelative=y,a.path.toAbsolute=z,a.path.toCubic=E,a.path.map=F,a.path.toString=e,a.path.clone=f}),d.plugin(function(a){var d=Math.max,e=Math.min,f=function(a){if(this.items=[],this.bindings={},this.length=0,this.type="set",a)for(var b=0,c=a.length;c>b;b++)a[b]&&(this[this.items.length]=this.items[this.items.length]=a[b],this.length++)},g=f.prototype;g.push=function(){for(var a,b,c=0,d=arguments.length;d>c;c++)a=arguments[c],a&&(b=this.items.length,this[b]=this.items[b]=a,this.length++);return this},g.pop=function(){return this.length&&delete this[this.length--],this.items.pop()},g.forEach=function(a,b){for(var c=0,d=this.items.length;d>c;c++)if(a.call(b,this.items[c],c)===!1)return this;return this},g.animate=function(d,e,f,g){"function"!=typeof f||f.length||(g=f,f=c.linear),d instanceof a._.Animation&&(g=d.callback,f=d.easing,e=f.dur,d=d.attr);var h=arguments;if(a.is(d,"array")&&a.is(h[h.length-1],"array"))var i=!0;var j,k=function(){j?this.b=j:j=this.b},l=0,m=this,n=g&&function(){++l==m.length&&g.call(this) +};return this.forEach(function(a,c){b.once("snap.animcreated."+a.id,k),i?h[c]&&a.animate.apply(a,h[c]):a.animate(d,e,f,n)})},g.remove=function(){for(;this.length;)this.pop().remove();return this},g.bind=function(a,b,c){var d={};if("function"==typeof b)this.bindings[a]=b;else{var e=c||a;this.bindings[a]=function(a){d[e]=a,b.attr(d)}}return this},g.attr=function(a){var b={};for(var c in a)this.bindings[c]?this.bindings[c](a[c]):b[c]=a[c];for(var d=0,e=this.items.length;e>d;d++)this.items[d].attr(b);return this},g.clear=function(){for(;this.length;)this.pop()},g.splice=function(a,b){a=0>a?d(this.length+a,0):a,b=d(0,e(this.length-a,b));var c,g=[],h=[],i=[];for(c=2;cc;c++)h.push(this[a+c]);for(;cc?i[c]:g[c-j];for(c=this.items.length=this.length-=b-j;this[c];)delete this[c++];return new f(h)},g.exclude=function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]==a)return this.splice(b,1),!0;return!1},g.insertAfter=function(a){for(var b=this.items.length;b--;)this.items[b].insertAfter(a);return this},g.getBBox=function(){for(var a=[],b=[],c=[],f=[],g=this.items.length;g--;)if(!this.items[g].removed){var h=this.items[g].getBBox();a.push(h.x),b.push(h.y),c.push(h.x+h.width),f.push(h.y+h.height)}return a=e.apply(0,a),b=e.apply(0,b),c=d.apply(0,c),f=d.apply(0,f),{x:a,y:b,x2:c,y2:f,width:c-a,height:f-b,cx:a+(c-a)/2,cy:b+(f-b)/2}},g.clone=function(a){a=new f;for(var b=0,c=this.items.length;c>b;b++)a.push(this.items[b].clone());return a},g.toString=function(){return"Snap‘s set"},g.type="set",a.Set=f,a.set=function(){var a=new f;return arguments.length&&a.push.apply(a,Array.prototype.slice.call(arguments,0)),a}}),d.plugin(function(a,c){function d(a){var b=a[0];switch(b.toLowerCase()){case"t":return[b,0,0];case"m":return[b,1,0,0,1,0,0];case"r":return 4==a.length?[b,0,a[2],a[3]]:[b,0];case"s":return 5==a.length?[b,1,1,a[3],a[4]]:3==a.length?[b,1,1]:[b,1]}}function e(b,c,e){c=p(c).replace(/\.{3}|\u2026/g,b),b=a.parseTransformString(b)||[],c=a.parseTransformString(c)||[];for(var f,g,h,i,l=Math.max(b.length,c.length),m=[],n=[],o=0;l>o;o++){if(h=b[o]||d(c[o]),i=c[o]||d(h),h[0]!=i[0]||"r"==h[0].toLowerCase()&&(h[2]!=i[2]||h[3]!=i[3])||"s"==h[0].toLowerCase()&&(h[3]!=i[3]||h[4]!=i[4])){b=a._.transform2matrix(b,e()),c=a._.transform2matrix(c,e()),m=[["m",b.a,b.b,b.c,b.d,b.e,b.f]],n=[["m",c.a,c.b,c.c,c.d,c.e,c.f]];break}for(m[o]=[],n[o]=[],f=0,g=Math.max(h.length,i.length);g>f;f++)f in h&&(m[o][f]=h[f]),f in i&&(n[o][f]=i[f])}return{from:k(m),to:k(n),f:j(m)}}function f(a){return a}function g(a){return function(b){return+b.toFixed(3)+a}}function h(a){return a.join(" ")}function i(b){return a.rgb(b[0],b[1],b[2])}function j(a){var b,c,d,e,f,g,h=0,i=[];for(b=0,c=a.length;c>b;b++){for(f="[",g=['"'+a[b][0]+'"'],d=1,e=a[b].length;e>d;d++)g[d]="val["+h++ +"]";f+=g+"]",i[b]=f}return Function("val","return Snap.path.toString.call(["+i+"])")}function k(a){for(var b=[],c=0,d=a.length;d>c;c++)for(var e=1,f=a[c].length;f>e;e++)b.push(a[c][e]);return b}function l(a){return isFinite(parseFloat(a))}function m(b,c){return a.is(b,"array")&&a.is(c,"array")?b.toString()==c.toString():!1}var n={},o=/[a-z]+$/i,p=String;n.stroke=n.fill="colour",c.prototype.equal=function(a,c){return b("snap.util.equal",this,a,c).firstDefined()},b.on("snap.util.equal",function(b,c){var d,q,r=p(this.attr(b)||""),s=this;if(l(r)&&l(c))return{from:parseFloat(r),to:parseFloat(c),f:f};if("colour"==n[b])return d=a.color(r),q=a.color(c),{from:[d.r,d.g,d.b,d.opacity],to:[q.r,q.g,q.b,q.opacity],f:i};if("viewBox"==b)return d=this.attr(b).vb.split(" ").map(Number),q=c.split(" ").map(Number),{from:d,to:q,f:h};if("transform"==b||"gradientTransform"==b||"patternTransform"==b)return c instanceof a.Matrix&&(c=c.toTransformString()),a._.rgTransform.test(c)||(c=a._.svgTransform2string(c)),e(r,c,function(){return s.getBBox(1)});if("d"==b||"path"==b)return d=a.path.toCubic(r,c),{from:k(d[0]),to:k(d[1]),f:j(d[0])};if("points"==b)return d=p(r).split(a._.separator),q=p(c).split(a._.separator),{from:d,to:q,f:function(a){return a}};var t=r.match(o),u=p(c).match(o);return t&&m(t,u)?{from:parseFloat(r),to:parseFloat(c),f:g(t)}:{from:this.asPX(b),to:this.asPX(b,c),f:f}})}),d.plugin(function(a,c,d,e){for(var f=c.prototype,g="hasOwnProperty",h=("createTouch"in e.doc),i=["click","dblclick","mousedown","mousemove","mouseout","mouseover","mouseup","touchstart","touchmove","touchend","touchcancel"],j={mousedown:"touchstart",mousemove:"touchmove",mouseup:"touchend"},k=(function(a,b){var c="y"==a?"scrollTop":"scrollLeft",d=b&&b.node?b.node.ownerDocument:e.doc;return d[c in d.documentElement?"documentElement":"body"][c]}),l=function(){return this.originalEvent.preventDefault()},m=function(){return this.originalEvent.stopPropagation()},n=function(a,b,c,d){var e=h&&j[b]?j[b]:b,f=function(e){var f=k("y",d),i=k("x",d);if(h&&j[g](b))for(var n=0,o=e.targetTouches&&e.targetTouches.length;o>n;n++)if(e.targetTouches[n].target==a||a.contains(e.targetTouches[n].target)){var p=e;e=e.targetTouches[n],e.originalEvent=p,e.preventDefault=l,e.stopPropagation=m;break}var q=e.clientX+i,r=e.clientY+f;return c.call(d,e,q,r)};return b!==e&&a.addEventListener(b,f,!1),a.addEventListener(e,f,!1),function(){return b!==e&&a.removeEventListener(b,f,!1),a.removeEventListener(e,f,!1),!0}},o=[],p=function(a){for(var c,d=a.clientX,e=a.clientY,f=k("y"),g=k("x"),i=o.length;i--;){if(c=o[i],h){for(var j,l=a.touches&&a.touches.length;l--;)if(j=a.touches[l],j.identifier==c.el._drag.id||c.el.node.contains(j.target)){d=j.clientX,e=j.clientY,(a.originalEvent?a.originalEvent:a).preventDefault();break}}else a.preventDefault();{var m=c.el.node;m.nextSibling,m.parentNode,m.style.display}d+=g,e+=f,b("snap.drag.move."+c.el.id,c.move_scope||c.el,d-c.el._drag.x,e-c.el._drag.y,d,e,a)}},q=function(c){a.unmousemove(p).unmouseup(q);for(var d,e=o.length;e--;)d=o[e],d.el._drag={},b("snap.drag.end."+d.el.id,d.end_scope||d.start_scope||d.move_scope||d.el,c),b.off("snap.drag.*."+d.el.id);o=[]},r=i.length;r--;)!function(b){a[b]=f[b]=function(c,d){if(a.is(c,"function"))this.events=this.events||[],this.events.push({name:b,f:c,unbind:n(this.node||document,b,c,d||this)});else for(var e=0,f=this.events.length;f>e;e++)if(this.events[e].name==b)try{this.events[e].f.call(this)}catch(g){}return this},a["un"+b]=f["un"+b]=function(a){for(var c=this.events||[],d=c.length;d--;)if(c[d].name==b&&(c[d].f==a||!a))return c[d].unbind(),c.splice(d,1),!c.length&&delete this.events,this;return this}}(i[r]);f.hover=function(a,b,c,d){return this.mouseover(a,c).mouseout(b,d||c)},f.unhover=function(a,b){return this.unmouseover(a).unmouseout(b)};var s=[];f.drag=function(c,d,e,f,g,h){function i(i,j,l){(i.originalEvent||i).preventDefault(),k._drag.x=j,k._drag.y=l,k._drag.id=i.identifier,!o.length&&a.mousemove(p).mouseup(q),o.push({el:k,move_scope:f,start_scope:g,end_scope:h}),d&&b.on("snap.drag.start."+k.id,d),c&&b.on("snap.drag.move."+k.id,c),e&&b.on("snap.drag.end."+k.id,e),b("snap.drag.start."+k.id,g||f||k,j,l,i)}function j(a,c,d){b("snap.draginit."+k.id,k,a,c,d)}var k=this;if(!arguments.length){var l;return k.drag(function(a,b){this.attr({transform:l+(l?"T":"t")+[a,b]})},function(){l=this.transform().local})}return b.on("snap.draginit."+k.id,i),k._drag={},s.push({el:k,start:i,init:j}),k.mousedown(j),k},f.undrag=function(){for(var c=s.length;c--;)s[c].el==this&&(this.unmousedown(s[c].init),s.splice(c,1),b.unbind("snap.drag.*."+this.id),b.unbind("snap.draginit."+this.id));return!s.length&&a.unmousemove(p).unmouseup(q),this}}),d.plugin(function(a,c,d){var e=(c.prototype,d.prototype),f=/^\s*url\((.+)\)/,g=String,h=a._.$;a.filter={},e.filter=function(b){var d=this;"svg"!=d.type&&(d=d.paper);var e=a.parse(g(b)),f=a._.id(),i=(d.node.offsetWidth,d.node.offsetHeight,h("filter"));return h(i,{id:f,filterUnits:"userSpaceOnUse"}),i.appendChild(e.node),d.defs.appendChild(i),new c(i)},b.on("snap.util.getattr.filter",function(){b.stop();var c=h(this.node,"filter");if(c){var d=g(c).match(f);return d&&a.select(d[1])}}),b.on("snap.util.attr.filter",function(d){if(d instanceof c&&"filter"==d.type){b.stop();var e=d.node.id;e||(h(d.node,{id:d.id}),e=d.id),h(this.node,{filter:a.url(e)})}d&&"none"!=d||(b.stop(),this.node.removeAttribute("filter"))}),a.filter.blur=function(b,c){null==b&&(b=2);var d=null==c?b:[b,c];return a.format('',{def:d})},a.filter.blur.toString=function(){return this()},a.filter.shadow=function(b,c,d,e,f){return"string"==typeof d&&(e=d,f=e,d=4),"string"!=typeof e&&(f=e,e="#000"),e=e||"#000",null==d&&(d=4),null==f&&(f=1),null==b&&(b=0,c=2),null==c&&(c=b),e=a.color(e),a.format('',{color:e,dx:b,dy:c,blur:d,opacity:f})},a.filter.shadow.toString=function(){return this()},a.filter.grayscale=function(b){return null==b&&(b=1),a.format('',{a:.2126+.7874*(1-b),b:.7152-.7152*(1-b),c:.0722-.0722*(1-b),d:.2126-.2126*(1-b),e:.7152+.2848*(1-b),f:.0722-.0722*(1-b),g:.2126-.2126*(1-b),h:.0722+.9278*(1-b)})},a.filter.grayscale.toString=function(){return this()},a.filter.sepia=function(b){return null==b&&(b=1),a.format('',{a:.393+.607*(1-b),b:.769-.769*(1-b),c:.189-.189*(1-b),d:.349-.349*(1-b),e:.686+.314*(1-b),f:.168-.168*(1-b),g:.272-.272*(1-b),h:.534-.534*(1-b),i:.131+.869*(1-b)})},a.filter.sepia.toString=function(){return this()},a.filter.saturate=function(b){return null==b&&(b=1),a.format('',{amount:1-b})},a.filter.saturate.toString=function(){return this()},a.filter.hueRotate=function(b){return b=b||0,a.format('',{angle:b})},a.filter.hueRotate.toString=function(){return this()},a.filter.invert=function(b){return null==b&&(b=1),a.format('',{amount:b,amount2:1-b})},a.filter.invert.toString=function(){return this()},a.filter.brightness=function(b){return null==b&&(b=1),a.format('',{amount:b})},a.filter.brightness.toString=function(){return this()},a.filter.contrast=function(b){return null==b&&(b=1),a.format('',{amount:b,amount2:.5-b/2})},a.filter.contrast.toString=function(){return this()}}),d.plugin(function(a,b){var c=a._.box,d=a.is,e=/^[^a-z]*([tbmlrc])/i,f=function(){return"T"+this.dx+","+this.dy};b.prototype.getAlign=function(a,b){null==b&&d(a,"string")&&(b=a,a=null),a=a||this.paper;var g=a.getBBox?a.getBBox():c(a),h=this.getBBox(),i={};switch(b=b&&b.match(e),b=b?b[1].toLowerCase():"c"){case"t":i.dx=0,i.dy=g.y-h.y;break;case"b":i.dx=0,i.dy=g.y2-h.y2;break;case"m":i.dx=0,i.dy=g.cy-h.cy;break;case"l":i.dx=g.x-h.x,i.dy=0;break;case"r":i.dx=g.x2-h.x2,i.dy=0;break;default:i.dx=g.cx-h.cx,i.dy=0}return i.toString=f,i},b.prototype.align=function(a,b){return this.transform("..."+this.getAlign(a,b))}}),d}); diff --git a/docs/assets/webfont.js b/docs/assets/webfont.js new file mode 100644 index 0000000..3a521de --- /dev/null +++ b/docs/assets/webfont.js @@ -0,0 +1,16 @@ +/* Web Font Loader v1.6.6 - (c) Adobe Systems, Google. License: Apache 2.0 */ +(function(){function aa(a,b,c){return a.call.apply(a.bind,arguments)}function ba(a,b,c){if(!a)throw Error();if(2parseInt(a[1],10)||536===parseInt(a[1],10)&&11>=parseInt(a[2],10))}return K}I.prototype.start=function(){this.s.serif=this.B.j.offsetWidth;this.s["sans-serif"]=this.C.j.offsetWidth;this.ea=p();M(this)};function N(a,b,c){for(var d in J)if(J.hasOwnProperty(d)&&b===a.s[J[d]]&&c===a.s[J[d]])return!0;return!1} +function M(a){var b=a.v.j.offsetWidth,c=a.w.j.offsetWidth,d;(d=b===a.s.serif&&c===a.s["sans-serif"])||(d=L()&&N(a,b,c));d?p()-a.ea>=a.M?L()&&N(a,b,c)&&(null===a.T||a.T.hasOwnProperty(a.g.getName()))?O(a,a.O):O(a,a.ba):ha(a):O(a,a.O)}function ha(a){setTimeout(n(function(){M(this)},a),50)}function O(a,b){setTimeout(n(function(){this.v.remove();this.w.remove();this.B.remove();this.C.remove();b(this.g)},a),0)};function P(a,b,c){this.a=a;this.o=b;this.K=0;this.X=this.S=!1;this.M=c}P.prototype.$=function(a){var b=this.o;b.u&&t(b.h,[b.e.d(b.f,a.getName(),B(a).toString(),"active")],[b.e.d(b.f,a.getName(),B(a).toString(),"loading"),b.e.d(b.f,a.getName(),B(a).toString(),"inactive")]);C(b,"fontactive",a);this.X=!0;Q(this)}; +P.prototype.aa=function(a){var b=this.o;if(b.u){var c=u(b.h,b.e.d(b.f,a.getName(),B(a).toString(),"active")),d=[],f=[b.e.d(b.f,a.getName(),B(a).toString(),"loading")];c||d.push(b.e.d(b.f,a.getName(),B(a).toString(),"inactive"));t(b.h,d,f)}C(b,"fontinactive",a);Q(this)};function Q(a){0==--a.K&&a.S&&(a.X?(a=a.o,a.u&&t(a.h,[a.e.d(a.f,"active")],[a.e.d(a.f,"loading"),a.e.d(a.f,"inactive")]),C(a,"active")):D(a.o))};function R(a){this.D=a;this.p=new fa;this.U=0;this.P=this.Q=!0}R.prototype.load=function(a){this.a=new r(this.D,a.context||this.D);this.Q=!1!==a.events;this.P=!1!==a.classes;ia(this,new da(this.a,a),a)}; +function ja(a,b,c,d,f){var e=0==--a.U;(a.P||a.Q)&&setTimeout(function(){var a=f||null,l=d||null||{};if(0===c.length&&e)D(b.o);else{b.K+=c.length;e&&(b.S=e);var h,k=[];for(h=0;h= 2.1.2 < 3" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "extract-loader": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-loader/-/extract-loader-2.0.1.tgz", - "integrity": "sha512-P/jwAXSgvtnzFlPCdlsQkgLHDPzOf7Syt+GpU1LkP6TwWAYm7Exfyas3kBffc8Lfq/mDah4qnY3P1uopNzhD4A==", - "dev": true, - "requires": { - "loader-utils": "^1.1.0" - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" - }, - "fastparse": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz", - "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=", - "dev": true - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-loader": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-2.0.0.tgz", - "integrity": "sha512-YCsBfd1ZGCyonOKLxPiKPdu+8ld9HAaMEvJewzz+b2eTF7uL5Zm/HdBF6FjCrpCMRq25Mi0U1gl4pwn2TlH7hQ==", - "dev": true, - "requires": { - "loader-utils": "^1.0.2", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "finalhandler": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", - "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", - "statuses": "~1.4.0", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - } - } - }, - "find-cache-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", - "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^1.0.0", - "pkg-dir": "^2.0.0" - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "flush-write-stream": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", - "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.4" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", - "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "1.0.6", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "fs-extra": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.0.tgz", - "integrity": "sha512-EglNDLRpmaTWiD/qraZn6HREAEAHJcJOmxNEYwq6xeMKnVMAy3GUcFB+wXt2C6k4CNvB/mP1y/U3dzvKKj5OtQ==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", - "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", - "dev": true, - "optional": true, - "requires": { - "nan": "^2.9.2", - "node-pre-gyp": "^0.10.0" - }, - "dependencies": { "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + } }, "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "ansi-term": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/ansi-term/-/ansi-term-0.0.2.tgz", + "integrity": "sha1-/XU++kvq2g6smZgbxSo/b/AZ3rc=", + "dev": true, + "requires": { + "x256": ">=0.0.1" + } + }, + "ansicolors": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", + "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=", + "dev": true + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + }, + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "dev": true }, "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "base64-arraybuffer": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", + "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=" + }, + "base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "blessed": { + "version": "0.1.81", + "resolved": "https://registry.npmjs.org/blessed/-/blessed-0.1.81.tgz", + "integrity": "sha1-+WLWh+wsNpVwrnGvhDJW5tDKESk=", + "dev": true + }, + "blessed-contrib": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/blessed-contrib/-/blessed-contrib-4.10.1.tgz", + "integrity": "sha512-S3jE7riCbWnAK8OT+ta4Z8RX/X6nfISxzn0SDIMFYuY90qUwqx7w7e9fIsc2m2ODwma7dFcXNwGSjyayfKd1DQ==", + "dev": true, + "requires": { + "ansi-term": ">=0.0.2", + "chalk": "^1.1.0", + "drawille-canvas-blessed-contrib": ">=0.1.3", + "lodash": "~>=4.17.21", + "map-canvas": ">=0.1.5", + "marked": "^2.1.1", + "marked-terminal": "^4.1.1", + "memory-streams": "^0.1.0", + "memorystream": "^0.3.1", + "picture-tuber": "^1.0.1", + "sparkline": "^0.1.1", + "strip-ansi": "^3.0.0", + "term-canvas": "0.0.5", + "x256": ">=0.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true }, "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "bresenham": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/bresenham/-/bresenham-0.0.3.tgz", + "integrity": "sha1-q9q55bGU4nx1fNMU2ERDFPKZh3o=", + "dev": true + }, + "browserslist": { + "version": "4.16.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.8.tgz", + "integrity": "sha512-sc2m9ohR/49sWEbPj14ZSSZqp+kbi16aLao42Hmn3Z8FpjuMaq2xCA2l4zl9ITfyzvnvyE0hcg62YkIGKxgaNQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001251", + "colorette": "^1.3.0", + "electron-to-chromium": "^1.3.811", + "escalade": "^3.1.1", + "node-releases": "^1.1.75" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "buffers": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", + "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=", + "dev": true + }, + "builtin-modules": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", + "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", + "dev": true + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001252", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001252.tgz", + "integrity": "sha512-I56jhWDGMtdILQORdusxBOH+Nl/KgQSdDmpJezYddnAkVOmnoU8zwjTV9xAjMIYxr0iPreEAVylCGcmHCjfaOw==", + "dev": true + }, + "cardinal": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", + "integrity": "sha1-fMEFXYItISlU0HsIXeolHMe8VQU=", + "dev": true, + "requires": { + "ansicolors": "~0.3.2", + "redeyed": "~2.1.0" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "charm": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/charm/-/charm-0.1.2.tgz", + "integrity": "sha1-BsIe7RobBq62dVPNxT4jJ0usIpY=", + "dev": true + }, + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "cli-table": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.6.tgz", + "integrity": "sha512-ZkNZbnZjKERTY5NwC2SeMeLeifSPq/pubeRoTpdr3WchLlnZg6hEgvHkK5zL7KNFdd9PmHN8lxrENUwI3cE8vQ==", + "dev": true, + "requires": { + "colors": "1.0.3" + }, + "dependencies": { + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + } + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "colord": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.7.0.tgz", + "integrity": "sha512-pZJBqsHz+pYyw3zpX6ZRXWoCHM1/cvFikY9TV8G3zcejCaKE0lhankoj8iScyrrePA8C7yJ5FStfA9zbcOnw7Q==", + "dev": true + }, + "colorette": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.3.0.tgz", + "integrity": "sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w==", + "dev": true + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true + }, + "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==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" }, "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true, - "optional": true + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-with-sourcemaps": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", + "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + } }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "crelt": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.5.tgz", + "integrity": "sha512-+BO9wPPi+DWTDcNYhr/W90myha8ptzftZT+LwcmUbbok0rcP/fequmFYCw8NMoH7pkAZQzU78b3kYrlua5a9eA==", + "dev": true + }, + "crypto-js": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-3.3.0.tgz", + "integrity": "sha512-DIT51nX0dCfKltpRiXV+/TVZq+Qq2NgF4644+K7Ttnla7zEzqc+kjJyiB96BHNyUTBxyjzRcZYpUdZa+QAqi6Q==" + }, + "css-color-names": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-1.0.1.tgz", + "integrity": "sha512-/loXYOch1qU1biStIFsHH8SxTmOseh1IJqFvy8IujXOm1h+QjUdDhkzOrR5HG8K8mlxREj0yfi8ewCHx0eMxzA==", + "dev": true + }, + "css-declaration-sorter": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.1.tgz", + "integrity": "sha512-BZ1aOuif2Sb7tQYY1GeCjG7F++8ggnwUkH5Ictw0mrdpqpEd+zWmcPdstnH2TItlb74FqR0DrVEieon221T/1Q==", + "dev": true, + "requires": { + "timsort": "^0.3.0" + } + }, + "css-select": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz", + "integrity": "sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^5.0.0", + "domhandler": "^4.2.0", + "domutils": "^2.6.0", + "nth-check": "^2.0.0" + } + }, + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "css-what": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz", + "integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==", + "dev": true + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "cssnano": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.8.tgz", + "integrity": "sha512-Lda7geZU0Yu+RZi2SGpjYuQz4HI4/1Y+BhdD0jL7NXAQ5larCzVn+PUGuZbDMYz904AXXCOgO5L1teSvgu7aFg==", + "dev": true, + "requires": { + "cssnano-preset-default": "^5.1.4", + "is-resolvable": "^1.1.0", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + } + }, + "cssnano-preset-default": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.4.tgz", + "integrity": "sha512-sPpQNDQBI3R/QsYxQvfB4mXeEcWuw0wGtKtmS5eg8wudyStYMgKOQT39G07EbW1LB56AOYrinRS9f0ig4Y3MhQ==", + "dev": true, + "requires": { + "css-declaration-sorter": "^6.0.3", + "cssnano-utils": "^2.0.1", + "postcss-calc": "^8.0.0", + "postcss-colormin": "^5.2.0", + "postcss-convert-values": "^5.0.1", + "postcss-discard-comments": "^5.0.1", + "postcss-discard-duplicates": "^5.0.1", + "postcss-discard-empty": "^5.0.1", + "postcss-discard-overridden": "^5.0.1", + "postcss-merge-longhand": "^5.0.2", + "postcss-merge-rules": "^5.0.2", + "postcss-minify-font-values": "^5.0.1", + "postcss-minify-gradients": "^5.0.2", + "postcss-minify-params": "^5.0.1", + "postcss-minify-selectors": "^5.1.0", + "postcss-normalize-charset": "^5.0.1", + "postcss-normalize-display-values": "^5.0.1", + "postcss-normalize-positions": "^5.0.1", + "postcss-normalize-repeat-style": "^5.0.1", + "postcss-normalize-string": "^5.0.1", + "postcss-normalize-timing-functions": "^5.0.1", + "postcss-normalize-unicode": "^5.0.1", + "postcss-normalize-url": "^5.0.2", + "postcss-normalize-whitespace": "^5.0.1", + "postcss-ordered-values": "^5.0.2", + "postcss-reduce-initial": "^5.0.1", + "postcss-reduce-transforms": "^5.0.1", + "postcss-svgo": "^5.0.2", + "postcss-unique-selectors": "^5.0.1" + } + }, + "cssnano-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-2.0.1.tgz", + "integrity": "sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ==", + "dev": true + }, + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "requires": { + "css-tree": "^1.1.2" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } }, "debug": { - "version": "2.6.9", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-extend": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "dev": true + }, + "dialog-polyfill": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/dialog-polyfill/-/dialog-polyfill-0.5.6.tgz", + "integrity": "sha512-ZbVDJI9uvxPAKze6z146rmfUZjBqNEwcnFTVamQzXH+svluiV7swmVIGr7miwADgfgt1G2JQIytypM9fbyhX4w==", + "dev": true + }, + "dom-serializer": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "dev": true, + "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==", + "dev": true + }, + "domhandler": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.0.tgz", + "integrity": "sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==", + "dev": true, + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.7.0.tgz", + "integrity": "sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg==", + "dev": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "drawille-blessed-contrib": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/drawille-blessed-contrib/-/drawille-blessed-contrib-1.0.0.tgz", + "integrity": "sha1-FcJ5NPV6AFatE1luFWFje8lB8Lc=", + "dev": true + }, + "drawille-canvas-blessed-contrib": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/drawille-canvas-blessed-contrib/-/drawille-canvas-blessed-contrib-0.1.3.tgz", + "integrity": "sha1-IS8HinIr/S7MJn6oarbd3BCB/Ug=", + "dev": true, + "requires": { + "ansi-term": ">=0.0.2", + "bresenham": "0.0.3", + "drawille-blessed-contrib": ">=0.0.1", + "gl-matrix": "^2.1.0", + "x256": ">=0.0.1" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "electron-to-chromium": { + "version": "1.3.818", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.818.tgz", + "integrity": "sha512-c/Z9gIr+jDZAR9q+mn40hEc1NharBT+8ejkarjbCDnBNFviI6hvcC5j2ezkAXru//bTnQp5n6iPi0JA83Tla1Q==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "engine.io": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-5.1.1.tgz", + "integrity": "sha512-aMWot7H5aC8L4/T8qMYbLdvKlZOdJTH54FxfdFunTGvhMx1BHkJOntWArsVfgAZVwAO9LC2sryPWRcEeUzCe5w==", + "requires": { + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~4.0.0", + "ws": "~7.4.2" + }, + "dependencies": { + "cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" + }, + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "engine.io-client": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-5.1.2.tgz", + "integrity": "sha512-blRrgXIE0A/eurWXRzvfCLG7uUFJqfTGFsyJzXSK71srMMGJ2VraBLg8Mdw28uUxSpVicepBN9X7asqpD1mZcQ==", + "dev": true, + "requires": { + "base64-arraybuffer": "0.1.4", + "component-emitter": "~1.3.0", + "debug": "~4.3.1", + "engine.io-parser": "~4.0.1", + "has-cors": "1.1.0", + "parseqs": "0.0.6", + "parseuri": "0.0.6", + "ws": "~7.4.2", + "yeast": "0.1.2" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "engine.io-parser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.2.tgz", + "integrity": "sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg==", + "dev": true, + "requires": { + "base64-arraybuffer": "0.1.4" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "engine.io-parser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.2.tgz", + "integrity": "sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg==", + "requires": { + "base64-arraybuffer": "0.1.4" + } + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "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=", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "event-stream": { + "version": "0.9.8", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-0.9.8.tgz", + "integrity": "sha1-XanPPHkAl1mJ21powo5bPJjr4Do=", + "dev": true, + "requires": { + "optimist": "0.2" + }, + "dependencies": { + "optimist": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.2.8.tgz", + "integrity": "sha1-6YGrfiaLRXlIWTtVZ0wJmoFcrDE=", + "dev": true, + "requires": { + "wordwrap": ">=0.0.1 <0.1.0" + } + } + } + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "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==", + "dev": true, + "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==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } }, "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "generic-names": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generic-names/-/generic-names-2.0.1.tgz", + "integrity": "sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "gl-matrix": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-2.8.1.tgz", + "integrity": "sha512-0YCjVpE3pS5XWlN3J4X7AiAx65+nqAI54LndtVFnQZB6G/FVLkZH8y8V6R3cIoOQR4pUdfwQGd1iwyoXHJ4Qfw==", + "dev": true }, "glob": { - "version": "7.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "graceful-fs": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "here": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/here/-/here-0.0.2.tgz", + "integrity": "sha1-acGvPwISHz2HiOAuhNyLOQXXEZU=", + "dev": true + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } }, "iconv-lite": { - "version": "0.4.21", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safer-buffer": "^2.1.0" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } + "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" + } + }, + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", + "dev": true + }, + "icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true + }, + "import-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz", + "integrity": "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==", + "dev": true, + "requires": { + "import-from": "^3.0.0" + } + }, + "import-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz", + "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } }, "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } }, "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true, - "optional": true + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz", + "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "requires": { + "@types/estree": "*" + } + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "lilconfig": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.3.tgz", + "integrity": "sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg==", + "dev": true + }, + "livereload": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/livereload/-/livereload-0.9.3.tgz", + "integrity": "sha512-q7Z71n3i4X0R9xthAryBdNGVGAO2R5X+/xXpmKeuPMrteg+W2U8VusTKV3YiJbXZwKsOlFlHe+go6uSNjfxrZw==", + "dev": true, + "requires": { + "chokidar": "^3.5.0", + "livereload-js": "^3.3.1", + "opts": ">= 1.2.0", + "ws": "^7.4.3" + } + }, + "livereload-js": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-3.3.2.tgz", + "integrity": "sha512-w677WnINxFkuixAoUEXOStewzLYGI76XVag+0JWMMEyjJQKs0ibWZMxkTlB96Lm3EjZ7IeOxVziBEbtxVQqQZA==", + "dev": true + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.4" + } + }, + "map-canvas": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/map-canvas/-/map-canvas-0.1.5.tgz", + "integrity": "sha1-i+a63gvz6fmotW6INqHR0TPKsYY=", + "dev": true, + "requires": { + "drawille-canvas-blessed-contrib": ">=0.0.1", + "xml2js": "^0.4.5" + } + }, + "marked": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/marked/-/marked-2.1.3.tgz", + "integrity": "sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA==", + "dev": true + }, + "marked-terminal": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-4.1.1.tgz", + "integrity": "sha512-t7Mdf6T3PvOEyN01c3tYxDzhyKZ8xnkp8Rs6Fohno63L/0pFTJ5Qtwto2AQVuDtbQiWzD+4E5AAu1Z2iLc8miQ==", + "dev": true, + "requires": { + "ansi-escapes": "^4.3.1", + "cardinal": "^2.1.1", + "chalk": "^4.1.0", + "cli-table": "^0.3.1", + "node-emoji": "^1.10.0", + "supports-hyperlinks": "^2.1.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==", + "dev": true + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "memory-streams": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/memory-streams/-/memory-streams-0.1.3.tgz", + "integrity": "sha512-qVQ/CjkMyMInPaaRMrwWNDvf6boRZXaT/DbQeMYcCWuXPEBf1v8qChOc9OlEVQp2uOvRXa1Qu30fLmKhY6NipA==", + "dev": true, + "requires": { + "readable-stream": "~1.0.2" + } + }, + "memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", + "dev": true + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.49.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", + "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==" + }, + "mime-types": { + "version": "2.1.32", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", + "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", + "requires": { + "mime-db": "1.49.0" + } + }, + "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==", + "dev": true }, "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } }, "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true, - "optional": true - }, - "minipass": { - "version": "2.2.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.1", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimist": "0.0.8" - } + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true }, "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "needle": { - "version": "2.2.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "^2.1.2", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.10.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.0", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.1.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "nanoid": { + "version": "3.1.25", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", + "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==", + "dev": true + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "node-emoji": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", + "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "dev": true, + "requires": { + "lodash": "^4.17.21" + } + }, + "node-releases": { + "version": "1.1.75", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", + "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==", + "dev": true }, "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.1.10", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-2.1.2.tgz", + "integrity": "sha1-bMzZd7gBMqB3MdbozljCyDA8+a8=", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true + }, + "nth-check": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz", + "integrity": "sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==", + "dev": true, + "requires": { + "boolbase": "^1.0.0" + } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" }, "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } }, "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "optimist": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz", + "integrity": "sha1-yQlBrVnkJzMokjB00s8ufLxuwNk=", + "dev": true, + "requires": { + "wordwrap": "~0.0.2" + } + }, + "opts": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/opts/-/opts-2.0.2.tgz", + "integrity": "sha512-k41FwbcLnlgnFh69f4qdUfvDQ+5vaSDnVPFI/y5XuhKRq97EnVVneO9F1ESVCdiVu4fCS2L8usX3mU331hB7pg==", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-queue": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", + "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", + "dev": true, + "requires": { + "eventemitter3": "^4.0.4", + "p-timeout": "^3.2.0" + } + }, + "p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "dev": true, + "requires": { + "p-finally": "^1.0.0" + } + }, + "parseqs": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz", + "integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==", + "dev": true + }, + "parseuri": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz", + "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==", + "dev": true + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" }, "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "^0.5.1", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "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=" + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true + }, + "picture-tuber": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/picture-tuber/-/picture-tuber-1.0.2.tgz", + "integrity": "sha512-49/xq+wzbwDeI32aPvwQJldM8pr7dKDRuR76IjztrkmiCkAQDaWFJzkmfVqCHmt/iFoPFhHmI9L0oKhthrTOQw==", + "dev": true, + "requires": { + "buffers": "~0.1.1", + "charm": "~0.1.0", + "event-stream": "~0.9.8", + "optimist": "~0.3.4", + "png-js": "~0.1.0", + "x256": "~0.0.1" + } }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.6.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "glob": "^7.0.5" - } + "pify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", + "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", + "dev": true + }, + "png-js": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/png-js/-/png-js-0.1.1.tgz", + "integrity": "sha1-HMfCEjA6yr50Jj7DrHgAlYAkLZM=", + "dev": true + }, + "postcss": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.6.tgz", + "integrity": "sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A==", + "dev": true, + "requires": { + "colorette": "^1.2.2", + "nanoid": "^3.1.23", + "source-map-js": "^0.6.2" + } }, - "safe-buffer": { - "version": "5.1.1", - "bundled": true, - "dev": true, - "optional": true + "postcss-calc": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.0.0.tgz", + "integrity": "sha512-5NglwDrcbiy8XXfPM11F3HeC6hoT9W7GUH/Zi5U/p7u3Irv4rHhdDcIZwG0llHXV4ftsBjpfWMXAnXNl4lnt8g==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + } }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true + "postcss-colormin": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.0.tgz", + "integrity": "sha512-+HC6GfWU3upe5/mqmxuqYZ9B2Wl4lcoUUNkoaX59nEWV4EtADCMiBqui111Bu8R8IvaZTmqmxrqOAqjbHIwXPw==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "colord": "^2.0.1", + "postcss-value-parser": "^4.1.0" + } }, - "sax": { - "version": "1.2.4", - "bundled": true, - "dev": true, - "optional": true - }, - "semver": { - "version": "5.5.0", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } + "postcss-convert-values": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.0.1.tgz", + "integrity": "sha512-C3zR1Do2BkKkCgC0g3sF8TS0koF2G+mN8xxayZx3f10cIRmTaAnpgpRQZjNekTZxM2ciSPoh2IWJm0VZx8NoQg==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.1.0" + } }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } + "postcss-discard-comments": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.0.1.tgz", + "integrity": "sha512-lgZBPTDvWrbAYY1v5GYEv8fEO/WhKOu/hmZqmCYfrpD6eyDWWzAOsl2rF29lpvziKO02Gc5GJQtlpkTmakwOWg==", + "dev": true + }, + "postcss-discard-duplicates": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.1.tgz", + "integrity": "sha512-svx747PWHKOGpAXXQkCc4k/DsWo+6bc5LsVrAsw+OU+Ibi7klFZCyX54gjYzX4TH+f2uzXjRviLARxkMurA2bA==", + "dev": true + }, + "postcss-discard-empty": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.0.1.tgz", + "integrity": "sha512-vfU8CxAQ6YpMxV2SvMcMIyF2LX1ZzWpy0lqHDsOdaKKLQVQGVP1pzhrI9JlsO65s66uQTfkQBKBD/A5gp9STFw==", + "dev": true + }, + "postcss-discard-overridden": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.1.tgz", + "integrity": "sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q==", + "dev": true + }, + "postcss-load-config": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.0.tgz", + "integrity": "sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g==", + "dev": true, + "requires": { + "import-cwd": "^3.0.0", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + } }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "chownr": "^1.0.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.2.4", - "minizlib": "^1.1.0", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.1", - "yallist": "^3.0.2" - } + "postcss-merge-longhand": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.2.tgz", + "integrity": "sha512-BMlg9AXSI5G9TBT0Lo/H3PfUy63P84rVz3BjCFE9e9Y9RXQZD3+h3YO1kgTNsNJy7bBc1YQp8DmSnwLIW5VPcw==", + "dev": true, + "requires": { + "css-color-names": "^1.0.1", + "postcss-value-parser": "^4.1.0", + "stylehacks": "^5.0.1" + } }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "^1.0.2" - } + "postcss-merge-rules": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.2.tgz", + "integrity": "sha512-5K+Md7S3GwBewfB4rjDeol6V/RZ8S+v4B66Zk2gChRqLTCC8yjnHQ601omj9TKftS19OPGqZ/XzoqpzNQQLwbg==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^2.0.1", + "postcss-selector-parser": "^6.0.5", + "vendors": "^1.0.3" + } }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "yallist": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "fstream": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - } - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "gaze": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", - "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", - "dev": true, - "requires": { - "globule": "^1.0.0" - } - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "global-modules-path": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/global-modules-path/-/global-modules-path-2.3.0.tgz", - "integrity": "sha512-HchvMJNYh9dGSCy8pOQ2O8u/hoXaL+0XhnrwH0RyLiSXMMTl9W3N6KUU73+JFOg5PGjtzl6VZzUQsnrpm7Szag==", - "dev": true - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - }, - "globule": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", - "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", - "dev": true, - "requires": { - "glob": "~7.1.1", - "lodash": "~4.17.10", - "minimatch": "~3.0.2" - } - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", - "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", - "requires": { - "ajv": "^5.3.0", - "har-schema": "^2.0.0" - }, - "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } + "postcss-minify-font-values": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.0.1.tgz", + "integrity": "sha512-7JS4qIsnqaxk+FXY1E8dHBDmraYFWmuL6cgt0T1SWGRO5bzJf8sUoelwa4P88LEWJZweHevAiDKxHlofuvtIoA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.1.0" + } }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" - } - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "has-binary2": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", - "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", - "requires": { - "isarray": "2.0.1" - }, - "dependencies": { - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" - } - } - }, - "has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "hash.js": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", - "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" - } - }, - "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", - "dev": true - }, - "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=", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "iconv-lite": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", - "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" - }, - "icss-replace-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", - "dev": true - }, - "icss-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", - "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", - "dev": true, - "requires": { - "postcss": "^6.0.1" - } - }, - "ieee754": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", - "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==", - "dev": true - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true - }, - "import-local": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz", - "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==", - "dev": true, - "requires": { - "pkg-dir": "^2.0.0", - "resolve-cwd": "^2.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "in-publish": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", - "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", - "dev": true - }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "inquirer": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.1.0.tgz", - "integrity": "sha512-f9K2MMx/G/AVmJSaZg2a+GVLRRmTdlGLbwxsibNd6yNTxXujqxPypjCnxnC0y4+Wb/rNY5KyKuq06AO5jrE+7w==", - "dev": true, - "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.0", - "figures": "^2.0.0", - "lodash": "^4.3.0", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.1.0", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true + "postcss-minify-gradients": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.2.tgz", + "integrity": "sha512-7Do9JP+wqSD6Prittitt2zDLrfzP9pqKs2EcLX7HJYxsxCOwrrcLt4x/ctQTsiOw+/8HYotAoqNkrzItL19SdQ==", + "dev": true, + "requires": { + "colord": "^2.6", + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0" + } }, - "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==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } + "postcss-minify-params": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.1.tgz", + "integrity": "sha512-4RUC4k2A/Q9mGco1Z8ODc7h+A0z7L7X2ypO1B6V8057eVK6mZ6xwz6QN64nHuHLbqbclkX1wyzRnIrdZehTEHw==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.2", + "browserslist": "^4.16.0", + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0", + "uniqs": "^2.0.0" + } }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } + "postcss-minify-selectors": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.1.0.tgz", + "integrity": "sha512-NzGBXDa7aPsAcijXZeagnJBKBPMYLaJJzB8CQh6ncvyl2sIndLVWfbcDi0SBjRWk5VqEjXvf8tYwzoKf4Z07og==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.2", + "postcss-selector-parser": "^6.0.5" + } }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } + "postcss-modules": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/postcss-modules/-/postcss-modules-4.2.2.tgz", + "integrity": "sha512-/H08MGEmaalv/OU8j6bUKi/kZr2kqGF6huAW8m9UAgOLWtpFdhA14+gPBoymtqyv+D4MLsmqaF2zvIegdCxJXg==", + "dev": true, + "requires": { + "generic-names": "^2.0.1", + "icss-replace-symbols": "^1.1.0", + "lodash.camelcase": "^4.3.0", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "string-hash": "^1.1.1" + } }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } + "postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true + }, + "postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "interpret": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", - "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", - "dev": true - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "requires": { - "loose-envify": "^1.0.0" - } - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true - }, - "ipaddr.js": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.6.0.tgz", - "integrity": "sha1-4/o1e3c9phnybpXwSdBVxyeW+Gs=" - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "dev": true, - "requires": { - "builtin-modules": "^1.0.0" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "jquery": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz", - "integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==", - "dev": true - }, - "js-base64": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.5.tgz", - "integrity": "sha512-aUnNwqMOXw3yvErjMPSQu6qIIzUmT1e5KcU1OZxRDU1g/am6mzBvcrmLAYwzmB59BHPrh5/tKaiF4OPhqRWESQ==", - "dev": true - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "optional": true - }, - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - }, - "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==", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, - "requires": { - "invert-kv": "^1.0.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "loader-runner": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", - "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=", - "dev": true - }, - "loader-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true, - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - } - } - }, - "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", - "dev": true - }, - "lodash.assign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", - "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", - "dev": true - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", - "dev": true - }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "dev": true - }, - "lodash.mergewith": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz", - "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==", - "dev": true - }, - "lodash.tail": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz", - "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=", - "dev": true - }, - "long": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/long/-/long-3.2.0.tgz", - "integrity": "sha1-2CG3E4yhy1gcFymQ7xTbIAtcR0s=", - "dev": true - }, - "loose-envify": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", - "dev": true, - "requires": { - "js-tokens": "^3.0.0" - } - }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - } - }, - "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "requires": { - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "mamacro": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", - "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==", - "dev": true - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "md5.js": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", - "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, - "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - } - }, - "mime": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" - }, - "mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" - }, - "mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", - "requires": { - "mime-db": "~1.33.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - }, - "mini-css-extract-plugin": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.2.tgz", - "integrity": "sha512-ots7URQH4wccfJq9Ssrzu2+qupbncAce4TmTzunI9CIwlQMp2XI+WNUw6xWF6MMAGAm1cbUVINrSjATaVMyKXg==", - "dev": true, - "requires": { - "loader-utils": "^1.1.0", - "schema-utils": "^1.0.0", - "webpack-sources": "^1.1.0" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "mississippi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", - "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", - "dev": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^2.0.1", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, - "mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mixin-object": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", - "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", - "dev": true, - "requires": { - "for-in": "^0.1.3", - "is-extendable": "^0.1.1" - }, - "dependencies": { - "for-in": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", - "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=", - "dev": true - } - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "monaco-editor": { - "version": "0.14.3", - "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.14.3.tgz", - "integrity": "sha512-RhaO4xXmWn/p0WrkEOXe4PoZj6xOcvDYjoAh0e1kGUrQnP1IOpc0m86Ceuaa2CLEMDINqKijBSmqhvBQnsPLHQ==" - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "nan": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", - "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", - "dev": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "negotiator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" - }, - "neo-async": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.2.tgz", - "integrity": "sha512-vdqTKI9GBIYcAEbFAcpKPErKINfPF5zIuz3/niBfq8WUZjpT2tytLlFVrBgWdOtqI4uaA/Rb6No0hux39XXDuw==", - "dev": true - }, - "nice-try": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz", - "integrity": "sha512-2NpiFHqC87y/zFke0fC0spBXL3bBsoh/p5H1EFhshxjCR5+0g2d6BiXbUFz9v1sAcxsk2htp2eQnNIci2dIYcA==", - "dev": true - }, - "node-gyp": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", - "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", - "dev": true, - "requires": { - "fstream": "^1.0.0", - "glob": "^7.0.3", - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2 || 3 || 4", - "osenv": "0", - "request": "^2.87.0", - "rimraf": "2", - "semver": "~5.3.0", - "tar": "^2.0.0", - "which": "1" - }, - "dependencies": { - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true - } - } - }, - "node-libs-browser": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", - "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", - "dev": true, - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^1.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.0", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.10.3", - "vm-browserify": "0.0.4" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } - }, - "node-sass": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.3.tgz", - "integrity": "sha512-XzXyGjO+84wxyH7fV6IwBOTrEBe2f0a6SBze9QWWYR/cL74AcQUks2AsqcCZenl/Fp/JVbuEaLpgrLtocwBUww==", - "dev": true, - "requires": { - "async-foreach": "^0.1.3", - "chalk": "^1.1.1", - "cross-spawn": "^3.0.0", - "gaze": "^1.0.0", - "get-stdin": "^4.0.1", - "glob": "^7.0.3", - "in-publish": "^2.0.0", - "lodash.assign": "^4.2.0", - "lodash.clonedeep": "^4.3.2", - "lodash.mergewith": "^4.6.0", - "meow": "^3.7.0", - "mkdirp": "^0.5.1", - "nan": "^2.10.0", - "node-gyp": "^3.8.0", - "npmlog": "^4.0.0", - "request": "2.87.0", - "sass-graph": "^2.2.4", - "stdout-stream": "^1.4.0", - "true-case-path": "^1.0.2" - }, - "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } + "postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.4" + } }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true + "postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0" + } }, - "har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", - "dev": true, - "requires": { - "ajv": "^5.1.0", - "har-schema": "^2.0.0" - } + "postcss-normalize-charset": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.0.1.tgz", + "integrity": "sha512-6J40l6LNYnBdPSk+BHZ8SF+HAkS4q2twe5jnocgd+xWpz/mx/5Sa32m3W1AA8uE8XaXN+eg8trIlfu8V9x61eg==", + "dev": true + }, + "postcss-normalize-display-values": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.1.tgz", + "integrity": "sha512-uupdvWk88kLDXi5HEyI9IaAJTE3/Djbcrqq8YgjvAVuzgVuqIk3SuJWUisT2gaJbZm1H9g5k2w1xXilM3x8DjQ==", + "dev": true, + "requires": { + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0" + } }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", - "dev": true + "postcss-normalize-positions": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.0.1.tgz", + "integrity": "sha512-rvzWAJai5xej9yWqlCb1OWLd9JjW2Ex2BCPzUJrbaXmtKtgfL8dBMOOMTX6TnvQMtjk3ei1Lswcs78qKO1Skrg==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-normalize-repeat-style": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.1.tgz", + "integrity": "sha512-syZ2itq0HTQjj4QtXZOeefomckiV5TaUO6ReIEabCh3wgDs4Mr01pkif0MeVwKyU/LHEkPJnpwFKRxqWA/7O3w==", + "dev": true, + "requires": { + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-normalize-string": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.0.1.tgz", + "integrity": "sha512-Ic8GaQ3jPMVl1OEn2U//2pm93AXUcF3wz+OriskdZ1AOuYV25OdgS7w9Xu2LO5cGyhHCgn8dMXh9bO7vi3i9pA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-normalize-timing-functions": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.1.tgz", + "integrity": "sha512-cPcBdVN5OsWCNEo5hiXfLUnXfTGtSFiBU9SK8k7ii8UD7OLuznzgNRYkLZow11BkQiiqMcgPyh4ZqXEEUrtQ1Q==", + "dev": true, + "requires": { + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-normalize-unicode": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.1.tgz", + "integrity": "sha512-kAtYD6V3pK0beqrU90gpCQB7g6AOfP/2KIPCVBKJM2EheVsBQmx/Iof+9zR9NFKLAx4Pr9mDhogB27pmn354nA==", + "dev": true, + "requires": { + "browserslist": "^4.16.0", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-normalize-url": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.2.tgz", + "integrity": "sha512-k4jLTPUxREQ5bpajFQZpx8bCF2UrlqOTzP9kEqcEnOfwsRshWs2+oAFIHfDQB8GO2PaUaSE0NlTAYtbluZTlHQ==", + "dev": true, + "requires": { + "is-absolute-url": "^3.0.3", + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-normalize-whitespace": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.1.tgz", + "integrity": "sha512-iPklmI5SBnRvwceb/XH568yyzK0qRVuAG+a1HFUsFRf11lEJTiQQa03a4RSCQvLKdcpX7XsI1Gen9LuLoqwiqA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-ordered-values": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.0.2.tgz", + "integrity": "sha512-8AFYDSOYWebJYLyJi3fyjl6CqMEG/UVworjiyK1r573I56kb3e879sCJLGvR3merj+fAdPpVplXKQZv+ey6CgQ==", + "dev": true, + "requires": { + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-reduce-initial": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.0.1.tgz", + "integrity": "sha512-zlCZPKLLTMAqA3ZWH57HlbCjkD55LX9dsRyxlls+wfuRfqCi5mSlZVan0heX5cHr154Dq9AfbH70LyhrSAezJw==", + "dev": true, + "requires": { + "browserslist": "^4.16.0", + "caniuse-api": "^3.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.1.tgz", + "integrity": "sha512-a//FjoPeFkRuAguPscTVmRQUODP+f3ke2HqFNgGPwdYnpeC29RZdCBvGRGTsKpMURb/I3p6jdKoBQ2zI+9Q7kA==", + "dev": true, + "requires": { + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-scss": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.0.tgz", + "integrity": "sha512-xakgIr5ukOEyXFcsnADKjQtrk8nQyqn5VIEAA+PmPP4kBOpknmjpJMxBNqCR1/x20AS0aSfZkWsSdbMx2Ozm5A==", + "dev": true + }, + "postcss-selector-parser": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", + "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-svgo": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.0.2.tgz", + "integrity": "sha512-YzQuFLZu3U3aheizD+B1joQ94vzPfE6BNUcSYuceNxlVnKKsOtdo6hL9/zyC168Q8EwfLSgaDSalsUGa9f2C0A==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.1.0", + "svgo": "^2.3.0" + } + }, + "postcss-unique-selectors": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.1.tgz", + "integrity": "sha512-gwi1NhHV4FMmPn+qwBNuot1sG1t2OmacLQ/AX29lzyggnjd+MnVD5uqQmpXO3J17KGL2WAxQruj1qTd3H0gG/w==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.2", + "postcss-selector-parser": "^6.0.5", + "uniqs": "^2.0.0" + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true + }, + "preact": { + "version": "10.5.14", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.5.14.tgz", + "integrity": "sha512-KojoltCrshZ099ksUZ2OQKfbH66uquFoxHSbnwKbTJHeQNvx42EmC7wQVWNuDt6vC5s3nudRHFtKbpY4ijKlaQ==", + "dev": true + }, + "promise.series": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/promise.series/-/promise.series-0.2.0.tgz", + "integrity": "sha1-LMfr6Vn8OmYZwEq029yeRS2GS70=", + "dev": true + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" }, "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + } + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "redeyed": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", + "integrity": "sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs=", + "dev": true, + "requires": { + "esprima": "~4.0.0" + } + }, + "regexparam": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexparam/-/regexparam-2.0.0.tgz", + "integrity": "sha512-gJKwd2MVPWHAIFLsaYDZfyKzHNS4o7E/v8YmNf44vmeV2e4YfVoDToTOKTvE7ab68cRJ++kLuEXJBaEeJVt5ow==", + "dev": true }, "request": { - "version": "2.87.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", - "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.6.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.1", - "forever-agent": "~0.6.1", - "form-data": "~2.3.1", - "har-validator": "~5.0.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.17", - "oauth-sign": "~0.8.2", - "performance-now": "^2.1.0", - "qs": "~6.5.1", - "safe-buffer": "^5.1.1", - "tough-cookie": "~2.3.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.1.0" - } + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + } + } }, - "tough-cookie": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", - "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", - "dev": true, - "requires": { - "punycode": "^1.4.1" - } - } - } - }, - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, - "requires": { - "abbrev": "1" - } - }, - "normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object-component": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", - "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "^3.0.0" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true, - "requires": { - "lcid": "^1.0.0" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-limit": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", - "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "pako": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", - "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==", - "dev": true - }, - "parallel-transform": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", - "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", - "dev": true, - "requires": { - "cyclist": "~0.2.2", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "parse-asn1": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz", - "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", - "dev": true, - "requires": { - "asn1.js": "^4.0.0", - "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "parseqs": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", - "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", - "requires": { - "better-assert": "~1.0.0" - } - }, - "parseuri": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", - "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", - "requires": { - "better-assert": "~1.0.0" - } - }, - "parseurl": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", - "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "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=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "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=" - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pbkdf2": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz", - "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==", - "dev": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - }, - "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==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } + "require-relative": { + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz", + "integrity": "sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=", + "dev": true + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "rollup": { + "version": "2.56.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.56.3.tgz", + "integrity": "sha512-Au92NuznFklgQCUcV96iXlxUbHuB1vQMaH76DHl5M11TotjOHwqk9CwcrT78+Tnv4FN9uTBxq6p4EJoYkpyekg==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "rollup-plugin-css-only": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-css-only/-/rollup-plugin-css-only-3.1.0.tgz", + "integrity": "sha512-TYMOE5uoD76vpj+RTkQLzC9cQtbnJNktHPB507FzRWBVaofg7KhIqq1kGbcVOadARSozWF883Ho9KpSPKH8gqA==", + "dev": true, + "requires": { + "@rollup/pluginutils": "4" + }, + "dependencies": { + "@rollup/pluginutils": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.1.tgz", + "integrity": "sha512-clDjivHqWGXi7u+0d2r2sBi4Ie6VLEAzWMIkvJLnDmxoOhBYOTfzGbOQBA32THHm11/LiJbd01tJUpJsbshSWQ==", + "dev": true, + "requires": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + } + } + } }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-modules-extract-imports": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz", - "integrity": "sha1-ZhQOzs447wa/DT41XWm/WdFB6oU=", - "dev": true, - "requires": { - "postcss": "^6.0.1" - } - }, - "postcss-modules-local-by-default": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", - "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", - "dev": true, - "requires": { - "css-selector-tokenizer": "^0.7.0", - "postcss": "^6.0.1" - } - }, - "postcss-modules-scope": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", - "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", - "dev": true, - "requires": { - "css-selector-tokenizer": "^0.7.0", - "postcss": "^6.0.1" - } - }, - "postcss-modules-values": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", - "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", - "dev": true, - "requires": { - "icss-replace-symbols": "^1.1.0", - "postcss": "^6.0.1" - } - }, - "postcss-value-parser": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", - "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", - "dev": true - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true - }, - "proxy-addr": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.3.tgz", - "integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==", - "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.6.0" - } - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "psl": { - "version": "1.1.29", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", - "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==" - }, - "public-encrypt": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.2.tgz", - "integrity": "sha512-4kJ5Esocg8X3h8YgJsKAuoesBgB7mqH3eowiDzMUPKiRDDE7E/BqqZD1hnTByIaAFiwAw246YEltSq7tdrOH0Q==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true - }, - "randombytes": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", - "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" - }, - "raw-body": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", - "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", - "requires": { - "bytes": "3.0.0", - "http-errors": "1.6.2", - "iconv-lite": "0.4.19", - "unpipe": "1.0.0" - }, - "dependencies": { - "depd": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", - "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" + "rollup-plugin-livereload": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/rollup-plugin-livereload/-/rollup-plugin-livereload-2.0.5.tgz", + "integrity": "sha512-vqQZ/UQowTW7VoiKEM5ouNW90wE5/GZLfdWuR0ELxyKOJUIaj+uismPZZaICU4DnWPVjnpCDDxEqwU7pcKY/PA==", + "dev": true, + "requires": { + "livereload": "^0.9.1" + } }, - "http-errors": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", - "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", - "requires": { - "depd": "1.1.1", - "inherits": "2.0.3", - "setprototypeof": "1.0.3", - "statuses": ">= 1.3.1 < 2" - } + "rollup-plugin-postcss": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-postcss/-/rollup-plugin-postcss-4.0.1.tgz", + "integrity": "sha512-kUJHlpDGl9+kDfdUUbnerW0Mx1R0PL/6dgciUE/w19swYDBjug7RQfxIRvRGtO/cvCkynYyU8e/YFMI544vskA==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "concat-with-sourcemaps": "^1.1.0", + "cssnano": "^5.0.1", + "import-cwd": "^3.0.0", + "p-queue": "^6.6.2", + "pify": "^5.0.0", + "postcss-load-config": "^3.0.0", + "postcss-modules": "^4.0.0", + "promise.series": "^0.2.0", + "resolve": "^1.19.0", + "rollup-pluginutils": "^2.8.2", + "safe-identifier": "^0.4.2", + "style-inject": "^0.3.0" + } + }, + "rollup-plugin-svelte": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-svelte/-/rollup-plugin-svelte-7.1.0.tgz", + "integrity": "sha512-vopCUq3G+25sKjwF5VilIbiY6KCuMNHP1PFvx2Vr3REBNMDllKHFZN2B9jwwC+MqNc3UPKkjXnceLPEjTjXGXg==", + "dev": true, + "requires": { + "require-relative": "^0.8.7", + "rollup-pluginutils": "^2.8.2" + } + }, + "rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + } + }, + "rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "dev": true, + "requires": { + "estree-walker": "^0.6.1" + }, + "dependencies": { + "estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true + } + } + }, + "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==" + }, + "safe-identifier": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/safe-identifier/-/safe-identifier-0.4.2.tgz", + "integrity": "sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sass": { + "version": "1.38.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.38.1.tgz", + "integrity": "sha512-Lj8nPaSYOuRhgqdyShV50fY5jKnvaRmikUNalMPmbH+tKMGgEKVkltI/lP30PEfO2T1t6R9yc2QIBLgOc3uaFw==", + "dev": true, + "requires": { + "chokidar": ">=3.0.0 <4.0.0" + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } + } + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } }, "setprototypeof": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" - } - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "readdirp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", - "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "minimatch": "^3.0.2", - "readable-stream": "^2.0.2", - "set-immediate-shim": "^1.0.1" - } - }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "dev": true, - "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - } - }, - "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", - "dev": true - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - }, - "regenerator-transform": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", - "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", - "dev": true, - "requires": { - "babel-runtime": "^6.18.0", - "babel-types": "^6.19.0", - "private": "^0.1.6" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regexpu-core": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", - "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", - "dev": true, - "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" - } - }, - "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", - "dev": true - }, - "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "requires": { - "is-finite": "^1.0.0" - } - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "mime-db": { - "version": "1.35.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz", - "integrity": "sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "socket.io": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.1.3.tgz", + "integrity": "sha512-tLkaY13RcO4nIRh1K2hT5iuotfTaIQw7cVIe0FUykN3SuQi0cm7ALxuyT5/CtDswOMWUzMGTibxYNx/gU7In+Q==", + "requires": { + "@types/cookie": "^0.4.0", + "@types/cors": "^2.8.10", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.1", + "engine.io": "~5.1.1", + "socket.io-adapter": "~2.3.1", + "socket.io-parser": "~4.0.4" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } }, - "mime-types": { - "version": "2.1.19", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz", - "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==", - "requires": { - "mime-db": "~1.35.0" - } + "socket.io-adapter": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.1.tgz", + "integrity": "sha512-8cVkRxI8Nt2wadkY6u60Y4rpW3ejA1rxgcK2JuyIhmF+RMNpTy1QRtkHIDUOf3B4HlQwakMsWbKftMv/71VMmw==" + }, + "socket.io-client": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.1.3.tgz", + "integrity": "sha512-hISFn6PDpgDifVUiNklLHVPTMv1LAk8poHArfIUdXa+gKgbr0MZbAlquDFqCqsF30yBqa+jg42wgos2FK50BHA==", + "dev": true, + "requires": { + "@types/component-emitter": "^1.2.10", + "backo2": "~1.0.2", + "component-emitter": "~1.3.0", + "debug": "~4.3.1", + "engine.io-client": "~5.1.2", + "parseuri": "0.0.6", + "socket.io-parser": "~4.0.4" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "socket.io-parser": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", + "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", + "dev": true, + "requires": { + "@types/component-emitter": "^1.2.10", + "component-emitter": "~1.3.0", + "debug": "~4.3.1" + } + } + } + }, + "socket.io-parser": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", + "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", + "requires": { + "@types/component-emitter": "^1.2.10", + "component-emitter": "~1.3.0", + "debug": "~4.3.1" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - } - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dev": true, - "requires": { - "resolve-from": "^3.0.0" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "dev": true, - "requires": { - "glob": "^7.0.5" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "dev": true, - "requires": { - "is-promise": "^2.1.0" - } - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "dev": true, - "requires": { - "aproba": "^1.1.1" - } - }, - "rxjs": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.2.2.tgz", - "integrity": "sha512-0MI8+mkKAXZUF9vMrEoPnaoHkfzBPP4IGwUYRJhIRJF6/w3uByO1e91bEHn8zd43RdkTMKiooYKmwz7RH6zfOQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "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==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sass-graph": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", - "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", - "dev": true, - "requires": { - "glob": "^7.0.0", - "lodash": "^4.0.0", - "scss-tokenizer": "^0.2.3", - "yargs": "^7.0.0" - } - }, - "sass-loader": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.1.0.tgz", - "integrity": "sha512-+G+BKGglmZM2GUSfT9TLuEp6tzehHPjAMoRRItOojWIqIGPloVCMhNIQuG639eJ+y033PaGTSjLaTHts8Kw79w==", - "dev": true, - "requires": { - "clone-deep": "^2.0.1", - "loader-utils": "^1.0.1", - "lodash.tail": "^4.1.1", - "neo-async": "^2.5.0", - "pify": "^3.0.0", - "semver": "^5.5.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "schema-utils": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.5.tgz", - "integrity": "sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" - } - }, - "scss-tokenizer": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", - "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", - "dev": true, - "requires": { - "js-base64": "^2.1.8", - "source-map": "^0.4.2" - }, - "dependencies": { - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": ">=0.0.4" - } - } - } - }, - "semver": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", - "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", - "dev": true - }, - "send": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", - "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.6.2", - "mime": "1.4.1", - "ms": "2.0.0", - "on-finished": "~2.3.0", - "range-parser": "~1.2.0", - "statuses": "~1.4.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - } - } - }, - "serialize-javascript": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.5.0.tgz", - "integrity": "sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ==", - "dev": true - }, - "serve-static": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", - "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.2", - "send": "0.16.2" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "dev": true - }, - "set-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shallow-clone": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz", - "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==", - "dev": true, - "requires": { - "is-extendable": "^0.1.1", - "kind-of": "^5.0.0", - "mixin-object": "^2.0.1" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "socket.io": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", - "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", - "requires": { - "debug": "~3.1.0", - "engine.io": "~3.2.0", - "has-binary2": "~1.0.2", - "socket.io-adapter": "~1.1.0", - "socket.io-client": "2.1.1", - "socket.io-parser": "~3.2.0" - } - }, - "socket.io-adapter": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz", - "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=" - }, - "socket.io-client": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz", - "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==", - "requires": { - "backo2": "1.0.2", - "base64-arraybuffer": "0.1.5", - "component-bind": "1.0.0", - "component-emitter": "1.2.1", - "debug": "~3.1.0", - "engine.io-client": "~3.2.0", - "has-binary2": "~1.0.2", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "object-component": "0.0.3", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "socket.io-parser": "~3.2.0", - "to-array": "0.1.4" - } - }, - "socket.io-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", - "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", - "requires": { - "component-emitter": "1.2.1", - "debug": "~3.1.0", - "isarray": "2.0.1" - }, - "dependencies": { - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" - } - } - }, - "source-list-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", - "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", - "dev": true, - "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "dev": true, - "requires": { - "source-map": "^0.5.6" - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true - }, - "spdx-correct": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", - "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", - "dev": true - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sshpk": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", - "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "ssri": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", - "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.1" - } - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "statuses": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" - }, - "stdout-stream": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.0.tgz", - "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=", - "dev": true, - "requires": { - "readable-stream": "^2.0.1" - } - }, - "stream-browserify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", - "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", - "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", - "dev": true - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true, - "requires": { - "get-stdin": "^4.0.1" - } - }, - "style-loader": { - "version": "0.22.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.22.1.tgz", - "integrity": "sha512-WXUrLeinPIR1Oat3PfCDro7qTniwNTJqGqv1KcQiL3JR5PzrVLTyNsd9wTsPXG/qNCJ7lzR2NY/QDjFsP7nuSQ==", - "dev": true, - "requires": { - "loader-utils": "^1.1.0", - "schema-utils": "^0.4.5" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "tapable": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.0.0.tgz", - "integrity": "sha512-dQRhbNQkRnaqauC7WqSJ21EEksgT0fYZX2lqXzGkpo8JNig9zGZTYoMGvyI2nWmXlE2VSVXVDu7wLVGu/mQEsg==", - "dev": true - }, - "tar": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", - "dev": true, - "requires": { - "block-stream": "*", - "fstream": "^1.0.2", - "inherits": "2" - } - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "dev": true, - "requires": { - "readable-stream": "^2.1.5", - "xtend": "~4.0.1" - } - }, - "timers-browserify": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", - "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", - "dev": true, - "requires": { - "setimmediate": "^1.0.4" - } - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "to-array": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - } - } - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true - }, - "true-case-path": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.2.tgz", - "integrity": "sha1-fskRMJJHZsf1c74wIMNPj9/QDWI=", - "dev": true, - "requires": { - "glob": "^6.0.4" - }, - "dependencies": { - "glob": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", - "dev": true, - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } - } - }, - "tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", - "dev": true - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "optional": true - }, - "type-is": { - "version": "1.6.16", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", - "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.18" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "uglify-es": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", - "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", - "dev": true, - "requires": { - "commander": "~2.13.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==", - "dev": true - } - } - }, - "uglifyjs-webpack-plugin": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz", - "integrity": "sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==", - "dev": true, - "requires": { - "cacache": "^10.0.4", - "find-cache-dir": "^1.0.0", - "schema-utils": "^0.4.5", - "serialize-javascript": "^1.4.0", - "source-map": "^0.6.1", - "uglify-es": "^3.3.4", - "webpack-sources": "^1.1.0", - "worker-farm": "^1.5.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==", - "dev": true - } - } - }, - "ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" - }, - "union-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" - } - } - } - }, - "unique-filename": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz", - "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", - "dev": true, - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz", - "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - } - } - }, - "upath": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", - "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==", - "dev": true - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", - "dev": true, - "requires": { - "inherits": "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=", - "dev": true - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" - }, - "v8-compile-cache": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz", - "integrity": "sha512-1wFuMUIM16MDJRCrpbpuEPTUGmM5QMUg0cr3KFwra2XgOgFcPGDQHDh3CszSCD2Zewc/dh/pamNEW8CbfDebUw==", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "vm-browserify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", - "dev": true, - "requires": { - "indexof": "0.0.1" - } - }, - "watchpack": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", - "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", - "dev": true, - "requires": { - "chokidar": "^2.0.2", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" - } - }, - "webpack": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.17.1.tgz", - "integrity": "sha512-vdPYogljzWPhFKDj3Gcp01Vqgu7K3IQlybc3XIdKSQHelK1C3eIQuysEUR7MxKJmdandZlQB/9BG2Jb1leJHaw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.5.13", - "@webassemblyjs/helper-module-context": "1.5.13", - "@webassemblyjs/wasm-edit": "1.5.13", - "@webassemblyjs/wasm-opt": "1.5.13", - "@webassemblyjs/wasm-parser": "1.5.13", - "acorn": "^5.6.2", - "acorn-dynamic-import": "^3.0.0", - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0", - "chrome-trace-event": "^1.0.0", - "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.0", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.3.0", - "loader-utils": "^1.1.0", - "memory-fs": "~0.4.1", - "micromatch": "^3.1.8", - "mkdirp": "~0.5.0", - "neo-async": "^2.5.0", - "node-libs-browser": "^2.0.0", - "schema-utils": "^0.4.4", - "tapable": "^1.0.0", - "uglifyjs-webpack-plugin": "^1.2.4", - "watchpack": "^1.5.0", - "webpack-sources": "^1.0.1" - } - }, - "webpack-cli": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.1.0.tgz", - "integrity": "sha512-p5NeKDtYwjZozUWq6kGNs9w+Gtw/CPvyuXjXn2HMdz8Tie+krjEg8oAtonvIyITZdvpF7XG9xDHwscLr2c+ugQ==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "enhanced-resolve": "^4.0.0", - "global-modules-path": "^2.1.0", - "import-local": "^1.0.0", - "inquirer": "^6.0.0", - "interpret": "^1.1.0", - "loader-utils": "^1.1.0", - "supports-color": "^5.4.0", - "v8-compile-cache": "^2.0.0", - "yargs": "^12.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", + "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", + "dev": true + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } }, - "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==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "sparkline": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/sparkline/-/sparkline-0.1.2.tgz", + "integrity": "sha1-w73kYlKxNU5xDEsgDVSBa9nwejI=", + "dev": true, + "requires": { + "here": "0.0.2", + "nopt": "~2.1.2" + } }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "decamelize": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz", - "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==", - "dev": true, - "requires": { - "xregexp": "4.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "dev": true, - "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" - } - }, - "p-limit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", - "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", - "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "string-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", + "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=", + "dev": true + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "min-indent": "^1.0.0" + } + }, + "style-inject": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/style-inject/-/style-inject-0.3.0.tgz", + "integrity": "sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw==", + "dev": true + }, + "style-mod": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.0.0.tgz", + "integrity": "sha512-OPhtyEjyyN9x3nhPsu76f52yUGXiZcgvsrFVtvTkyGRQJ0XK+GPc6ov1z+lRpbeabka+MYEQxOYRnt5nF30aMw==", + "dev": true + }, + "stylehacks": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.0.1.tgz", + "integrity": "sha512-Es0rVnHIqbWzveU1b24kbw92HsebBepxfcqe5iix7t9j0PQqhs0IxXVXv0pY2Bxa08CgMkzD6OWql7kbGOuEdA==", + "dev": true, + "requires": { + "browserslist": "^4.16.0", + "postcss-selector-parser": "^6.0.4" + } }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "yargs": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.1.tgz", - "integrity": "sha512-B0vRAp1hRX4jgIOWFtjfNjd9OA9RWYZ6tqGA9/I/IrTMsxmKvtWy+ersM+jzpQqbC3YfLzeABPdeTgcJ9eu1qQ==", - "dev": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^2.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^10.1.0" - } - }, - "yargs-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", - "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", - "dev": true, - "requires": { - "camelcase": "^4.1.0" - } - } - } - }, - "webpack-sources": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz", - "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==", - "dev": true, - "requires": { - "source-list-map": "^2.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==", - "dev": true - } - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true - }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "worker-farm": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", - "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", - "dev": true, - "requires": { - "errno": "~0.1.7" - } - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", - "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - } - }, - "xmlhttprequest-ssl": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", - "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=" - }, - "xregexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz", - "integrity": "sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==", - "dev": true - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true - }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "dev": true - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - }, - "yargs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", - "dev": true, - "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^5.0.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - } - } - }, - "yargs-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", - "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", - "dev": true, - "requires": { - "camelcase": "^3.0.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + } + }, + "svelte": { + "version": "3.42.3", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.42.3.tgz", + "integrity": "sha512-pbdtdNZEx2GBqSM6XEgPoHbwtvWBwFLt/1bRmzsyXZO+i424wFnPe7O5B3GOJDPFSxPRztumAW3mL5LPzecWUg==", + "dev": true + }, + "svelte-preprocess": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-4.8.0.tgz", + "integrity": "sha512-i9Z17cwGlp+kuSSv3kJWdAdAP2L26A5yMzHHdDj8YL+86sN64Yz5/gfjQp3Xb6fiaToo4sB+wTpid/23Gz0yvw==", + "dev": true, + "requires": { + "@types/pug": "^2.0.4", + "@types/sass": "^1.16.0", + "detect-indent": "^6.0.0", + "strip-indent": "^3.0.0" + } + }, + "svelte-spa-router": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/svelte-spa-router/-/svelte-spa-router-3.2.0.tgz", + "integrity": "sha512-igemo5Vs82TGBBw+DjWt6qKameXYzNs6aDXcTxou5XbEvOjiRcAM6MLkdVRCatn6u8r42dE99bt/br7T4qe/AQ==", + "dev": true, + "requires": { + "regexparam": "2.0.0" + } + }, + "svgo": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.4.0.tgz", + "integrity": "sha512-W25S1UUm9Lm9VnE0TvCzL7aso/NCzDEaXLaElCUO/KaVitw0+IBicSVfM1L1c0YHK5TOFh73yQ2naCpVHEQ/OQ==", + "dev": true, + "requires": { + "@trysound/sax": "0.1.1", + "colorette": "^1.2.2", + "commander": "^7.1.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.2", + "csso": "^4.2.0", + "stable": "^0.1.8" + } + }, + "tail": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/tail/-/tail-2.2.3.tgz", + "integrity": "sha512-XbBmVsJZ636kncPew2Y+pOxOsb9GsNFZ1bcAGCDn23ME/JPJ+TImZYjnqBnMLdw+K11Hql5ZgiUQmRvDHaFc6w==", + "dev": true + }, + "term-canvas": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/term-canvas/-/term-canvas-0.0.5.tgz", + "integrity": "sha1-WXr6wvpjaabxeGC86cX2bW6gypY=", + "dev": true + }, + "terser": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.2.tgz", + "integrity": "sha512-0Omye+RD4X7X69O0eql3lC4Heh/5iLj3ggxR/B5ketZLOtLiOqukUgjw3q4PDnNQbsrkKr3UMypqStQG3XKRvw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.19" + }, + "dependencies": { + "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==", + "dev": true + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } + } + }, + "timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "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==", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "w3c-keyname": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.4.tgz", + "integrity": "sha512-tOhfEwEzFLJzf6d1ZPkYfGj+FWhIpBux9ppoP3rlclw3Z0BZv3N7b7030Z1kYth+6rDuAsXUFr+d0VE6Ed1ikw==", + "dev": true + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==" + }, + "x256": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/x256/-/x256-0.0.2.tgz", + "integrity": "sha1-ya8Yh296F1gB1WT+cK2egxd4STQ=", + "dev": true + }, + "xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dev": true, + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + } + }, + "xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "dev": true + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true + }, + "yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", + "dev": true } - } - }, - "yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" } - } } diff --git a/package.json b/package.json index f33537d..879203d 100644 --- a/package.json +++ b/package.json @@ -1,38 +1,55 @@ { - "name": "luxcena-neo", - "version": "0.0.1", - "description": "Some description.", - "dependencies": { - "express": "^4.16.3", - "fs-extra": "^7.0.0", - "request": "^2.88.0", - "socket.io": "^2.1.1", - "monaco-editor": "^0.14.3" - }, - "scripts": { - "start": "node app.js", - "dev": "webpack; npm start" - }, - "devDependencies": { - "@fortawesome/fontawesome-free": "^5.3.1", - "babel-core": "^6.26.3", - "babel-loader": "^7.1.5", - "babel-preset-es2015": "^6.24.1", - "css-loader": "^1.0.0", - "extract-loader": "^2.0.1", - "file-loader": "^2.0.0", - "jquery": "^3.3.1", - "mini-css-extract-plugin": "^0.4.2", - "node-sass": "^4.9.3", - "sass-loader": "^7.1.0", - "style-loader": "^0.22.1", - "webpack": "^4.17.1", - "webpack-cli": "^3.1.0" - }, - "author": "jakobs1n", - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/JakobST1n/Luxcena-Neo" - } + "name": "luxcena-neo", + "version": "0.0.1", + "description": "Some description.", + "scripts": { + "start": "node app.js", + "dev": "node runDev.js", + "dev:frontend": "rollup -c -w", + "build:frontend": "rollup -c", + "build:fontawesome": "mkdir -p public/assets/vendor/@fortawesome/fontawesome-free/webfonts && mkdir -p public/assets/vendor/@fortawesome/fontawesome-free/css && cp -a ./node_modules/@fortawesome/fontawesome-free/webfonts public/assets/vendor/@fortawesome/fontawesome-free/ && cp ./node_modules/@fortawesome/fontawesome-free/css/all.min.css public/assets/vendor/@fortawesome/fontawesome-free/css/all.min.css", + "build:dialog-polyfill": "mkdir -p public/assets/vendor/dialog-polyfill && cp ./node_modules/dialog-polyfill/dist/dialog-polyfill.css public/assets/vendor/dialog-polyfill/dialog-polyfill.css" + }, + "dependencies": { + "crypto-js": "^3.1.9-1", + "express": "^4.16.3", + "fs-extra": "^8.1.0", + "ini": "^2.0.0", + "request": "^2.88.0", + "socket.io": "^4.1.3" + }, + "devDependencies": { + "@codemirror/basic-setup": "^0.19.0", + "@codemirror/lang-python": "^0.19.2", + "@fortawesome/fontawesome-free": "^5.15.2", + "@jaames/iro": "^5.5.2", + "@rollup/plugin-commonjs": "^17.0.0", + "@rollup/plugin-node-resolve": "^11.2.1", + "@rollup/plugin-replace": "^3.0.0", + "blessed": "^0.1.81", + "blessed-contrib": "^4.8.17", + "chokidar": "^3.1.1", + "colors": "^1.4.0", + "dialog-polyfill": "^0.5.6", + "nanoid": "^3.1.25", + "postcss": "^8.3.6", + "postcss-scss": "^4.0.0", + "rollup": "^2.3.4", + "rollup-plugin-css-only": "^3.1.0", + "rollup-plugin-livereload": "^2.0.0", + "rollup-plugin-postcss": "^4.0.1", + "rollup-plugin-svelte": "^7.0.0", + "rollup-plugin-terser": "^7.0.0", + "sass": "^1.37.5", + "socket.io-client": "^4.1.3", + "svelte": "^3.0.0", + "svelte-preprocess": "^4.7.4", + "svelte-spa-router": "^3.2.0", + "tail": "^2.2.3" + }, + "author": "jakobst1n", + "repository": { + "type": "git", + "url": "https://github.com/JakobST1n/Luxcena-Neo" + } } diff --git a/public/assets/css/bundle.css b/public/assets/css/bundle.css deleted file mode 100644 index fc0b937..0000000 --- a/public/assets/css/bundle.css +++ /dev/null @@ -1,368 +0,0 @@ -.general header, .general main, .general footer { - padding-left: 300px; } - -.general header .brand-logo { - padding-left: 15px; } - -@media only screen and (max-width: 992px) { - .general header, .general main, .general footer { - padding-left: 0; } } - -.general .user-view { - margin-top: 5px; - height: 150px; } - -.general .user-view .background { - margin-left: 85px; } - -@keyframes highlightNew { - 0% { - background-color: #ffc107; } - 100% { - background-color: white; } } - -.general .newLogEntry { - -webkit-animation-name: highlightNew; - /* Safari 4.0 - 8.0 */ - -webkit-animation-duration: 4s; - /* Safari 4.0 - 8.0 */ - animation-name: highlightNew; - animation-duration: 4s; } - -#scripts .script-list .badge { - margin-left: 0; - float: none; } - -#scripts .card { - /*margin-bottom: 60px;*/ } - -@media only screen and (max-width: 599px) { - #scripts .card-action { - border-top: 0 !important; - padding: 0 !important; - height: 0; - transition: padding 0.5s ease 0s, height 0.5s ease 0s; } - #scripts .card-action a i { - transform: scale(0); - transition: transform 0.1s ease 0.1s; } - #scripts .card:hover > .card-action { - height: 55px; - padding: 16px 24px !important; } - #scripts .card:hover > .card-action > a > i { - transform: scale(1); } } - -.neo_ide html, -.neo_ide body { - height: 100%; - font-family: 'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif; - padding: 0; - margin: 0; - /*margin-top: -20px;*/ - overflow: auto; } - -.neo_ide #editor { - width: 100%; - height: 100%; - margin: -10px; } - -.neo_ide .page-container { - display: flex; - flex-direction: column; - justify-content: center; } - -.neo_ide .nav-container { - width: 100%; - height: 45px; - background-color: #333333; } - .neo_ide .nav-container ul { - display: flex; - flex-direction: row; - justify-content: space-between; - flex: 1; - align-self: center; - width: 100%; - list-style: none; } - .neo_ide .nav-container ul .left { - color: white; - padding: 15px; - margin-left: -40px; - margin-top: -19px; - font-size: 20px; } - .neo_ide .nav-container ul .center { - color: white; } - .neo_ide .nav-container ul .right { - width: 80px; - margin-right: 174px; - color: white; } - .neo_ide .nav-container ul .right .button { - padding: 15px; - margin-top: -15px; } - .neo_ide .nav-container .fileName { - color: grey; } - .neo_ide .nav-container ul .button:hover { - background-color: black; } - -@keyframes menuBarIn { - from { - height: 0; } - to { - height: 25px; } } - -@keyframes menuBarOut { - from { - height: 25px; } - to { - height: 0; } } - -.neo_ide .menuBarIn { - animation-name: menuBarIn; - animation-duration: 0.5s; - height: 25px !important; } - -.neo_ide .menuBarOut { - animation-name: menuBarOut; - animation-duration: 0.5s; - height: 0px !important; } - -.neo_ide .menubar-container { - background-color: #4e4e4e; - height: 0; } - .neo_ide .menubar-container ul { - display: flex; - flex-direction: row; - flex: 1; - width: 100%; - list-style: none; - margin-top: 2px; - margin-left: -30px; } - .neo_ide .menubar-container .button { - background-color: #3e3e3e; - color: white; - padding: 3px 10px 3px 10px; - margin-right: 4px; - font-size: 13px; - border-radius: 7px; } - .neo_ide .menubar-container .button:hover { - background-color: black; } - -.neo_ide .panel-container { - display: flex; - flex-direction: column; - flex: 1; - overflow: hidden; } - .neo_ide .panel-container .panel-top { - flex: 0 0 auto; - padding: 10px; - height: 80%; - width: 100%; - white-space: nowrap; - background: #838383; - color: white; } - .neo_ide .panel-container .splitter { - flex: 0 0 auto; - margin-top: -20px; - height: 25px; - background: url(https://raw.githubusercontent.com/RickStrahl/jquery-resizable/master/assets/hsizegrip.png) center center no-repeat #535353; - cursor: row-resize; } - .neo_ide .panel-container .splitter .text { - margin-left: 10px; - margin-top: 4px; - color: #cccccc; } - .neo_ide .panel-container .splitter .text span { - margin-left: 5px; } - .neo_ide .panel-container .panel-bottom { - flex: 1 1 auto; - padding: 10px; - /*min-height: 200px;*/ - background: black; - color: white; - overflow-y: scroll; } - .neo_ide .panel-container .panel-bottom pre { - margin-top: -10px; } - .neo_ide .panel-container .panel-bottom pre .stdout { - color: white; } - .neo_ide .panel-container .panel-bottom pre .stderr { - color: red; } - .neo_ide .panel-container .panel-bottom pre .close { - color: yellow; } - -.neo_ide label { - font-size: 1.2em; - display: block; - font-weight: bold; - margin: 30px 0 10px; } - -.neo_ide .page-loader { - position: absolute; - margin: 0; - padding: 0; - border: 0; - width: 100vw; - height: 100vh; - background-color: #1fa2ed; - color: #fff; } - .neo_ide .page-loader .loader { - display: flex; - justify-content: center; - flex-flow: nowrap column; - align-items: center; - min-height: 100vh; } - .neo_ide .page-loader .loading { - display: flex; - margin: 24px 0; } - .neo_ide .page-loader .loading__element { - font: normal 100 2rem/1 Roboto; - letter-spacing: .5em; } - .neo_ide .page-loader [class*="el"] { - animation: bouncing 3s infinite ease; } - .neo_ide .page-loader .el1 { - animation-delay: 0.1s; } - .neo_ide .page-loader .el2 { - animation-delay: 0.2s; } - .neo_ide .page-loader .el3 { - animation-delay: 0.3s; } - .neo_ide .page-loader .el4 { - animation-delay: 0.4s; } - .neo_ide .page-loader .el5 { - animation-delay: 0.5s; } - .neo_ide .page-loader .el6 { - animation-delay: 0.6s; } - .neo_ide .page-loader .el7 { - animation-delay: 0.7s; } - .neo_ide .page-loader .el8 { - animation-delay: 0.8s; } - .neo_ide .page-loader .el9 { - animation-delay: 0.9s; } - .neo_ide .page-loader .el10 { - animation-delay: 1s; } - .neo_ide .page-loader .el11 { - animation-delay: 1.1s; } - .neo_ide .page-loader .el12 { - animation-delay: 1.2s; } - .neo_ide .page-loader .el13 { - animation-delay: 1.3s; } - .neo_ide .page-loader .el14 { - animation-delay: 1.4s; } - .neo_ide .page-loader .el15 { - animation-delay: 1.5s; } - .neo_ide .page-loader .el16 { - animation-delay: 1.6s; } - .neo_ide .page-loader .el17 { - animation-delay: 1.7s; } - .neo_ide .page-loader .el18 { - animation-delay: 1.8s; } - .neo_ide .page-loader .el19 { - animation-delay: 1.9s; } - -@keyframes bouncing { - 0%, 100% { - transform: scale3d(1, 1, 1); } - 50% { - transform: scale3d(0, 0, 1); } } - .neo_ide .page-loader .current-event { - color: rgba(255, 255, 255, 0.53); - font: normal 100 1rem/1 Roboto; - letter-spacing: .1em; } - -#update * { - margin: 0; - padding: 0; - border: 0; - box-sizing: border-box; } - #update *:before, #update *:after { - box-sizing: inherit; } - -#update html { - width: 100vw; - height: 100vh; } - -#update body { - background-color: #1fa2ed; - color: #fff; } - -#update .start-screen { - display: flex; - justify-content: center; - flex-flow: nowrap column; - align-items: center; - min-height: 100vh; } - -#update .loading { - display: flex; - margin: 24px 0; } - -#update .loading__element { - font: normal 100 2rem/1 Roboto; - letter-spacing: .5em; } - -#update [class*="el"] { - animation: bouncing 3s infinite ease; } - -#update .el1 { - animation-delay: 0.1s; } - -#update .el2 { - animation-delay: 0.2s; } - -#update .el3 { - animation-delay: 0.3s; } - -#update .el4 { - animation-delay: 0.4s; } - -#update .el5 { - animation-delay: 0.5s; } - -#update .el6 { - animation-delay: 0.6s; } - -#update .el7 { - animation-delay: 0.7s; } - -#update .el8 { - animation-delay: 0.8s; } - -#update .el9 { - animation-delay: 0.9s; } - -#update .el10 { - animation-delay: 1s; } - -#update .el11 { - animation-delay: 1.1s; } - -#update .el12 { - animation-delay: 1.2s; } - -#update .el13 { - animation-delay: 1.3s; } - -#update .el14 { - animation-delay: 1.4s; } - -#update .el15 { - animation-delay: 1.5s; } - -#update .el16 { - animation-delay: 1.6s; } - -#update .el17 { - animation-delay: 1.7s; } - -#update .el18 { - animation-delay: 1.8s; } - -#update .el19 { - animation-delay: 1.9s; } - -@keyframes bouncing { - 0%, 100% { - transform: scale3d(1, 1, 1); } - 50% { - transform: scale3d(0, 0, 1); } } - -#update .current-event { - color: rgba(255, 255, 255, 0.53); - font: normal 100 1rem/1 Roboto; - letter-spacing: .1em; } - diff --git a/public/assets/img/logo/Icon-0.5x.png b/public/assets/img/logo/Icon-0.5x.png new file mode 100644 index 0000000..d130671 Binary files /dev/null and b/public/assets/img/logo/Icon-0.5x.png differ diff --git a/public/assets/img/logo/Icon-192h.png b/public/assets/img/logo/Icon-192h.png new file mode 100644 index 0000000..a1d50c9 Binary files /dev/null and b/public/assets/img/logo/Icon-192h.png differ diff --git a/public/assets/img/logo/Icon-1x.png b/public/assets/img/logo/Icon-1x.png new file mode 100644 index 0000000..1beab50 Binary files /dev/null and b/public/assets/img/logo/Icon-1x.png differ diff --git a/public/assets/img/logo/Icon-2x.png b/public/assets/img/logo/Icon-2x.png new file mode 100644 index 0000000..c37a2fb Binary files /dev/null and b/public/assets/img/logo/Icon-2x.png differ diff --git a/public/assets/img/logo/Icon-512h.png b/public/assets/img/logo/Icon-512h.png new file mode 100644 index 0000000..fbb0f39 Binary files /dev/null and b/public/assets/img/logo/Icon-512h.png differ diff --git a/public/assets/img/logo/Icon-BG-0.5x.png b/public/assets/img/logo/Icon-BG-0.5x.png new file mode 100644 index 0000000..05ec818 Binary files /dev/null and b/public/assets/img/logo/Icon-BG-0.5x.png differ diff --git a/public/assets/img/logo/Icon-BG-192h.png b/public/assets/img/logo/Icon-BG-192h.png new file mode 100644 index 0000000..0e5e962 Binary files /dev/null and b/public/assets/img/logo/Icon-BG-192h.png differ diff --git a/public/assets/img/logo/Icon-BG-1x.png b/public/assets/img/logo/Icon-BG-1x.png new file mode 100644 index 0000000..6f3125f Binary files /dev/null and b/public/assets/img/logo/Icon-BG-1x.png differ diff --git a/public/assets/img/logo/Icon-BG-2x.png b/public/assets/img/logo/Icon-BG-2x.png new file mode 100644 index 0000000..a7ff1d4 Binary files /dev/null and b/public/assets/img/logo/Icon-BG-2x.png differ diff --git a/public/assets/img/logo/Icon-BG-512h.png b/public/assets/img/logo/Icon-BG-512h.png new file mode 100644 index 0000000..d4ebc22 Binary files /dev/null and b/public/assets/img/logo/Icon-BG-512h.png differ diff --git a/public/assets/img/logo/favicon.ico b/public/assets/img/logo/favicon.ico new file mode 100644 index 0000000..b480565 Binary files /dev/null and b/public/assets/img/logo/favicon.ico differ diff --git a/public/assets/js/bundle.js b/public/assets/js/bundle.js deleted file mode 100644 index 86aef2f..0000000 --- a/public/assets/js/bundle.js +++ /dev/null @@ -1,444 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports, __webpack_require__) { - -// General JavaScript -__webpack_require__ (1)(); - -// Page-specific JavaScript -const pageName = document.getElementsByTagName("body")[0].id; -try { - __webpack_require__(3)("./" + pageName)(); -} catch (error) { - console.log( - "Something went wrong when loading the js for this page...\n" + - "The pageName is \"" + pageName + "\".\n" + - "If it was excpected to get js for this page, please check the filename, and recompile webpack." - ); -} - -// Require all styles -__webpack_require__(8); -// Require font awesome -__webpack_require__(10); - - -/***/ }), -/* 1 */ -/***/ (function(module, exports, __webpack_require__) { - -let sidenav = __webpack_require__(2); - -module.exports = () => { - const pageName = document.getElementsByTagName("body")[0].id; - if (pageName == "neo_ide") { return; } - - document.getElementById("sidenav").innerHTML = sidenav; - - M.AutoInit(); -}; - - -/***/ }), -/* 2 */ -/***/ (function(module, exports) { - -module.exports = ` - -`; - - -/***/ }), -/* 3 */ -/***/ (function(module, exports, __webpack_require__) { - -var map = { - "./": 4, - "./general": 1, - "./general.js": 1, - "./index": 4, - "./index.js": 4, - "./logviewer": 5, - "./logviewer.js": 5, - "./neo_ide": 6, - "./neo_ide.js": 6, - "./scripts": 7, - "./scripts.js": 7 -}; - - -function webpackContext(req) { - var id = webpackContextResolve(req); - return __webpack_require__(id); -} -function webpackContextResolve(req) { - var id = map[req]; - if(!(id + 1)) { // check for number or string - var e = new Error("Cannot find module '" + req + "'"); - e.code = 'MODULE_NOT_FOUND'; - throw e; - } - return id; -} -webpackContext.keys = function webpackContextKeys() { - return Object.keys(map); -}; -webpackContext.resolve = webpackContextResolve; -module.exports = webpackContext; -webpackContext.id = 3; - -/***/ }), -/* 4 */ -/***/ (function(module, exports) { - -let socket = io(); - -module.exports = () => { - M.AutoInit(); - setupSocket(); - - setInterval(() => { - socket.emit("GetGeneralInfo"); - }, 500); - - socket.emit("GetLog", {filter: "success error event", entryN: 10}); -}; - -function setupSocket() { - - socket.on("lastLogEntries", (entries) => { - let list = ""; - entries.forEach((entry) => { - list += "" + prettifyType(entry.type) + "" + entry.time + "" + entry.details + ""; - }); - - document.getElementById("log-table-body").innerHTML = list; - M.AutoInit(); - }); - - socket.on("newLogEntry", (entry) => { - // Start with parsing the new entry, no reason to select the DOM-element and stuff, if we are filtering out the entry anyway. - let type = entry.type; - if ( (type.toUpperCase() !== "SUCCESS") && (type.toUpperCase() !== "ERROR") && (type.toUpperCase() !== "EVENT") && (type.toUpperCase() !== "INFO")) { - return; - } - - let logTable = document.getElementById("log-table-body"); - - let LTable = logTable.rows.length; - logTable.deleteRow(LTable - 1); // Since length outputs a 1-based number - - let newEntry = logTable.insertRow(0); - newEntry.insertCell(0).innerHTML = prettifyType(entry.type); - newEntry.insertCell(1).innerHTML = entry.time; - newEntry.insertCell(2).innerHTML = entry.details; - M.AutoInit(); - newEntry.className = "newLogEntry"; - }); - - socket.on("generalInfo", (info) => { - if (info["scriptIsExited"]) { - document.getElementById("currentScript").innerHTML = info["currentScript"] + " (exited)"; - } else { - document.getElementById("currentScript").innerHTML = info["currentScript"]; - } - document.getElementById("uptime").innerHTML = info["uptime"] + " seconds"; - }); - -} - -function prettifyType(type) { - let prettyTable = { - "DEBUG": `😸`, - "INFO": `ℹ️`, - "WARNING": `⚠️`, - "EVENT": `⚡️`, - "SUCCESS": ``, - "ERROR": `🔴`, - "PYTHON": `🐍` - }; - return prettyTable[type]; -} - - -/***/ }), -/* 5 */ -/***/ (function(module, exports) { - -let socket = io(); - -module.exports = () => { - M.AutoInit(); - - socket.emit("GetLog", {filter: "success error event debug python info warning", entryN: 1000}); - socket.on("lastLogEntries", (entries) => { - M.toast({html: "Loading log-files..."}); - console.log("Log-entries received: " + entries.length); - let HTMLBasicTable = ""; - let HTMLAdvancedTable = ""; - let HTMLScriptTable = ""; - let HTMLRAWTable = ""; - - entries.forEach((entry) => { - let strHTML = "" + prettifyType(entry.type) + "" + entry.time + "" + entry.details + ""; - - if (entry.type === "SUCCESS") { HTMLBasicTable += strHTML; } - if (entry.type === "ERROR") { HTMLBasicTable += strHTML; } - if (entry.type === "EVENT") { HTMLBasicTable += strHTML; } - if (entry.type === "PYTHON") { HTMLScriptTable += strHTML; } - if (entry.type !== "PYTHON") { HTMLAdvancedTable += strHTML; } - - //HTMLRAWTable += entry.join(" "); - }); - - document.getElementById("log-table-basic").innerHTML = HTMLBasicTable; - document.getElementById("log-table-script").innerHTML = HTMLScriptTable; - document.getElementById("log-table-advanced").innerHTML = HTMLAdvancedTable; - //document.getElementById("log-table-raw").innerHTML = HTMLRAWTable; - - }); - - socket.on("newLogEntry", (entry) => { - if (entry.type === "SUCCESS") { appendEntryToTable("log-table-basic", entry); } - if (entry.type === "ERROR") { appendEntryToTable("log-table-basic", entry); } - if (entry.type === "EVENT") { appendEntryToTable("log-table-basic", entry); } - if (entry.type === "PYTHON") { appendEntryToTable("log-table-script", entry); } - if (entry.type !== "PYTHON") { appendEntryToTable("log-table-advanced", entry); } - }); - -}; - -function appendEntryToTable(tableName, entry) { - let newEntry = document.getElementById(tableName).insertRow(0); - newEntry.insertCell(0).innerHTML = prettifyType(entry.type); - newEntry.insertCell(1).innerHTML = entry.time; - newEntry.insertCell(2).innerHTML = entry.details; - M.AutoInit(); - newEntry.className = "newLogEntry"; -} - -function prettifyType(type) { - let prettyTable = { - "DEBUG": `😸`, - "INFO": `ℹ️`, - "WARNING": `⚠️`, - "EVENT": `⚡️`, - "SUCCESS": ``, - "ERROR": `🔴`, - "PYTHON": `🐍` - }; - return prettyTable[type]; -} - -/***/ }), -/* 6 */ -/***/ (function(module, exports) { - -module.exports = () => { - - -}; - -/***/ }), -/* 7 */ -/***/ (function(module, exports) { - -module.exports = () => { - let socket = io(); - socket.emit("GetScripts", {}); - - socket.on("updatedScriptList", (scriptList) => { - let localScriptsHTML = ""; - let remoteScriptsHTML = ""; - - for (let i = 0; i < scriptList.length; i++) { - if (scriptList[i].loc !== "local") { continue; } - let HTMLElem = "
              • {{script_name}}

                {{badges}}

                {{buttons}}
              • "; - if (scriptList[i].loc === "local") { - HTMLElem = HTMLElem.replace("{{badges}}", ""); - HTMLElem = HTMLElem.replace("{{script_name}}", scriptList[i].name); - HTMLElem = HTMLElem.replace("{{buttons}}", - "play_arrow" + - "edit" + - "delete_forever" - ); - localScriptsHTML += HTMLElem; - } else if (scriptList[i].loc === "remote") { - HTMLElem = HTMLElem.replace("{{badges}}", "GitHub"); - HTMLElem = HTMLElem.replace("{{script_name}}", scriptList[i].name); - remoteScriptsHTML += HTMLElem; - } - } - - document.getElementById("local-scripts").innerHTML = localScriptsHTML; - document.getElementById("remote-scripts").innerHTML = remoteScriptsHTML; - - }); - - /* - The delays here with settimeout, is set to a second deliberately, because, rather than making a whole checking-thing. - We just wait a second, and assume, that if it worked, the change should show now. Else, check the logViewer. - */ - function clickHandler(event) { - let element = event.target.parentElement; - - if (element.className === "selectScript") { - M.toast({html: "Now selecting script: " + element.dataset.path}); - socket.emit("SelectScript", {"scriptPath": element.dataset.path}); - - } else if (element.className === "editScript") { - window.location.href = ( - "http://" + window.location.hostname + ":" + window.location.port + - "/neo_ide?scriptName=" + btoa(element.dataset.path) - ); - - } else if (element.className === "deleteScript") { - if (confirm("Do you really want to delete this script?\n" + element.dataset.path + "\n\nYou can not undo this action, and the script will be lost forever...")) { - M.toast({html: "Trying to create script. If no change after a second. Check the logViewer."}); - socket.emit("DeleteScript", {"scriptPath": element.dataset.path}); - setTimeout(() => {socket.emit("GetScripts", {})}, 1000); - } - - } else if (element.id === "createEmptyScript") { - var scriptName = prompt("Please enter the name of the new script:"); - if (scriptName != null || scriptName != "") { - M.toast({html: "Trying to create script. If no change after a second. Check the logViewer."}); - socket.emit("CreateEmptyScript", {"scriptName": scriptName}); - setTimeout(() => {socket.emit("GetScripts", {})}, 1000); - } - - } - - } - - addEventListener("click", clickHandler, false); - -}; - - -/***/ }), -/* 8 */ -/***/ (function(module, exports, __webpack_require__) { - -// extracted by mini-css-extract-plugin - -/***/ }), -/* 9 */, -/* 10 */ -/***/ (function(module, exports) { - -/*! - * Font Awesome Free 5.3.1 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - */ -!function(){"use strict";var c={};try{"undefined"!=typeof window&&(c=window)}catch(c){}var l=(c.navigator||{}).userAgent,h=void 0===l?"":l,z=c,v=(~h.indexOf("MSIE")||h.indexOf("Trident/"),"___FONT_AWESOME___"),m=function(){try{return!0}catch(c){return!1}}(),s=[1,2,3,4,5,6,7,8,9,10],e=s.concat([11,12,13,14,15,16,17,18,19,20]);["xs","sm","lg","fw","ul","li","border","pull-left","pull-right","spin","pulse","rotate-90","rotate-180","rotate-270","flip-horizontal","flip-vertical","stack","stack-1x","stack-2x","inverse","layers","layers-text","layers-counter"].concat(s.map(function(c){return c+"x"})).concat(e.map(function(c){return"w-"+c}));var a=z||{};a[v]||(a[v]={}),a[v].styles||(a[v].styles={}),a[v].hooks||(a[v].hooks={}),a[v].shims||(a[v].shims=[]);var t=a[v],M=Object.assign||function(c){for(var l=1;l>>0;h--;)l[h]=c[h];return l}function U(c){return c.classList?X(c.classList):(c.getAttribute("class")||"").split(" ").filter(function(c){return c})}function K(c,l){var h,z=l.split("-"),v=z[0],m=z.slice(1).join("-");return v!==c||""===m||(h=m,~w.indexOf(h))?null:m}function G(c){return(""+c).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function J(h){return Object.keys(h||{}).reduce(function(c,l){return c+(l+": ")+h[l]+";"},"")}function Q(c){return c.size!==W.size||c.x!==W.x||c.y!==W.y||c.rotate!==W.rotate||c.flipX||c.flipY}function Z(c){var l=c.transform,h=c.containerWidth,z=c.iconWidth;return{outer:{transform:"translate("+h/2+" 256)"},inner:{transform:"translate("+32*l.x+", "+32*l.y+") "+" "+("scale("+l.size/16*(l.flipX?-1:1)+", "+l.size/16*(l.flipY?-1:1)+") ")+" "+("rotate("+l.rotate+" 0 0)")},path:{transform:"translate("+z/2*-1+" -256)"}}}var $={x:0,y:0,width:"100%",height:"100%"},cc=function(c){var l=c.children,h=c.attributes,z=c.main,v=c.mask,m=c.transform,s=z.width,e=z.icon,a=v.width,t=v.icon,M=Z({transform:m,containerWidth:a,iconWidth:s}),f={tag:"rect",attributes:A({},$,{fill:"white"})},r={tag:"g",attributes:A({},M.inner),children:[{tag:"path",attributes:A({},e.attributes,M.path,{fill:"black"})}]},H={tag:"g",attributes:A({},M.outer),children:[r]},i="mask-"+D(),n="clip-"+D(),V={tag:"defs",children:[{tag:"clipPath",attributes:{id:n},children:[t]},{tag:"mask",attributes:A({},$,{id:i,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[f,H]}]};return l.push(V,{tag:"rect",attributes:A({fill:"currentColor","clip-path":"url(#"+n+")",mask:"url(#"+i+")"},$)}),{children:l,attributes:h}},lc=function(c){var l=c.children,h=c.attributes,z=c.main,v=c.transform,m=J(c.styles);if(0"+s.map(bc).join("")+""}var gc=function(){};function Sc(c){return"string"==typeof(c.getAttribute?c.getAttribute(g):null)}var yc={replace:function(c){var l=c[0],h=c[1].map(function(c){return bc(c)}).join("\n");if(l.parentNode&&l.outerHTML)l.outerHTML=h+(E.keepOriginalSource&&"svg"!==l.tagName.toLowerCase()?"\x3c!-- "+l.outerHTML+" --\x3e":"");else if(l.parentNode){var z=document.createElement("span");l.parentNode.replaceChild(z,l),z.outerHTML=h}},nest:function(c){var l=c[0],h=c[1];if(~U(l).indexOf(E.replacementClass))return yc.replace(c);var z=new RegExp(E.familyPrefix+"-.*");delete h[0].attributes.style;var v=h[0].attributes.class.split(" ").reduce(function(c,l){return l===E.replacementClass||l.match(z)?c.toSvg.push(l):c.toNode.push(l),c},{toNode:[],toSvg:[]});h[0].attributes.class=v.toSvg.join(" ");var m=h.map(function(c){return bc(c)}).join("\n");l.setAttribute("class",v.toNode.join(" ")),l.setAttribute(g,""),l.innerHTML=m}};function wc(h,c){var z="function"==typeof c?c:gc;0===h.length?z():(r.requestAnimationFrame||function(c){return c()})(function(){var c=!0===E.autoReplaceSvg?yc.replace:yc[E.autoReplaceSvg]||yc.replace,l=Mc.begin("mutate");h.map(c),l(),z()})}var kc=!1;var xc=null;function Ac(c){if(e&&E.observeMutations){var v=c.treeCallback,m=c.nodeCallback,s=c.pseudoElementsCallback,l=c.observeMutationsRoot,h=void 0===l?H.body:l;xc=new e(function(c){kc||X(c).forEach(function(c){if("childList"===c.type&&0li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-webkit-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1,-1);transform:scale(-1,-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;position:relative;width:2em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.svg-inline--fa.fa-stack-1x{height:1em;width:1em}.svg-inline--fa.fa-stack-2x{height:2em;width:2em}.fa-inverse{color:#fff}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}";if("fa"!==l||h!==c){var v=new RegExp("\\.fa\\-","g"),m=new RegExp("\\."+c,"g");z=z.replace(v,"."+l+"-").replace(m,"."+h)}return z};function zl(c){return{found:!0,width:c[0],height:c[1],icon:{tag:"path",attributes:{fill:"currentColor",d:c.slice(4)[0]}}}}function vl(){E.autoAddCss&&!tl&&(Y(hl()),tl=!0)}function ml(l,c){return Object.defineProperty(l,"abstract",{get:c}),Object.defineProperty(l,"html",{get:function(){return l.abstract.map(function(c){return bc(c)})}}),Object.defineProperty(l,"node",{get:function(){if(M){var c=H.createElement("div");return c.innerHTML=l.html,c.children}}}),l}function sl(c){var l=c.prefix,h=void 0===l?"fa":l,z=c.iconName;if(z)return pc(al.definitions,h,z)||pc(T.styles,h,z)}var el,al=new(function(){function c(){k(this,c),this.definitions={}}return x(c,[{key:"add",value:function(){for(var l=this,c=arguments.length,h=Array(c),z=0;z=0&&c0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext;function B(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()}var C=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,D=/^.[^:#\[\.,]*$/;function E(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):D.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(E(this,a||[],!1))},not:function(a){return this.pushStack(E(this,a||[],!0))},is:function(a){return!!E(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var F,G=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,H=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||F,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:G.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),C.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};H.prototype=r.fn,F=r(d);var I=/^(?:parents|prev(?:Until|All))/,J={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function K(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return K(a,"nextSibling")},prev:function(a){return K(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return B(a,"iframe")?a.contentDocument:(B(a,"template")&&(a=a.content||a),r.merge([],a.childNodes))}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(J[a]||r.uniqueSort(e),I.test(a)&&e.reverse()),this.pushStack(e)}});var L=/[^\x20\t\r\n\f]+/g;function M(a){var b={};return r.each(a.match(L)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?M(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=e||a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function N(a){return a}function O(a){throw a}function P(a,b,c,d){var e;try{a&&r.isFunction(e=a.promise)?e.call(a).done(b).fail(c):a&&r.isFunction(e=a.then)?e.call(a,b,c):b.apply(void 0,[a].slice(d))}catch(a){c.apply(void 0,[a])}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b=f&&(d!==O&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:N,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:N)),c[2][3].add(g(0,a,r.isFunction(d)?d:O))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(P(a,g.done(h(c)).resolve,g.reject,!b),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)P(e[c],h(c),g.reject);return g.promise()}});var Q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&Q.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var R=r.Deferred();r.fn.ready=function(a){return R.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||R.resolveWith(d,[r]))}}),r.ready.then=R.then;function S(){d.removeEventListener("DOMContentLoaded",S), -a.removeEventListener("load",S),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",S),a.addEventListener("load",S));var T=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)T(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h1,null,!0)},removeData:function(a){return this.each(function(){X.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=W.get(a,b),c&&(!d||Array.isArray(c)?d=W.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return W.get(a,c)||W.access(a,c,{empty:r.Callbacks("once memory").add(function(){W.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length\x20\t\r\n\f]+)/i,la=/^$|\/(?:java|ecma)script/i,ma={option:[1,""],thead:[1,"","
                "],col:[2,"","
                "],tr:[2,"","
                "],td:[3,"","
                "],_default:[0,"",""]};ma.optgroup=ma.option,ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead,ma.th=ma.td;function na(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&B(a,b)?r.merge([a],c):c}function oa(a,b){for(var c=0,d=a.length;c-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=na(l.appendChild(f),"script"),j&&oa(g),c){k=0;while(f=g[k++])la.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var ra=d.documentElement,sa=/^key/,ta=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ua=/^([^.]*)(?:\.(.+)|)/;function va(){return!0}function wa(){return!1}function xa(){try{return d.activeElement}catch(a){}}function ya(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ya(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=wa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(ra,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(L)||[""],j=b.length;while(j--)h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.hasData(a)&&W.get(a);if(q&&(i=q.events)){b=(b||"").match(L)||[""],j=b.length;while(j--)if(h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&W.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(W.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i\x20\t\r\n\f]*)[^>]*)\/>/gi,Aa=/\s*$/g;function Ea(a,b){return B(a,"table")&&B(11!==b.nodeType?b:b.firstChild,"tr")?r(">tbody",a)[0]||a:a}function Fa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ga(a){var b=Ca.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ha(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(W.hasData(a)&&(f=W.access(a),g=W.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c1&&"string"==typeof q&&!o.checkClone&&Ba.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ja(f,b,c,d)});if(m&&(e=qa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(na(e,"script"),Fa),i=h.length;l")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=na(h),f=na(a),d=0,e=f.length;d0&&oa(g,!i&&na(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(U(c)){if(b=c[W.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[W.expando]=void 0}c[X.expando]&&(c[X.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ka(this,a,!0)},remove:function(a){return Ka(this,a)},text:function(a){return T(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.appendChild(a)}})},prepend:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(na(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return T(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Aa.test(a)&&!ma[(ka.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c1)}});function _a(a,b,c,d,e){return new _a.prototype.init(a,b,c,d,e)}r.Tween=_a,_a.prototype={constructor:_a,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=_a.propHooks[this.prop];return a&&a.get?a.get(this):_a.propHooks._default.get(this)},run:function(a){var b,c=_a.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):_a.propHooks._default.set(this),this}},_a.prototype.init.prototype=_a.prototype,_a.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},_a.propHooks.scrollTop=_a.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=_a.prototype.init,r.fx.step={};var ab,bb,cb=/^(?:toggle|show|hide)$/,db=/queueHooks$/;function eb(){bb&&(d.hidden===!1&&a.requestAnimationFrame?a.requestAnimationFrame(eb):a.setTimeout(eb,r.fx.interval),r.fx.tick())}function fb(){return a.setTimeout(function(){ab=void 0}),ab=r.now()}function gb(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ca[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function hb(a,b,c){for(var d,e=(kb.tweeners[b]||[]).concat(kb.tweeners["*"]),f=0,g=e.length;f1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?lb:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b), -null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(L);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),lb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=mb[b]||r.find.attr;mb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=mb[g],mb[g]=e,e=null!=c(a,b,d)?g:null,mb[g]=f),e}});var nb=/^(?:input|select|textarea|button)$/i,ob=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return T(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):nb.test(a.nodeName)||ob.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function pb(a){var b=a.match(L)||[];return b.join(" ")}function qb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,qb(this)))});if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,qb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,qb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(L)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=qb(this),b&&W.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":W.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+pb(qb(c))+" ").indexOf(b)>-1)return!0;return!1}});var rb=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":Array.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(rb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:pb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(Array.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var sb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!sb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,sb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(W.get(h,"events")||{})[b.type]&&W.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&U(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!U(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=W.access(d,b);e||d.addEventListener(a,c,!0),W.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=W.access(d,b)-1;e?W.access(d,b,e):(d.removeEventListener(a,c,!0),W.remove(d,b))}}});var tb=a.location,ub=r.now(),vb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(Array.isArray(b))r.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(Array.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!ja.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:Array.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}});var Bb=/%20/g,Cb=/#.*$/,Db=/([?&])_=[^&]*/,Eb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Fb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Gb=/^(?:GET|HEAD)$/,Hb=/^\/\//,Ib={},Jb={},Kb="*/".concat("*"),Lb=d.createElement("a");Lb.href=tb.href;function Mb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(L)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Nb(a,b,c,d){var e={},f=a===Jb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Ob(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Pb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Qb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:tb.href,type:"GET",isLocal:Fb.test(tb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Kb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Ob(Ob(a,r.ajaxSettings),b):Ob(r.ajaxSettings,a)},ajaxPrefilter:Mb(Ib),ajaxTransport:Mb(Jb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Eb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||tb.href)+"").replace(Hb,tb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(L)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Lb.protocol+"//"+Lb.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Nb(Ib,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Gb.test(o.type),f=o.url.replace(Cb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(Bb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(vb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Db,"$1"),n=(vb.test(f)?"&":"?")+"_="+ub++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Kb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Nb(Jb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Pb(o,y,d)),v=Qb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Rb={0:200,1223:204},Sb=r.ajaxSettings.xhr();o.cors=!!Sb&&"withCredentials"in Sb,o.ajax=Sb=!!Sb,r.ajaxTransport(function(b){var c,d;if(o.cors||Sb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Rb[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r(" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                + +
                + +
                + + + + +
                +
                + + +
                +
                +
                + +
                +
                +
                + + + +
                +
                + +

                404 - Not found

                + + + + + + +
                +
                +
                +
                + + + + +
                + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/docs/Code Documentation/Design/index.html b/public/docs/Code Documentation/Design/index.html new file mode 100644 index 0000000..2c0bc9d --- /dev/null +++ b/public/docs/Code Documentation/Design/index.html @@ -0,0 +1,574 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Design - Luxcena Neo Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + + + +
                + +
                + +
                + + + + +
                +
                + + +
                +
                +
                + +
                +
                +
                + + +
                +
                +
                + + +
                +
                +
                + + +
                + +
                +
                +
                + + + + +
                + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/docs/Code Documentation/Modules/CompileAndRun/index.html b/public/docs/Code Documentation/Modules/CompileAndRun/index.html new file mode 100644 index 0000000..e842528 --- /dev/null +++ b/public/docs/Code Documentation/Modules/CompileAndRun/index.html @@ -0,0 +1,816 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CompileAndRun - Luxcena Neo Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + + + +
                + +
                + +
                + + + + +
                +
                + + +
                +
                +
                + +
                +
                +
                + + +
                +
                +
                + + +
                +
                +
                + + +
                +
                + + + +

                CompileAndRun

                + +

                Index

                +
                +

                Locals

                +

                var pythonSupportFiles

                +

                Points to the files for our python support code. They should be in a subdir of the module itself.

                +

                Exported

                +

                class Python

                +

                This is exported as Python, just so that we could add other languages later. Used to build and run python-scripts with our support-code.

                +

                method Python.constructor

                +

                Takes one parameter, which is the full path to the folder where the script is located.

                +

                When initializing the class, this will be called. Can be done like this:

                +
                1
                new compileRun.Python(global.DirSwap + "/usrData/usrCode/example");
                +
                +
                + +

                method Python.compile

                +

                This deletes old build-folder, and makes a new one. It then moves all required files into the build-folder, making us ready for running the script.

                +

                method Python.run

                +

                Spawns a new process, starting entry.py in our build-folder. It also attaches event-listners on our class-object. All of them is in the example below:

                +
                 1
                + 2
                + 3
                + 4
                + 5
                + 6
                + 7
                + 8
                + 9
                +10
                +11
                +12
                let sc = new compileRun.Python(global.DirSwap + "/usrData/usrCode/example");
                +
                +// When data is printed from the python-script
                +sc.on("stdout::data", (_stdout) => { });
                +// Last write when script closes, any exiting messages
                +sc.on("stdout::end", (_stdout) => { });
                +// When something is printed from the python-script to the error-out. Usually when a `throw` is called
                +sc.on("stderr::out", (_stderr) => { });
                +// Last words when process is dying from an error :`(
                +sc.on("stderr::end", (_stderr) => { });
                +// When script exits, _code is the exit-code
                +sc.on("close", (_code) => { });
                +
                +
                + +

                Python

                +

                This is the support-files for user-made scripts.

                +

                Entry.py

                +

                The entry-point when running a script. A file called script.py, containing the user-script, should be placed next to this file. Starting it should be done like this (Where app-root is where our app.js is located):

                +
                1
                python entry.py <pathToAppRoot>
                +
                +
                + + + + + + + + + +
                +
                +
                +
                + + + + +
                + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/docs/Code Documentation/Run/index.html b/public/docs/Code Documentation/Run/index.html new file mode 100644 index 0000000..bb572c2 --- /dev/null +++ b/public/docs/Code Documentation/Run/index.html @@ -0,0 +1,754 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Run - Luxcena Neo Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + + + +
                + +
                + +
                + + + + +
                +
                + + +
                +
                +
                + +
                +
                +
                + + +
                +
                +
                + + +
                +
                +
                + + +
                +
                + + + +

                Run when developing

                +

                I have made a simple script, that can be run both on a rPI and a normal computer. +(You will obviously not get any script to do anything on you pc)

                +

                I have only tested this on my mac...

                +

                To start it run: +
                1
                npm run dev
                +
                +
                +You have to run these commands beforehand: +
                1
                +2
                npm i
                +pip3 install mkdocs mkdocs-gitbook pygments pymdown-extensions
                +
                +

                +
                +

                Starting

                +

                It will when starting freak out a little. All the filewatchers fires an event for every file, +they find for some reason. But node should be killed each time, and when you end up with +only two processes, it should work as you'd expect.

                +
                +

                This will create a folder named tmp in you working directory. where all the user-files will be stored.

                +

                Build watcher.

                +

                It starts to watch these directories: +
                1
                - /build/
                +
                +
                +If a change is detected, it runs: +
                1
                mkdocs build
                +
                +

                +

                Node watcher

                +

                It starts to watch these directories: +
                1
                +2
                - src/ (Except /src/public/ and /src/js/)
                +- app.js
                +
                +

                +

                It then shuts down node and starts it again: +
                1
                node app.js <WORKING_DIR>/tmp/
                +
                +

                +

                webpack

                +

                It just starts this command, witch rebundles when anything is changed: +
                1
                npx webpack -p -w --mode=development
                +
                +

                +
                +

                Tip

                +

                All the log-windows respond to holding your cursor over and scrolling.

                +
                +

                Exit

                +

                The script will exit when pressing q, s, escape, Control+c. +It will then send a kill signal to all processes, wait 10 seconds and then exit.

                +

                Edit file-watchers.

                +

                Each of the file-watchers have explanatory names: watcher_node and watcher_docs.

                +

                To add files or paths they should watch, find the init of the variable, and modify that code: +
                1
                +2
                +3
                +4
                +5
                +6
                e.g.
                +let; watcher_node = chokidar.watch([
                +    "app.js",
                +    'src/'  // Add new entrys here
                +
                +]).on('all', (event, path) => { // ...
                +
                +

                +

                For the node-watcher, specify paths it should ignore in the path.includes block.

                + + + + + + + + + +
                +
                +
                +
                + + + + +
                + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/docs/Code Documentation/SocketIO/index.html b/public/docs/Code Documentation/SocketIO/index.html new file mode 100644 index 0000000..edcf9b1 --- /dev/null +++ b/public/docs/Code Documentation/SocketIO/index.html @@ -0,0 +1,989 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Socket-IO - Luxcena Neo Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + + + +
                + +
                + +
                + + + + +
                +
                + + +
                +
                +
                + +
                +
                +
                + + +
                +
                +
                + + +
                +
                +
                + + +
                +
                + + + +

                SocketIO

                +

                Client

                +

                Socketio is setup in the file globals. +This means, import globals, and then you can use Socket from there.

                +

                Connect

                +
                  +
                1. Client first needs to get an Authentication token, + this can be obtained by doing this: +
                  1
                  +2
                  +3
                  +4
                  +5
                  +6
                  +7
                  +8
                  +9
                  import {setCookie} from "../../../cookies";
                  +let CryptoJS = require("crypto-js");
                  +let passwordHash = CryptoJS.SHA256(<PASSWORD>;).toString();
                  +
                  +Socket.emit("authenticate", <USERNAME>, passwordHash, (token) => {
                  +    // Token will be a string if username/password combo is right,
                  +    // if not, it is false.
                  +    setCookie("session_token", token, 500);
                  +};)
                  +
                  +
                2. +
                3. Then the user can authenticate like this: +
                  1
                  +2
                  +3
                  +4
                  +5
                  +6
                  +7
                  import {getCookie} from "../../../cookies";
                  +let cookieToken = getCookie("session_token");
                  +
                  +Socket.emit("authenticateToken", cookieToken, (res) => {
                  +    // Res is true if we got authenticated,
                  +    // If not, it is false.
                  +});
                  +
                  +
                4. +
                5. We are now authenticated, and all actions and events are available to the client.
                6. +
                +

                "Actions"

                +
                1
                +2
                Socket.emit(Action, *Arguments, (Return) => {
                +};)
                +
                +
                + +
                NeoRuntime/status
                + + + + + + + + + + + + + + + +
                NameTypeDescription
                statusobject
                +
                Return/status + + + + + + + + + + + + + + + + + + + + + + + + +
                NameTypeDescription
                currentScriptstring"None"/Name of current script
                scriptIsExitedboolean
                uptimenumber
                +
                +
                NeoRuntime/Script/Create
                +
                Arguments + + + + + + + + + + + + + + +
                NameTypeDescription
                scriptPathstringPath of the new script, local/example
                +
                +
                Return + + + + + + + + + + + + + + + + + + + +
                NameTypeDescription
                resbooleansuccess
                resMsgstringif fail, errorMessage
                +
                +
                NeoRuntime/Script/Delete
                +
                Arguments + + + + + + + + + + + + + + +
                NameTypeDescription
                scriptPathstringPath of the script to delete, local/example
                +
                +
                Return + + + + + + + + + + + + + + + + + + + +
                NameTypeDescription
                resbooleansuccess
                resMsgstringif fail, errorMessage
                +
                +
                NeoRuntime/Script/Select
                +
                Arguments + + + + + + + + + + + + + + +
                NameTypeDescription
                scriptPathstringPath of the script to start, local/example
                +
                +
                NeoRuntime/Scripts/get
                +
                Return + + + + + + + + + + + + + + + + + + + +
                NameTypeDescription
                locallistlocal scripts
                remotelistremote scripts
                +
                +

                "Events"

                +

                1
                +2
                +3
                +4
                +5
                // Listen for a event
                +Socket.emit(event + "::join");
                +Socket.on(event, (*Return); => {
                +
                +})
                +
                +
                +
                1
                +2
                // Stop listening for an event
                +Socket.emit(event + "::leave")
                +
                +

                +

                Server

                + + + + + + + + + +
                +
                +
                +
                + + + + +
                + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/docs/FuturePlan/index.html b/public/docs/FuturePlan/index.html new file mode 100644 index 0000000..02e5d78 --- /dev/null +++ b/public/docs/FuturePlan/index.html @@ -0,0 +1,665 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Plan for the future - Luxcena Neo Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + + + +
                + +
                + +
                + + + + +
                +
                + + +
                +
                +
                + +
                +
                +
                + + +
                +
                +
                + + +
                +
                +
                + + +
                +
                + + + +

                Plans for the future

                +

                Planned and implemented

                +
                  +
                • Add authentication to our middelware.
                • +
                • Make service worker cache bundles localy on client, and use a spinner when loading them. PWA.
                    +
                  • Do some kind of code-splitting as well here.
                  • +
                  +
                • +
                • Socketio
                    +
                  • Rewrite socketio to use auth
                  • +
                  • Make all action respond to the client, so that it knows wether the action was a success or not.
                  • +
                  • Make timout thing.
                  • +
                  • Make logout function
                  • +
                  +
                • +
                • Rewrite public-dir to load pages with javascript, and have one handler, instead of a seperate html file per page.
                • +
                • Neo IDE
                    +
                  • Add intellisense for neo_behaviour
                  • +
                  • Make alternative to scripting, something like mindstorms or scratch block-coding, (blockly).
                  • +
                  +
                • +
                • Setup GitHub pages +
                • +
                • Make update-button
                    +
                  • Think about making it auto-update.
                  • +
                  +
                • +
                +

                Ideas that might get implemented at some point in time

                +
                  +
                • Make a ws281x-library that doesn't require root.
                • +
                • Check OS security-patch setup
                • +
                • Get diff-thingy on local scripts/ Git tracking
                • +
                • Maybe add a rest API
                • +
                + + + + + + + + + +
                +
                +
                +
                + + + + +
                + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/docs/Scripting/Examples/strandtest/index.html b/public/docs/Scripting/Examples/strandtest/index.html new file mode 100644 index 0000000..5a3a0a3 --- /dev/null +++ b/public/docs/Scripting/Examples/strandtest/index.html @@ -0,0 +1,737 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Strandtest - Luxcena Neo Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + + + +
                + +
                + +
                + + + + +
                +
                + + +
                +
                +
                + +
                +
                +
                + + +
                +
                +
                + + +
                +
                +
                + + +
                +
                + + + +

                Strandtest

                +
                +

                This script just does some fancy patterns to show of the neopixels' capabilities. +Runs in an endless loop, take a look at the code to see what it does more +precisely.

                +
                 1
                + 2
                + 3
                + 4
                + 5
                + 6
                + 7
                + 8
                + 9
                +10
                +11
                +12
                +13
                +14
                +15
                +16
                +17
                +18
                +19
                +20
                +21
                +22
                +23
                +24
                +25
                +26
                +27
                +28
                +29
                +30
                +31
                +32
                +33
                +34
                +35
                +36
                +37
                +38
                +39
                +40
                +41
                +42
                +43
                +44
                +45
                +46
                +47
                +48
                +49
                +50
                +51
                +52
                +53
                +54
                +55
                +56
                +57
                +58
                +59
                +60
                +61
                +62
                +63
                +64
                +65
                +66
                +67
                +68
                +69
                +70
                +71
                +72
                +73
                +74
                +75
                +76
                +77
                +78
                +79
                import LuxcenaNeo as neo  # Can be imported as LuxcenaNeo as well. but anything else and it will fail...
                +import time
                +
                +def colorWipe(color, wait_ms=50):
                +    """Wipe color across display a pixel at a time."""
                +    for i in range(neo.strip.numPixels()):
                +        neo.strip.setPixelColor(i, color)
                +        neo.strip.show()
                +        time.sleep(wait_ms/1000.0)
                +
                +def theaterChase(color, wait_ms=50, iterations=10):
                +    """Movie theater light style chaser animation."""
                +    for j in range(iterations):
                +        for q in range(3):
                +            for i in range(0, neo.strip.numPixels(), 3):
                +                neo.strip.setPixelColor(i+q, color)
                +            neo.strip.show()
                +            time.sleep(wait_ms/1000.0)
                +            for i in range(0, neo.strip.numPixels(), 3):
                +                neo.strip.setPixelColor(i+q, 0)
                +
                +def wheel(pos):
                +    """Generate rainbow colors across 0-255 positions."""
                +    if pos < 85:
                +        return neo.Color(pos * 3, 255 - pos * 3, 0)
                +    elif pos < 170:
                +        pos -= 85
                +        return neo.Color(255 - pos * 3, 0, pos * 3)
                +    else:
                +        pos -= 170
                +        return neo.Color(0, pos * 3, 255 - pos * 3)
                +
                +def rainbow(wait_ms=20, iterations=1):
                +    """Draw rainbow that fades across all pixels at once."""
                +    for j in range(256*iterations):
                +        for i in range(neo.strip.numPixels()):
                +            neo.strip.setPixelColor(i, wheel((i+j) & 255))
                +        neo.strip.show()
                +        time.sleep(wait_ms/1000.0)
                +
                +def rainbowCycle(wait_ms=20, iterations=5):
                +    """Draw rainbow that uniformly distributes itself across all pixels."""
                +    for j in range(256*iterations):
                +        for i in range(strip.numPixels()):
                +            neo,strip.setPixelColor(i, wheel(((i * 256 / neo.strip.numPixels()) + j) & 255))
                +        neo.strip.show()
                +        time.sleep(wait_ms/1000.0)
                +
                +def theaterChaseRainbow(wait_ms=50):
                +    """Rainbow movie theater light style chaser animation."""
                +    for j in range(256):
                +        for q in range(3):
                +            for i in range(0, neo.strip.numPixels(), 3):
                +                neo.strip.setPixelColor(i+q, wheel((i+j) % 255))
                +            neo.strip.show()
                +            time.sleep(wait_ms/1000.0)
                +            for i in range(0, neo.strip.numPixels(), 3):
                +                neo.strip.setPixelColor(i+q, 0)
                +
                +
                +class Main(neo.NeoBehaviour):
                +
                +    def onStart(self):
                +        # Change the brightness of the strip
                +        neo.strip.setBrightness(100)
                +
                +        # Do an endless loop with some default neopixel test patterns
                +        while True:
                +            colorWipe(neo.Color(255, 0, 0))  # Red wipe
                +            colorWipe(neo.Color(0, 255, 0))  # Blue wipe
                +            colorWipe(neo.Color(0, 0, 255))  # Green wipe
                +
                +            theaterChase(neo.Color(127, 127, 127))  # White theater chase
                +            theaterChase(neo.Color(127,   0,   0))  # Red theater chase
                +            theaterChase(neo.Color(  0,   0, 127))  # Blue theater chase
                +
                +            rainbow()
                +            rainbowCycle()
                +            theaterChaseRainbow()
                +
                +
                + + + + + + + + + +
                +
                +
                +
                + + + + +
                + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/docs/Scripting/SupportLib/index.html b/public/docs/Scripting/SupportLib/index.html new file mode 100644 index 0000000..870452f --- /dev/null +++ b/public/docs/Scripting/SupportLib/index.html @@ -0,0 +1,861 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Support Library - Luxcena Neo Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + + + +
                + +
                + +
                + + + + +
                +
                + + +
                +
                +
                + +
                +
                +
                + + + + + +
                +
                + + + +

                Support Library

                +
                +

                class Strip

                +

                This is the object you are refeering to when you want to do things with LED's. +You shouldn't have to do instantiate your own new strip-object as you can use the one +set up by the software itself. +
                1
                +2
                +3
                LuxcenaNeo.strip
                +or
                +neo.strip
                +
                +

                +

                Strip.show()

                +

                Display all the changes made to the LEDs, on the actual LEDs.

                +

                Strip.setPixelColor(n, color)

                +

                Set LED at position n to the provided 24-bit color value (in RGB order).

                +

                Strip.setPixelColorXY(x, y, color)

                +

                Set LED at position (x, y) in the defined matrix to the provided 24-bit color value (in RGB order).

                +

                Strip.setPixelColorRGB(n, red, green, blue, white = 0)

                +

                Set LED at position n to the provided red, green, and blue color. +Each color component should be a value from 0 to 255 (where 0 is the +lowest intensity and 255 is the highest intensity).

                +

                Strip.setPixelColorXYRGB(x, y, red, green, blue, white = 0)

                +

                Set LED at position (x, y) in the defined matrix to the provided red, green, and blue color. +Each color component should be a value from 0 to 255 (where 0 is the +lowest intensity and 255 is the highest intensity).

                +

                Strip.setSegmentColorRGB(segment, red, green, blue, white = 0)

                +

                Set a whole segment to the provided red, green and blue color. +Each color component should be a value from 0 to 255 (where 0 is the +lowest intensity and 255 is the highest intensity).

                +

                Strip.setBrightness(brightness)

                +

                Scale each LED in the buffer by the provided brightness. A brightness +of 0 is the darkest and 255 is the brightest.

                +

                Strip.getBrightness():

                +

                Get the brightness value for each LED in the buffer. A brightness +of 0 is the darkest and 255 is the brightest.

                +

                Strip.getPixels():

                +

                Return an object which allows access to the LED display data as if +it were a sequence of 24-bit RGB values.

                +

                Strip.numPixels():

                +

                Return the number of pixels in the display.

                +

                Strip.getPixelColor(n)

                +

                Get the 24-bit RGB color value for the LED at position n.

                +
                +

                Color(red, green, blue, white = 0)

                +

                Convert the provided red, green, blue color to a 24-bit color value. +Each color component should be a value 0-255 where 0 is the lowest intensity +and 255 is the highest intensity.

                +

                hexColor(value)

                +

                Convert the provided hexadecimal color to a 24-bit color value.

                + + + + + + + + + +
                +
                +
                +
                + + + + +
                + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/docs/Usage/CLI/index.html b/public/docs/Usage/CLI/index.html new file mode 100644 index 0000000..b89e230 --- /dev/null +++ b/public/docs/Usage/CLI/index.html @@ -0,0 +1,860 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CLI - Luxcena Neo Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + + + +
                + +
                + +
                + + + + +
                +
                + + +
                +
                +
                + +
                +
                +
                + + + + + +
                +
                + + + +

                Command line interface

                +
                +
                +

                Important!

                +

                This CLI assumes root access, so please run it with sudo

                +
                +

                Options

                +

                sudo lux-neo uninstall

                +

                Uninstall the whole thing. You will have to remove this script yourself.

                +

                sudo lux-neo update (skipNode)

                +

                Update to the newest version on the current branch. +If skipNode is the second argument, npm won't be run.

                +

                sudo lux-neo conf

                +

                Open the strip-config in nano.

                +

                sudo lux-neo start (boot)

                +

                Start the server. +If you add boot, it will start when the system boots: +
                1
                sudo lux-neo start boot
                +
                +

                +

                sudo lux-neo stop (boot)

                +

                Stop the server. +If you add boot, it will NOT start when the system boots: +
                1
                sudo lux-neo start boot
                +
                +

                +

                sudo lux-neo status

                +

                This will output the status of the app. First it reports if the service is running, +and some general info. Then it prints the systemd-status report.

                +

                Example output: +
                 1
                + 2
                + 3
                + 4
                + 5
                + 6
                + 7
                + 8
                + 9
                +10
                +11
                +12
                +13
                +14
                +15
                +16
                +17
                +18
                +19
                Luxcena-neo-cli [args: 'status']
                +
                +╭─────────────────────╮
                +│ Service active: yes │
                +│ Starts on boot: yes │
                +│ Has failed:     no  │
                +╰─────────────────────╯
                +
                +━━━Service status━━━━━━━━━━━━━━━━━━
                +● luxcena-neo.service - Luxcena Neo
                +   Loaded: loaded (/etc/systemd/system/luxcena-neo.service; enabled; vendor preset: enabled)
                +   Active: active (running) since Wed 2018-12-05 22:55:28 UTC; 6min ago
                + Main PID: 2365 (luxcena-neo.sh)
                +   CGroup: /system.slice/luxcena-neo.service
                +           ├─2365 /bin/bash /home/lux-neo/src/bin/luxcena-neo.sh
                +           └─2367 node /home/lux-neo/src/app.js
                +
                +Dec 05 22:55:28 LUXCENA-STUE-SKAP systemd[1]: Started Luxcena Neo.
                +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                +
                +

                +

                sudo lux-neo log service/app

                +

                This shows the last 20 lines of the chosen log-file. And stays open to show +all new entries.

                +

                Example output: +
                1
                +2
                +3
                +4
                +5
                Luxcena-neo-cli [args: 'log app']
                +
                +━━━App log (press ctrl+c to exit)━━━━━━━━━━━━━━━━━━
                +[3.11.2018 23:5:21:401] EVENT Starting Luxcena-Neo...
                +[3.11.2018 23:5:22:462] SUCCESS Webserver now listening at *:8080
                +
                +

                +

                sudo lux-neo version

                +

                Currently not really doing anything usefull apart from showing which branch you are on.

                +

                Example output: +
                1
                +2
                +3
                +4
                +5
                +6
                Luxcena-neo-cli [args: 'version']
                +
                +╭─────────────────────╮
                +│ Version: Unknown    │
                +│ branch : dev    │
                +╰─────────────────────╯
                +
                +

                +

                sudo lux-neo selectBranch <branch>

                +

                This will change what branch you are on to . Stashing changes (shouldn't be a concern, but just saying it anyways).

                +
                +

                Note

                +

                Please note that the version-checker now will just be useless, as it does not now what branch we really are on.

                +
                + + + + + + + + + +
                +
                +
                +
                + + + + +
                + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/docs/Usage/Configuration/index.html b/public/docs/Usage/Configuration/index.html new file mode 100644 index 0000000..f1216e4 --- /dev/null +++ b/public/docs/Usage/Configuration/index.html @@ -0,0 +1,767 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Configuration - Luxcena Neo Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + + + +
                + +
                + +
                + + + + +
                +
                + + +
                +
                +
                + +
                +
                +
                + + +
                +
                +
                + + +
                +
                +
                + + +
                +
                + + + +

                Configuration

                +

                How to setup luxcena-neo to work with your setup

                +
                +
                1
                $ sudo lux-neo conf
                +
                +
                + +

                When running the command above, a config file should appear in the editor 'nano'. +
                 1
                + 2
                + 3
                + 4
                + 5
                + 6
                + 7
                + 8
                + 9
                +10
                +11
                {
                +    "led_count": 53,
                +    "segments": [],
                +    "matrix": [],
                +    "segmentConfiguration": "snake",
                +    "led_pin": 18,
                +    "led_freq_hz": 800000,
                +    "led_dma": 10,
                +    "led_invert": false,
                +    "led_channel": 0
                +}
                +
                +

                +
                Tip - Change editor

                If you rather want to use vim or another editor, the file is at /home/lux-neo/userdata/config/strip.json

                +
                +

                led_count

                +

                This is the number of LED's you want to control.

                +

                segments

                +

                This is a simple list, here you should add the lenghts of all your segments. Please enter the "real" length, and don't start counting from 0. If you just want one segment, you should just have one element in the list, which is the number of led's you are controlling.

                +

                When summing this list, it should check out with the "led-count"-option.

                +

                matrix

                +

                This is a two dimensonal array, used to arrange the segments in a matrix of your likings. Here you enter the segment-number to represent them. In the example above, all the segments are in one line. If you want to have them in a square, it could look like this:

                +
                +

                Warning

                +

                If you don't have a reference to all the segments or something, the matrix setup will fail. And fall back to 'segmentsconfiguration'

                +
                +

                segmentconfiguration

                +

                If the matrix-option is empty or badly setup. The matrix will be set up using one of these defaults:

                +
                1
                +2
                +3
                "snake":
                +"line":
                +"random":
                +
                +
                + +

                led_pin

                +

                If using the luxcena-shield, you shouldn't have to worry about this option. But set it to the GPIO-port connected to your pixel's din-port.

                +
                +

                Warning

                +

                If using a newer RPi (3 or newer), leave this as 10! Or your file-system might crash.

                +
                +

                This is the dma-channel used to generate the data-stream. If you for some reason need channel 10 for something else, you can change it. But i strongly recommend leaving it to 10!

                +

                led_invert

                +

                This should not be touched, unless you are using a inverting level converter.

                +

                led_channel

                +

                Leave this as default unless you know what you are doing.

                +
                +

                Now you might want to take a look at the command line interface.

                + + + + + + + + + +
                +
                +
                +
                + + + + +
                + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/docs/Usage/Install/index.html b/public/docs/Usage/Install/index.html new file mode 100644 index 0000000..9da9810 --- /dev/null +++ b/public/docs/Usage/Install/index.html @@ -0,0 +1,682 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Install - Luxcena Neo Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + + + +
                + +
                + +
                + + + + +
                +
                + + +
                +
                +
                + +
                +
                +
                + + +
                +
                +
                + + +
                +
                +
                + + +
                +
                + + + +

                Installation

                +

                If you want to install luxcena-neo to use it, these are the instructions:

                +
                +

                Requirements

                +
                  +
                • The luxcena-shield
                • +
                • Access to the raspberry pi (SSH or direct)
                • +
                • Root access (preferably through the sudo command)
                • +
                +

                Install

                +
                  +
                1. Start with logging into your Raspberry Pi
                2. +
                3. Run these commands +
                  1
                  +2
                  +3
                  git clone https://github.com/JakobST1n/Luxcena-Neo
                  +cd Luxcena-Neo
                  +sudo ./bin/install.sh
                  +
                  +
                4. +
                5. Follow the instructions on screen. You should answer yes to most of the questions.
                6. +
                7. The install-process might seem to hang, but there is just no output being sent to the console. If you want to see a bit more verbose output. Open another terminal session, and run this command: +
                  1
                  tail -n 10 -f /tmp/luxcena-neo.install.log
                  +
                  +
                  +This is also where you will find possible reasons for a failed install.
                8. +
                9. Luxcena-Neo should now be installed. Start it with this command +
                  1
                  luxcena-neo start
                  +
                  +
                10. +
                +
                +

                neo":"luxcena-neo

                +
                +

                Troubleshooting

                +

                We haven't encountered any troubles yet, but once we do, we will post fix'es here.

                +
                +

                You should now be all set to configuring luxcena-neo.

                + + + + + + + + + +
                +
                +
                +
                + + + + +
                + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/docs/assets/fonts/font-awesome.css b/public/docs/assets/fonts/font-awesome.css new file mode 100644 index 0000000..b476b53 --- /dev/null +++ b/public/docs/assets/fonts/font-awesome.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url("specimen/FontAwesome.woff2") format("woff2"),url("specimen/FontAwesome.woff") format("woff"),url("specimen/FontAwesome.ttf") format("truetype")}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} \ No newline at end of file diff --git a/public/docs/assets/fonts/material-icons.css b/public/docs/assets/fonts/material-icons.css new file mode 100644 index 0000000..d23d365 --- /dev/null +++ b/public/docs/assets/fonts/material-icons.css @@ -0,0 +1,13 @@ +/*! + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy + * of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, SOFTWARE + * DISTRIBUTED UNDER THE LICENSE IS DISTRIBUTED ON AN "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + * SEE THE LICENSE FOR THE SPECIFIC LANGUAGE GOVERNING PERMISSIONS AND + * LIMITATIONS UNDER THE LICENSE. + */@font-face{font-family:"Material Icons";font-style:normal;font-weight:400;src:local("Material Icons"),local("MaterialIcons-Regular"),url("specimen/MaterialIcons-Regular.woff2") format("woff2"),url("specimen/MaterialIcons-Regular.woff") format("woff"),url("specimen/MaterialIcons-Regular.ttf") format("truetype")} \ No newline at end of file diff --git a/public/docs/assets/fonts/specimen/FontAwesome.ttf b/public/docs/assets/fonts/specimen/FontAwesome.ttf new file mode 100644 index 0000000..35acda2 Binary files /dev/null and b/public/docs/assets/fonts/specimen/FontAwesome.ttf differ diff --git a/public/docs/assets/fonts/specimen/FontAwesome.woff b/public/docs/assets/fonts/specimen/FontAwesome.woff new file mode 100644 index 0000000..400014a Binary files /dev/null and b/public/docs/assets/fonts/specimen/FontAwesome.woff differ diff --git a/public/docs/assets/fonts/specimen/FontAwesome.woff2 b/public/docs/assets/fonts/specimen/FontAwesome.woff2 new file mode 100644 index 0000000..4d13fc6 Binary files /dev/null and b/public/docs/assets/fonts/specimen/FontAwesome.woff2 differ diff --git a/public/docs/assets/fonts/specimen/MaterialIcons-Regular.ttf b/public/docs/assets/fonts/specimen/MaterialIcons-Regular.ttf new file mode 100644 index 0000000..7015564 Binary files /dev/null and b/public/docs/assets/fonts/specimen/MaterialIcons-Regular.ttf differ diff --git a/public/docs/assets/fonts/specimen/MaterialIcons-Regular.woff b/public/docs/assets/fonts/specimen/MaterialIcons-Regular.woff new file mode 100644 index 0000000..b648a3e Binary files /dev/null and b/public/docs/assets/fonts/specimen/MaterialIcons-Regular.woff differ diff --git a/public/docs/assets/fonts/specimen/MaterialIcons-Regular.woff2 b/public/docs/assets/fonts/specimen/MaterialIcons-Regular.woff2 new file mode 100644 index 0000000..9fa2112 Binary files /dev/null and b/public/docs/assets/fonts/specimen/MaterialIcons-Regular.woff2 differ diff --git a/public/docs/assets/images/favicon.png b/public/docs/assets/images/favicon.png new file mode 100644 index 0000000..76d17f5 Binary files /dev/null and b/public/docs/assets/images/favicon.png differ diff --git a/public/docs/assets/images/icons/bitbucket.1b09e088.svg b/public/docs/assets/images/icons/bitbucket.1b09e088.svg new file mode 100644 index 0000000..cf58c14 --- /dev/null +++ b/public/docs/assets/images/icons/bitbucket.1b09e088.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/docs/assets/images/icons/github.f0b8504a.svg b/public/docs/assets/images/icons/github.f0b8504a.svg new file mode 100644 index 0000000..3d13b19 --- /dev/null +++ b/public/docs/assets/images/icons/github.f0b8504a.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/docs/assets/images/icons/gitlab.6dd19c00.svg b/public/docs/assets/images/icons/gitlab.6dd19c00.svg new file mode 100644 index 0000000..1d9fffa --- /dev/null +++ b/public/docs/assets/images/icons/gitlab.6dd19c00.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/docs/assets/javascripts/application.c648116f.js b/public/docs/assets/javascripts/application.c648116f.js new file mode 100644 index 0000000..1619f6e --- /dev/null +++ b/public/docs/assets/javascripts/application.c648116f.js @@ -0,0 +1,6 @@ +!function(e,t){for(var n in t)e[n]=t[n]}(window,function(n){var r={};function i(e){if(r[e])return r[e].exports;var t=r[e]={i:e,l:!1,exports:{}};return n[e].call(t.exports,t,t.exports,i),t.l=!0,t.exports}return i.m=n,i.c=r,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)i.d(n,r,function(e){return t[e]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=13)}([function(e,t,n){"use strict";var r={Listener:function(){function e(e,t,n){var r=this;this.els_=Array.prototype.slice.call("string"==typeof e?document.querySelectorAll(e):[].concat(e)),this.handler_="function"==typeof n?{update:n}:n,this.events_=[].concat(t),this.update_=function(e){return r.handler_.update(e)}}var t=e.prototype;return t.listen=function(){var n=this;this.els_.forEach(function(t){n.events_.forEach(function(e){t.addEventListener(e,n.update_,!1)})}),"function"==typeof this.handler_.setup&&this.handler_.setup()},t.unlisten=function(){var n=this;this.els_.forEach(function(t){n.events_.forEach(function(e){t.removeEventListener(e,n.update_)})}),"function"==typeof this.handler_.reset&&this.handler_.reset()},e}(),MatchMedia:function(e,t){this.handler_=function(e){e.matches?t.listen():t.unlisten()};var n=window.matchMedia(e);n.addListener(this.handler_),this.handler_(n)}},i={Shadow:function(){function e(e,t){var n="string"==typeof e?document.querySelector(e):e;if(!(n instanceof HTMLElement&&n.parentNode instanceof HTMLElement))throw new ReferenceError;if(this.el_=n.parentNode,!((n="string"==typeof t?document.querySelector(t):t)instanceof HTMLElement))throw new ReferenceError;this.header_=n,this.height_=0,this.active_=!1}var t=e.prototype;return t.setup=function(){for(var e=this.el_;e=e.previousElementSibling;){if(!(e instanceof HTMLElement))throw new ReferenceError;this.height_+=e.offsetHeight}this.update()},t.update=function(e){if(!e||"resize"!==e.type&&"orientationchange"!==e.type){var t=window.pageYOffset>=this.height_;t!==this.active_&&(this.header_.dataset.mdState=(this.active_=t)?"shadow":"")}else this.height_=0,this.setup()},t.reset=function(){this.header_.dataset.mdState="",this.height_=0,this.active_=!1},e}(),Title:function(){function e(e,t){var n="string"==typeof e?document.querySelector(e):e;if(!(n instanceof HTMLElement))throw new ReferenceError;if(this.el_=n,!((n="string"==typeof t?document.querySelector(t):t)instanceof HTMLHeadingElement))throw new ReferenceError;this.header_=n,this.active_=!1}var t=e.prototype;return t.setup=function(){var t=this;Array.prototype.forEach.call(this.el_.children,function(e){e.style.width=t.el_.offsetWidth-20+"px"})},t.update=function(e){var t=this,n=window.pageYOffset>=this.header_.offsetTop;n!==this.active_&&(this.el_.dataset.mdState=(this.active_=n)?"active":""),"resize"!==e.type&&"orientationchange"!==e.type||Array.prototype.forEach.call(this.el_.children,function(e){e.style.width=t.el_.offsetWidth-20+"px"})},t.reset=function(){this.el_.dataset.mdState="",this.el_.style.width="",this.active_=!1},e}()},o={Blur:function(){function e(e){this.els_="string"==typeof e?document.querySelectorAll(e):e,this.index_=0,this.offset_=window.pageYOffset,this.dir_=!1,this.anchors_=[].reduce.call(this.els_,function(e,t){var n=decodeURIComponent(t.hash);return e.concat(document.getElementById(n.substring(1))||[])},[])}var t=e.prototype;return t.setup=function(){this.update()},t.update=function(){var e=window.pageYOffset,t=this.offset_-e<0;if(this.dir_!==t&&(this.index_=this.index_=t?0:this.els_.length-1),0!==this.anchors_.length){if(this.offset_<=e)for(var n=this.index_+1;ne)){this.index_=r;break}0=this.offset_?"lock"!==this.el_.dataset.mdState&&(this.el_.dataset.mdState="lock"):"lock"===this.el_.dataset.mdState&&(this.el_.dataset.mdState="")},t.reset=function(){this.el_.dataset.mdState="",this.el_.style.height="",this.height_=0},e}()},c=n(6),l=n.n(c);var u={Adapter:{GitHub:function(o){var e,t;function n(e){var t;t=o.call(this,e)||this;var n=/^.+github\.com\/([^/]+)\/?([^/]+)?.*$/.exec(t.base_);if(n&&3===n.length){var r=n[1],i=n[2];t.base_="https://api.github.com/users/"+r+"/repos",t.name_=i}return t}return t=o,(e=n).prototype=Object.create(t.prototype),(e.prototype.constructor=e).__proto__=t,n.prototype.fetch_=function(){var i=this;return function n(r){return void 0===r&&(r=0),fetch(i.base_+"?per_page=30&page="+r).then(function(e){return e.json()}).then(function(e){if(!(e instanceof Array))throw new TypeError;if(i.name_){var t=e.find(function(e){return e.name===i.name_});return t||30!==e.length?t?[i.format_(t.stargazers_count)+" Stars",i.format_(t.forks_count)+" Forks"]:[]:n(r+1)}return[e.length+" Repositories"]})}()},n}(function(){function e(e){var t="string"==typeof e?document.querySelector(e):e;if(!(t instanceof HTMLAnchorElement))throw new ReferenceError;this.el_=t,this.base_=this.el_.href,this.salt_=this.hash_(this.base_)}var t=e.prototype;return t.fetch=function(){var n=this;return new Promise(function(t){var e=l.a.getJSON(n.salt_+".cache-source");void 0!==e?t(e):n.fetch_().then(function(e){l.a.set(n.salt_+".cache-source",e,{expires:1/96}),t(e)})})},t.fetch_=function(){throw new Error("fetch_(): Not implemented")},t.format_=function(e){return 1e4=this.el_.children[0].offsetTop+(5-this.height_);e!==this.active_&&(this.el_.dataset.mdState=(this.active_=e)?"hidden":"")},t.reset=function(){this.el_.dataset.mdState="",this.active_=!1},e}()};t.a={Event:r,Header:i,Nav:o,Search:a,Sidebar:s,Source:u,Tabs:f}},function(t,e,n){(function(e){t.exports=e.lunr=n(24)}).call(this,n(4))},function(e,d,h){"use strict";(function(t){var e=h(8),n=setTimeout;function c(e){return Boolean(e&&void 0!==e.length)}function r(){}function o(e){if(!(this instanceof o))throw new TypeError("Promises must be constructed via new");if("function"!=typeof e)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],f(e,this)}function i(n,r){for(;3===n._state;)n=n._value;0!==n._state?(n._handled=!0,o._immediateFn(function(){var e=1===n._state?r.onFulfilled:r.onRejected;if(null!==e){var t;try{t=e(n._value)}catch(e){return void s(r.promise,e)}a(r.promise,t)}else(1===n._state?a:s)(r.promise,n._value)})):n._deferreds.push(r)}function a(t,e){try{if(e===t)throw new TypeError("A promise cannot be resolved with itself.");if(e&&("object"==typeof e||"function"==typeof e)){var n=e.then;if(e instanceof o)return t._state=3,t._value=e,void l(t);if("function"==typeof n)return void f((r=n,i=e,function(){r.apply(i,arguments)}),t)}t._state=1,t._value=e,l(t)}catch(e){s(t,e)}var r,i}function s(e,t){e._state=2,e._value=t,l(e)}function l(e){2===e._state&&0===e._deferreds.length&&o._immediateFn(function(){e._handled||o._unhandledRejectionFn(e._value)});for(var t=0,n=e._deferreds.length;t"+n+""};this.stack_=[],r.forEach(function(e,t){var n,r=a.docs_.get(t),i=f.createElement("li",{class:"md-search-result__item"},f.createElement("a",{href:r.location,title:r.title,class:"md-search-result__link",tabindex:"-1"},f.createElement("article",{class:"md-search-result__article md-search-result__article--document"},f.createElement("h1",{class:"md-search-result__title"},{__html:r.title.replace(s,c)}),r.text.length?f.createElement("p",{class:"md-search-result__teaser"},{__html:r.text.replace(s,c)}):{}))),o=e.map(function(t){return function(){var e=a.docs_.get(t.ref);i.appendChild(f.createElement("a",{href:e.location,title:e.title,class:"md-search-result__link","data-md-rel":"anchor",tabindex:"-1"},f.createElement("article",{class:"md-search-result__article"},f.createElement("h1",{class:"md-search-result__title"},{__html:e.title.replace(s,c)}),e.text.length?f.createElement("p",{class:"md-search-result__teaser"},{__html:function(e,t){var n=t;if(e.length>n){for(;" "!==e[n]&&0<--n;);return e.substring(0,n)+"..."}return e}(e.text.replace(s,c),400)}):{})))}});(n=a.stack_).push.apply(n,[function(){return a.list_.appendChild(i)}].concat(o))});var o=this.el_.parentNode;if(!(o instanceof HTMLElement))throw new ReferenceError;for(;this.stack_.length&&o.offsetHeight>=o.scrollHeight-16;)this.stack_.shift()();var l=this.list_.querySelectorAll("[data-md-rel=anchor]");switch(Array.prototype.forEach.call(l,function(r){["click","keydown"].forEach(function(n){r.addEventListener(n,function(e){if("keydown"!==n||13===e.keyCode){var t=document.querySelector("[data-md-toggle=search]");if(!(t instanceof HTMLInputElement))throw new ReferenceError;t.checked&&(t.checked=!1,t.dispatchEvent(new CustomEvent("change"))),e.preventDefault(),setTimeout(function(){document.location.href=r.href},100)}})})}),r.size){case 0:this.meta_.textContent=this.message_.none;break;case 1:this.meta_.textContent=this.message_.one;break;default:this.meta_.textContent=this.message_.other.replace("#",r.size)}}}else{var u=function(e){a.docs_=e.reduce(function(e,t){var n,r,i,o=t.location.split("#"),a=o[0],s=o[1];return t.text=(n=t.text,r=document.createTextNode(n),(i=document.createElement("p")).appendChild(r),i.innerHTML),s&&(t.parent=e.get(a),t.parent&&!t.parent.done&&(t.parent.title=t.title,t.parent.text=t.text,t.parent.done=!0)),t.text=t.text.replace(/\n/g," ").replace(/\s+/g," ").replace(/\s+([,.:;!?])/g,function(e,t){return t}),t.parent&&t.parent.title===t.title||e.set(t.location,t),e},new Map);var i=a.docs_,o=a.lang_;a.stack_=[],a.index_=d()(function(){var e,t=this,n={"search.pipeline.trimmer":d.a.trimmer,"search.pipeline.stopwords":d.a.stopWordFilter},r=Object.keys(n).reduce(function(e,t){return h(t).match(/^false$/i)||e.push(n[t]),e},[]);this.pipeline.reset(),r&&(e=this.pipeline).add.apply(e,r),1===o.length&&"en"!==o[0]&&d.a[o[0]]?this.use(d.a[o[0]]):1=t.scrollHeight-16;)a.stack_.splice(0,10).forEach(function(e){return e()})})};setTimeout(function(){return"function"==typeof a.data_?a.data_().then(u):u(a.data_)},250)}},e}()}).call(this,r(3))},function(e,n,r){"use strict";(function(t){r.d(n,"a",function(){return e});var e=function(){function e(e){var t="string"==typeof e?document.querySelector(e):e;if(!(t instanceof HTMLElement))throw new ReferenceError;this.el_=t}return e.prototype.initialize=function(e){e.length&&this.el_.children.length&&this.el_.children[this.el_.children.length-1].appendChild(t.createElement("ul",{class:"md-source__facts"},e.map(function(e){return t.createElement("li",{class:"md-source__fact"},e)}))),this.el_.dataset.mdState="done"},e}()}).call(this,r(3))},,,function(e,n,c){"use strict";c.r(n),function(o){c.d(n,"app",function(){return t});c(14),c(15),c(16),c(17),c(18),c(19),c(20);var r=c(2),e=c(5),a=c.n(e),i=c(0);window.Promise=window.Promise||r.a;var s=function(e){var t=document.getElementsByName("lang:"+e)[0];if(!(t instanceof HTMLMetaElement))throw new ReferenceError;return t.content};var t={initialize:function(t){new i.a.Event.Listener(document,"DOMContentLoaded",function(){if(!(document.body instanceof HTMLElement))throw new ReferenceError;Modernizr.addTest("ios",function(){return!!navigator.userAgent.match(/(iPad|iPhone|iPod)/g)});var e=document.querySelectorAll("table:not([class])");if(Array.prototype.forEach.call(e,function(e){var t=o.createElement("div",{class:"md-typeset__scrollwrap"},o.createElement("div",{class:"md-typeset__table"}));e.nextSibling?e.parentNode.insertBefore(t,e.nextSibling):e.parentNode.appendChild(t),t.children[0].appendChild(e)}),a.a.isSupported()){var t=document.querySelectorAll(".codehilite > pre, pre > code");Array.prototype.forEach.call(t,function(e,t){var n="__code_"+t,r=o.createElement("button",{class:"md-clipboard",title:s("clipboard.copy"),"data-clipboard-target":"#"+n+" pre, #"+n+" code"},o.createElement("span",{class:"md-clipboard__message"})),i=e.parentNode;i.id=n,i.insertBefore(r,e)}),new a.a(".md-clipboard").on("success",function(e){var t=e.trigger.querySelector(".md-clipboard__message");if(!(t instanceof HTMLElement))throw new ReferenceError;e.clearSelection(),t.dataset.mdTimer&&clearTimeout(parseInt(t.dataset.mdTimer,10)),t.classList.add("md-clipboard__message--active"),t.innerHTML=s("clipboard.copied"),t.dataset.mdTimer=setTimeout(function(){t.classList.remove("md-clipboard__message--active"),t.dataset.mdTimer=""},2e3).toString()})}if(!Modernizr.details){var n=document.querySelectorAll("details > summary");Array.prototype.forEach.call(n,function(e){e.addEventListener("click",function(e){var t=e.target.parentNode;t.hasAttribute("open")?t.removeAttribute("open"):t.setAttribute("open","")})})}var r=function(){if(document.location.hash){var e=document.getElementById(document.location.hash.substring(1));if(!e)return;for(var t=e.parentNode;t&&!(t instanceof HTMLDetailsElement);)t=t.parentNode;if(t&&!t.open){t.open=!0;var n=location.hash;location.hash=" ",location.hash=n}}};if(window.addEventListener("hashchange",r),r(),Modernizr.ios){var i=document.querySelectorAll("[data-md-scrollfix]");Array.prototype.forEach.call(i,function(t){t.addEventListener("touchstart",function(){var e=t.scrollTop;0===e?t.scrollTop=1:e+t.offsetHeight===t.scrollHeight&&(t.scrollTop=e-1)})})}}).listen(),new i.a.Event.Listener(window,["scroll","resize","orientationchange"],new i.a.Header.Shadow("[data-md-component=container]","[data-md-component=header]")).listen(),new i.a.Event.Listener(window,["scroll","resize","orientationchange"],new i.a.Header.Title("[data-md-component=title]",".md-typeset h1")).listen(),document.querySelector("[data-md-component=hero]")&&new i.a.Event.Listener(window,["scroll","resize","orientationchange"],new i.a.Tabs.Toggle("[data-md-component=hero]")).listen(),document.querySelector("[data-md-component=tabs]")&&new i.a.Event.Listener(window,["scroll","resize","orientationchange"],new i.a.Tabs.Toggle("[data-md-component=tabs]")).listen(),new i.a.Event.MatchMedia("(min-width: 1220px)",new i.a.Event.Listener(window,["scroll","resize","orientationchange"],new i.a.Sidebar.Position("[data-md-component=navigation]","[data-md-component=header]"))),document.querySelector("[data-md-component=toc]")&&new i.a.Event.MatchMedia("(min-width: 960px)",new i.a.Event.Listener(window,["scroll","resize","orientationchange"],new i.a.Sidebar.Position("[data-md-component=toc]","[data-md-component=header]"))),new i.a.Event.MatchMedia("(min-width: 960px)",new i.a.Event.Listener(window,"scroll",new i.a.Nav.Blur("[data-md-component=toc] .md-nav__link")));var e=document.querySelectorAll("[data-md-component=collapsible]");Array.prototype.forEach.call(e,function(e){new i.a.Event.MatchMedia("(min-width: 1220px)",new i.a.Event.Listener(e.previousElementSibling,"click",new i.a.Nav.Collapse(e)))}),new i.a.Event.MatchMedia("(max-width: 1219px)",new i.a.Event.Listener("[data-md-component=navigation] [data-md-toggle]","change",new i.a.Nav.Scrolling("[data-md-component=navigation] nav"))),document.querySelector("[data-md-component=search]")&&(new i.a.Event.MatchMedia("(max-width: 959px)",new i.a.Event.Listener("[data-md-toggle=search]","change",new i.a.Search.Lock("[data-md-toggle=search]"))),new i.a.Event.Listener("[data-md-component=query]",["focus","keyup","change"],new i.a.Search.Result("[data-md-component=result]",function(){return fetch(t.url.base+"/search/search_index.json",{credentials:"same-origin"}).then(function(e){return e.json()}).then(function(e){return e.docs.map(function(e){return e.location=t.url.base+"/"+e.location,e})})})).listen(),new i.a.Event.Listener("[data-md-component=reset]","click",function(){setTimeout(function(){var e=document.querySelector("[data-md-component=query]");if(!(e instanceof HTMLInputElement))throw new ReferenceError;e.focus()},10)}).listen(),new i.a.Event.Listener("[data-md-toggle=search]","change",function(e){setTimeout(function(e){if(!(e instanceof HTMLInputElement))throw new ReferenceError;if(e.checked){var t=document.querySelector("[data-md-component=query]");if(!(t instanceof HTMLInputElement))throw new ReferenceError;t.focus()}},400,e.target)}).listen(),new i.a.Event.Listener("[data-md-component=query]","focus",function(){var e=document.querySelector("[data-md-toggle=search]");if(!(e instanceof HTMLInputElement))throw new ReferenceError;e.checked||(e.checked=!0,e.dispatchEvent(new CustomEvent("change")))}).listen(),new i.a.Event.Listener(window,"keydown",function(e){var t=document.querySelector("[data-md-toggle=search]");if(!(t instanceof HTMLInputElement))throw new ReferenceError;var n=document.querySelector("[data-md-component=query]");if(!(n instanceof HTMLInputElement))throw new ReferenceError;if(!(document.activeElement instanceof HTMLElement&&document.activeElement.isContentEditable||e.metaKey||e.ctrlKey))if(t.checked){if(13===e.keyCode){if(n===document.activeElement){e.preventDefault();var r=document.querySelector("[data-md-component=search] [href][data-md-state=active]");r instanceof HTMLLinkElement&&(window.location=r.getAttribute("href"),t.checked=!1,t.dispatchEvent(new CustomEvent("change")),n.blur())}}else if(9===e.keyCode||27===e.keyCode)t.checked=!1,t.dispatchEvent(new CustomEvent("change")),n.blur();else if(-1!==[8,37,39].indexOf(e.keyCode))n!==document.activeElement&&n.focus();else if(-1!==[38,40].indexOf(e.keyCode)){var i=e.keyCode,o=Array.prototype.slice.call(document.querySelectorAll("[data-md-component=query], [data-md-component=search] [href]")),a=o.find(function(e){if(!(e instanceof HTMLElement))throw new ReferenceError;return"active"===e.dataset.mdState});a&&(a.dataset.mdState="");var s=Math.max(0,(o.indexOf(a)+o.length+(38===i?-1:1))%o.length);return o[s]&&(o[s].dataset.mdState="active",o[s].focus()),e.preventDefault(),e.stopPropagation(),!1}}else if(document.activeElement&&!document.activeElement.form){if("TEXTAREA"===document.activeElement.tagName||"INPUT"===document.activeElement.tagName)return;70!==e.keyCode&&83!==e.keyCode||(n.focus(),e.preventDefault())}}).listen(),new i.a.Event.Listener(window,"keypress",function(){var e=document.querySelector("[data-md-toggle=search]");if(!(e instanceof HTMLInputElement))throw new ReferenceError;if(e.checked){var t=document.querySelector("[data-md-component=query]");if(!(t instanceof HTMLInputElement))throw new ReferenceError;t!==document.activeElement&&t.focus()}}).listen()),new i.a.Event.Listener(document.body,"keydown",function(e){if(9===e.keyCode){var t=document.querySelectorAll("[data-md-component=navigation] .md-nav__link[for]:not([tabindex])");Array.prototype.forEach.call(t,function(e){e.offsetHeight&&(e.tabIndex=0)})}}).listen(),new i.a.Event.Listener(document.body,"mousedown",function(){var e=document.querySelectorAll("[data-md-component=navigation] .md-nav__link[tabindex]");Array.prototype.forEach.call(e,function(e){e.removeAttribute("tabIndex")})}).listen(),document.body.addEventListener("click",function(){"tabbing"===document.body.dataset.mdState&&(document.body.dataset.mdState="")}),new i.a.Event.MatchMedia("(max-width: 959px)",new i.a.Event.Listener("[data-md-component=navigation] [href^='#']","click",function(){var e=document.querySelector("[data-md-toggle=drawer]");if(!(e instanceof HTMLInputElement))throw new ReferenceError;e.checked&&(e.checked=!1,e.dispatchEvent(new CustomEvent("change")))})),function(){var e=document.querySelector("[data-md-source]");if(!e)return r.a.resolve([]);if(!(e instanceof HTMLAnchorElement))throw new ReferenceError;switch(e.dataset.mdSource){case"github":return new i.a.Source.Adapter.GitHub(e).fetch();default:return r.a.resolve([])}}().then(function(t){var e=document.querySelectorAll("[data-md-source]");Array.prototype.forEach.call(e,function(e){new i.a.Source.Repository(e).initialize(t)})});var n=function(){var e=document.querySelectorAll("details");Array.prototype.forEach.call(e,function(e){e.setAttribute("open","")})};new i.a.Event.MatchMedia("print",{listen:n,unlisten:function(){}}),window.onbeforeprint=n}}}.call(this,c(3))},function(e,t,n){e.exports=n.p+"assets/images/icons/bitbucket.1b09e088.svg"},function(e,t,n){e.exports=n.p+"assets/images/icons/github.f0b8504a.svg"},function(e,t,n){e.exports=n.p+"assets/images/icons/gitlab.6dd19c00.svg"},function(e,t){e.exports="/home/travis/build/squidfunk/mkdocs-material/material/application.30686662.css"},function(e,t){e.exports="/home/travis/build/squidfunk/mkdocs-material/material/application-palette.a8b3c06d.css"},function(e,t){!function(){if("undefined"!=typeof window)try{var e=new window.CustomEvent("test",{cancelable:!0});if(e.preventDefault(),!0!==e.defaultPrevented)throw new Error("Could not prevent default")}catch(e){var t=function(e,t){var n,r;return(t=t||{}).bubbles=!!t.bubbles,t.cancelable=!!t.cancelable,(n=document.createEvent("CustomEvent")).initCustomEvent(e,t.bubbles,t.cancelable,t.detail),r=n.preventDefault,n.preventDefault=function(){r.call(this);try{Object.defineProperty(this,"defaultPrevented",{get:function(){return!0}})}catch(e){this.defaultPrevented=!0}},n};t.prototype=window.Event.prototype,window.CustomEvent=t}}()},function(e,t,n){window.fetch||(window.fetch=n(7).default||n(7))},function(e,i,o){(function(e){var t=void 0!==e&&e||"undefined"!=typeof self&&self||window,n=Function.prototype.apply;function r(e,t){this._id=e,this._clearFn=t}i.setTimeout=function(){return new r(n.call(setTimeout,t,arguments),clearTimeout)},i.setInterval=function(){return new r(n.call(setInterval,t,arguments),clearInterval)},i.clearTimeout=i.clearInterval=function(e){e&&e.close()},r.prototype.unref=r.prototype.ref=function(){},r.prototype.close=function(){this._clearFn.call(t,this._id)},i.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},i.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},i._unrefActive=i.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;0<=t&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},o(22),i.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,i.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(this,o(4))},function(e,t,n){(function(e,p){!function(n,r){"use strict";if(!n.setImmediate){var i,o,t,a,e,s=1,c={},l=!1,u=n.document,f=Object.getPrototypeOf&&Object.getPrototypeOf(n);f=f&&f.setTimeout?f:n,i="[object process]"==={}.toString.call(n.process)?function(e){p.nextTick(function(){h(e)})}:function(){if(n.postMessage&&!n.importScripts){var e=!0,t=n.onmessage;return n.onmessage=function(){e=!1},n.postMessage("","*"),n.onmessage=t,e}}()?(a="setImmediate$"+Math.random()+"$",e=function(e){e.source===n&&"string"==typeof e.data&&0===e.data.indexOf(a)&&h(+e.data.slice(a.length))},n.addEventListener?n.addEventListener("message",e,!1):n.attachEvent("onmessage",e),function(e){n.postMessage(a+e,"*")}):n.MessageChannel?((t=new MessageChannel).port1.onmessage=function(e){h(e.data)},function(e){t.port2.postMessage(e)}):u&&"onreadystatechange"in u.createElement("script")?(o=u.documentElement,function(e){var t=u.createElement("script");t.onreadystatechange=function(){h(e),t.onreadystatechange=null,o.removeChild(t),t=null},o.appendChild(t)}):function(e){setTimeout(h,0,e)},f.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),n=0;n=this.length)return D.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},D.QueryLexer.prototype.width=function(){return this.pos-this.start},D.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},D.QueryLexer.prototype.backup=function(){this.pos-=1},D.QueryLexer.prototype.acceptDigitRun=function(){for(var e,t;47<(t=(e=this.next()).charCodeAt(0))&&t<58;);e!=D.QueryLexer.EOS&&this.backup()},D.QueryLexer.prototype.more=function(){return this.pos=t&&(e=c.limit_backward,c.limit_backward=t,c.ket=c.cursor,c.find_among_b(o,4)?(c.bra=c.cursor,c.limit_backward=e,c.cursor=c.limit-r,c.cursor>c.limit_backward&&(c.cursor--,c.bra=c.cursor,c.slice_del())):c.limit_backward=e)}this.setCurrent=function(e){c.setCurrent(e)},this.getCurrent=function(){return c.getCurrent()},this.stem=function(){var e,r=c.cursor;return function(){var e,r=c.cursor+3;if(t=c.limit,0<=r&&r<=c.limit){for(i=r;;){if(e=c.cursor,c.in_grouping(d,97,248)){c.cursor=e;break}if((c.cursor=e)>=c.limit)return;c.cursor++}for(;!c.out_grouping(d,97,248);){if(c.cursor>=c.limit)return;c.cursor++}(t=c.cursor)=t&&(r=c.limit_backward,c.limit_backward=t,c.ket=c.cursor,e=c.find_among_b(s,32),c.limit_backward=r,e))switch(c.bra=c.cursor,e){case 1:c.slice_del();break;case 2:c.in_grouping_b(u,97,229)&&c.slice_del()}}(),c.cursor=c.limit,l(),c.cursor=c.limit,function(){var e,r,i,n=c.limit-c.cursor;if(c.ket=c.cursor,c.eq_s_b(2,"st")&&(c.bra=c.cursor,c.eq_s_b(2,"ig")&&c.slice_del()),c.cursor=c.limit-n,c.cursor>=t&&(r=c.limit_backward,c.limit_backward=t,c.ket=c.cursor,e=c.find_among_b(a,5),c.limit_backward=r,e))switch(c.bra=c.cursor,e){case 1:c.slice_del(),i=c.limit-c.cursor,l(),c.cursor=c.limit-i;break;case 2:c.slice_from("løs")}}(),c.cursor=c.limit,c.cursor>=t&&(e=c.limit_backward,c.limit_backward=t,c.ket=c.cursor,c.out_grouping_b(d,97,248)?(c.bra=c.cursor,n=c.slice_to(n),c.limit_backward=e,c.eq_v_b(n)&&c.slice_del()):c.limit_backward=e),!0}},function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}),e.Pipeline.registerFunction(e.da.stemmer,"stemmer-da"),e.da.stopWordFilter=e.generateStopWordFilter("ad af alle alt anden at blev blive bliver da de dem den denne der deres det dette dig din disse dog du efter eller en end er et for fra ham han hans har havde have hende hendes her hos hun hvad hvis hvor i ikke ind jeg jer jo kunne man mange med meget men mig min mine mit mod ned noget nogle nu når og også om op os over på selv sig sin sine sit skal skulle som sådan thi til ud under var vi vil ville vor være været".split(" ")),e.Pipeline.registerFunction(e.da.stopWordFilter,"stopWordFilter-da")}}); \ No newline at end of file diff --git a/public/docs/assets/javascripts/lunr/lunr.de.js b/public/docs/assets/javascripts/lunr/lunr.de.js new file mode 100644 index 0000000..1529892 --- /dev/null +++ b/public/docs/assets/javascripts/lunr/lunr.de.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var _,p,r;e.de=function(){this.pipeline.reset(),this.pipeline.add(e.de.trimmer,e.de.stopWordFilter,e.de.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.de.stemmer))},e.de.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.de.trimmer=e.trimmerSupport.generateTrimmer(e.de.wordCharacters),e.Pipeline.registerFunction(e.de.trimmer,"trimmer-de"),e.de.stemmer=(_=e.stemmerSupport.Among,p=e.stemmerSupport.SnowballProgram,r=new function(){var r,n,i,s=[new _("",-1,6),new _("U",0,2),new _("Y",0,1),new _("ä",0,3),new _("ö",0,4),new _("ü",0,5)],o=[new _("e",-1,2),new _("em",-1,1),new _("en",-1,2),new _("ern",-1,1),new _("er",-1,1),new _("s",-1,3),new _("es",5,2)],c=[new _("en",-1,1),new _("er",-1,1),new _("st",-1,2),new _("est",2,1)],u=[new _("ig",-1,1),new _("lich",-1,1)],a=[new _("end",-1,1),new _("ig",-1,2),new _("ung",-1,1),new _("lich",-1,3),new _("isch",-1,2),new _("ik",-1,2),new _("heit",-1,3),new _("keit",-1,4)],t=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32,8],d=[117,30,5],l=[117,30,4],m=new p;function h(e,r,n){return!(!m.eq_s(1,e)||(m.ket=m.cursor,!m.in_grouping(t,97,252)))&&(m.slice_from(r),m.cursor=n,!0)}function w(){for(;!m.in_grouping(t,97,252);){if(m.cursor>=m.limit)return!0;m.cursor++}for(;!m.out_grouping(t,97,252);){if(m.cursor>=m.limit)return!0;m.cursor++}return!1}function f(){return i<=m.cursor}function b(){return n<=m.cursor}this.setCurrent=function(e){m.setCurrent(e)},this.getCurrent=function(){return m.getCurrent()},this.stem=function(){var e=m.cursor;return function(){for(var e,r,n,i,s=m.cursor;;)if(e=m.cursor,m.bra=e,m.eq_s(1,"ß"))m.ket=m.cursor,m.slice_from("ss");else{if(e>=m.limit)break;m.cursor=e+1}for(m.cursor=s;;)for(r=m.cursor;;){if(n=m.cursor,m.in_grouping(t,97,252)){if(i=m.cursor,m.bra=i,h("u","U",n))break;if(m.cursor=i,h("y","Y",n))break}if(n>=m.limit)return m.cursor=r;m.cursor=n+1}}(),m.cursor=e,function(){i=m.limit,n=i;var e=m.cursor+3;0<=e&&e<=m.limit&&(r=e,w()||((i=m.cursor)=m.limit)return;m.cursor++}}}(),!0}},function(e){return"function"==typeof e.update?e.update(function(e){return r.setCurrent(e),r.stem(),r.getCurrent()}):(r.setCurrent(e),r.stem(),r.getCurrent())}),e.Pipeline.registerFunction(e.de.stemmer,"stemmer-de"),e.de.stopWordFilter=e.generateStopWordFilter("aber alle allem allen aller alles als also am an ander andere anderem anderen anderer anderes anderm andern anderr anders auch auf aus bei bin bis bist da damit dann das dasselbe dazu daß dein deine deinem deinen deiner deines dem demselben den denn denselben der derer derselbe derselben des desselben dessen dich die dies diese dieselbe dieselben diesem diesen dieser dieses dir doch dort du durch ein eine einem einen einer eines einig einige einigem einigen einiger einiges einmal er es etwas euch euer eure eurem euren eurer eures für gegen gewesen hab habe haben hat hatte hatten hier hin hinter ich ihm ihn ihnen ihr ihre ihrem ihren ihrer ihres im in indem ins ist jede jedem jeden jeder jedes jene jenem jenen jener jenes jetzt kann kein keine keinem keinen keiner keines können könnte machen man manche manchem manchen mancher manches mein meine meinem meinen meiner meines mich mir mit muss musste nach nicht nichts noch nun nur ob oder ohne sehr sein seine seinem seinen seiner seines selbst sich sie sind so solche solchem solchen solcher solches soll sollte sondern sonst um und uns unse unsem unsen unser unses unter viel vom von vor war waren warst was weg weil weiter welche welchem welchen welcher welches wenn werde werden wie wieder will wir wird wirst wo wollen wollte während würde würden zu zum zur zwar zwischen über".split(" ")),e.Pipeline.registerFunction(e.de.stopWordFilter,"stopWordFilter-de")}}); \ No newline at end of file diff --git a/public/docs/assets/javascripts/lunr/lunr.du.js b/public/docs/assets/javascripts/lunr/lunr.du.js new file mode 100644 index 0000000..5263200 --- /dev/null +++ b/public/docs/assets/javascripts/lunr/lunr.du.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var v,q,r;console.warn('[Lunr Languages] Please use the "nl" instead of the "du". The "nl" code is the standard code for Dutch language, and "du" will be removed in the next major versions.'),e.du=function(){this.pipeline.reset(),this.pipeline.add(e.du.trimmer,e.du.stopWordFilter,e.du.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.du.stemmer))},e.du.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.du.trimmer=e.trimmerSupport.generateTrimmer(e.du.wordCharacters),e.Pipeline.registerFunction(e.du.trimmer,"trimmer-du"),e.du.stemmer=(v=e.stemmerSupport.Among,q=e.stemmerSupport.SnowballProgram,r=new function(){var r,i,u,o=[new v("",-1,6),new v("á",0,1),new v("ä",0,1),new v("é",0,2),new v("ë",0,2),new v("í",0,3),new v("ï",0,3),new v("ó",0,4),new v("ö",0,4),new v("ú",0,5),new v("ü",0,5)],n=[new v("",-1,3),new v("I",0,2),new v("Y",0,1)],t=[new v("dd",-1,-1),new v("kk",-1,-1),new v("tt",-1,-1)],c=[new v("ene",-1,2),new v("se",-1,3),new v("en",-1,2),new v("heden",2,1),new v("s",-1,3)],a=[new v("end",-1,1),new v("ig",-1,2),new v("ing",-1,1),new v("lijk",-1,3),new v("baar",-1,4),new v("bar",-1,5)],l=[new v("aa",-1,-1),new v("ee",-1,-1),new v("oo",-1,-1),new v("uu",-1,-1)],m=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],d=[1,0,0,17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],f=[17,67,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],_=new q;function s(e){return(_.cursor=e)>=_.limit||(_.cursor++,!1)}function w(){for(;!_.in_grouping(m,97,232);){if(_.cursor>=_.limit)return!0;_.cursor++}for(;!_.out_grouping(m,97,232);){if(_.cursor>=_.limit)return!0;_.cursor++}return!1}function b(){return i<=_.cursor}function p(){return r<=_.cursor}function g(){var e=_.limit-_.cursor;_.find_among_b(t,3)&&(_.cursor=_.limit-e,_.ket=_.cursor,_.cursor>_.limit_backward&&(_.cursor--,_.bra=_.cursor,_.slice_del()))}function h(){var e;u=!1,_.ket=_.cursor,_.eq_s_b(1,"e")&&(_.bra=_.cursor,b()&&(e=_.limit-_.cursor,_.out_grouping_b(m,97,232)&&(_.cursor=_.limit-e,_.slice_del(),u=!0,g())))}function k(){var e;b()&&(e=_.limit-_.cursor,_.out_grouping_b(m,97,232)&&(_.cursor=_.limit-e,_.eq_s_b(3,"gem")||(_.cursor=_.limit-e,_.slice_del(),g())))}this.setCurrent=function(e){_.setCurrent(e)},this.getCurrent=function(){return _.getCurrent()},this.stem=function(){var e=_.cursor;return function(){for(var e,r,i,n=_.cursor;;){if(_.bra=_.cursor,e=_.find_among(o,11))switch(_.ket=_.cursor,e){case 1:_.slice_from("a");continue;case 2:_.slice_from("e");continue;case 3:_.slice_from("i");continue;case 4:_.slice_from("o");continue;case 5:_.slice_from("u");continue;case 6:if(_.cursor>=_.limit)break;_.cursor++;continue}break}for(_.cursor=n,_.bra=n,_.eq_s(1,"y")?(_.ket=_.cursor,_.slice_from("Y")):_.cursor=n;;)if(r=_.cursor,_.in_grouping(m,97,232)){if(i=_.cursor,_.bra=i,_.eq_s(1,"i"))_.ket=_.cursor,_.in_grouping(m,97,232)&&(_.slice_from("I"),_.cursor=r);else if(_.cursor=i,_.eq_s(1,"y"))_.ket=_.cursor,_.slice_from("Y"),_.cursor=r;else if(s(r))break}else if(s(r))break}(),_.cursor=e,i=_.limit,r=i,w()||((i=_.cursor)<3&&(i=3),w()||(r=_.cursor)),_.limit_backward=e,_.cursor=_.limit,function(){var e,r,i,n,o,t,s=_.limit-_.cursor;if(_.ket=_.cursor,e=_.find_among_b(c,5))switch(_.bra=_.cursor,e){case 1:b()&&_.slice_from("heid");break;case 2:k();break;case 3:b()&&_.out_grouping_b(f,97,232)&&_.slice_del()}if(_.cursor=_.limit-s,h(),_.cursor=_.limit-s,_.ket=_.cursor,_.eq_s_b(4,"heid")&&(_.bra=_.cursor,p()&&(r=_.limit-_.cursor,_.eq_s_b(1,"c")||(_.cursor=_.limit-r,_.slice_del(),_.ket=_.cursor,_.eq_s_b(2,"en")&&(_.bra=_.cursor,k())))),_.cursor=_.limit-s,_.ket=_.cursor,e=_.find_among_b(a,6))switch(_.bra=_.cursor,e){case 1:if(p()){if(_.slice_del(),i=_.limit-_.cursor,_.ket=_.cursor,_.eq_s_b(2,"ig")&&(_.bra=_.cursor,p()&&(n=_.limit-_.cursor,!_.eq_s_b(1,"e")))){_.cursor=_.limit-n,_.slice_del();break}_.cursor=_.limit-i,g()}break;case 2:p()&&(o=_.limit-_.cursor,_.eq_s_b(1,"e")||(_.cursor=_.limit-o,_.slice_del()));break;case 3:p()&&(_.slice_del(),h());break;case 4:p()&&_.slice_del();break;case 5:p()&&u&&_.slice_del()}_.cursor=_.limit-s,_.out_grouping_b(d,73,232)&&(t=_.limit-_.cursor,_.find_among_b(l,4)&&_.out_grouping_b(m,97,232)&&(_.cursor=_.limit-t,_.ket=_.cursor,_.cursor>_.limit_backward&&(_.cursor--,_.bra=_.cursor,_.slice_del())))}(),_.cursor=_.limit_backward,function(){for(var e;;)if(_.bra=_.cursor,e=_.find_among(n,3))switch(_.ket=_.cursor,e){case 1:_.slice_from("y");break;case 2:_.slice_from("i");break;case 3:if(_.cursor>=_.limit)return;_.cursor++}}(),!0}},function(e){return"function"==typeof e.update?e.update(function(e){return r.setCurrent(e),r.stem(),r.getCurrent()}):(r.setCurrent(e),r.stem(),r.getCurrent())}),e.Pipeline.registerFunction(e.du.stemmer,"stemmer-du"),e.du.stopWordFilter=e.generateStopWordFilter(" aan al alles als altijd andere ben bij daar dan dat de der deze die dit doch doen door dus een eens en er ge geen geweest haar had heb hebben heeft hem het hier hij hoe hun iemand iets ik in is ja je kan kon kunnen maar me meer men met mij mijn moet na naar niet niets nog nu of om omdat onder ons ook op over reeds te tegen toch toen tot u uit uw van veel voor want waren was wat werd wezen wie wil worden wordt zal ze zelf zich zij zijn zo zonder zou".split(" ")),e.Pipeline.registerFunction(e.du.stopWordFilter,"stopWordFilter-du")}}); \ No newline at end of file diff --git a/public/docs/assets/javascripts/lunr/lunr.es.js b/public/docs/assets/javascripts/lunr/lunr.es.js new file mode 100644 index 0000000..9de6c09 --- /dev/null +++ b/public/docs/assets/javascripts/lunr/lunr.es.js @@ -0,0 +1 @@ +!function(e,s){"function"==typeof define&&define.amd?define(s):"object"==typeof exports?module.exports=s():s()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var C,P,s;e.es=function(){this.pipeline.reset(),this.pipeline.add(e.es.trimmer,e.es.stopWordFilter,e.es.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.es.stemmer))},e.es.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.es.trimmer=e.trimmerSupport.generateTrimmer(e.es.wordCharacters),e.Pipeline.registerFunction(e.es.trimmer,"trimmer-es"),e.es.stemmer=(C=e.stemmerSupport.Among,P=e.stemmerSupport.SnowballProgram,s=new function(){var r,n,i,a=[new C("",-1,6),new C("á",0,1),new C("é",0,2),new C("í",0,3),new C("ó",0,4),new C("ú",0,5)],t=[new C("la",-1,-1),new C("sela",0,-1),new C("le",-1,-1),new C("me",-1,-1),new C("se",-1,-1),new C("lo",-1,-1),new C("selo",5,-1),new C("las",-1,-1),new C("selas",7,-1),new C("les",-1,-1),new C("los",-1,-1),new C("selos",10,-1),new C("nos",-1,-1)],o=[new C("ando",-1,6),new C("iendo",-1,6),new C("yendo",-1,7),new C("ándo",-1,2),new C("iéndo",-1,1),new C("ar",-1,6),new C("er",-1,6),new C("ir",-1,6),new C("ár",-1,3),new C("ér",-1,4),new C("ír",-1,5)],s=[new C("ic",-1,-1),new C("ad",-1,-1),new C("os",-1,-1),new C("iv",-1,1)],u=[new C("able",-1,1),new C("ible",-1,1),new C("ante",-1,1)],w=[new C("ic",-1,1),new C("abil",-1,1),new C("iv",-1,1)],c=[new C("ica",-1,1),new C("ancia",-1,2),new C("encia",-1,5),new C("adora",-1,2),new C("osa",-1,1),new C("ista",-1,1),new C("iva",-1,9),new C("anza",-1,1),new C("logía",-1,3),new C("idad",-1,8),new C("able",-1,1),new C("ible",-1,1),new C("ante",-1,2),new C("mente",-1,7),new C("amente",13,6),new C("ación",-1,2),new C("ución",-1,4),new C("ico",-1,1),new C("ismo",-1,1),new C("oso",-1,1),new C("amiento",-1,1),new C("imiento",-1,1),new C("ivo",-1,9),new C("ador",-1,2),new C("icas",-1,1),new C("ancias",-1,2),new C("encias",-1,5),new C("adoras",-1,2),new C("osas",-1,1),new C("istas",-1,1),new C("ivas",-1,9),new C("anzas",-1,1),new C("logías",-1,3),new C("idades",-1,8),new C("ables",-1,1),new C("ibles",-1,1),new C("aciones",-1,2),new C("uciones",-1,4),new C("adores",-1,2),new C("antes",-1,2),new C("icos",-1,1),new C("ismos",-1,1),new C("osos",-1,1),new C("amientos",-1,1),new C("imientos",-1,1),new C("ivos",-1,9)],m=[new C("ya",-1,1),new C("ye",-1,1),new C("yan",-1,1),new C("yen",-1,1),new C("yeron",-1,1),new C("yendo",-1,1),new C("yo",-1,1),new C("yas",-1,1),new C("yes",-1,1),new C("yais",-1,1),new C("yamos",-1,1),new C("yó",-1,1)],l=[new C("aba",-1,2),new C("ada",-1,2),new C("ida",-1,2),new C("ara",-1,2),new C("iera",-1,2),new C("ía",-1,2),new C("aría",5,2),new C("ería",5,2),new C("iría",5,2),new C("ad",-1,2),new C("ed",-1,2),new C("id",-1,2),new C("ase",-1,2),new C("iese",-1,2),new C("aste",-1,2),new C("iste",-1,2),new C("an",-1,2),new C("aban",16,2),new C("aran",16,2),new C("ieran",16,2),new C("ían",16,2),new C("arían",20,2),new C("erían",20,2),new C("irían",20,2),new C("en",-1,1),new C("asen",24,2),new C("iesen",24,2),new C("aron",-1,2),new C("ieron",-1,2),new C("arán",-1,2),new C("erán",-1,2),new C("irán",-1,2),new C("ado",-1,2),new C("ido",-1,2),new C("ando",-1,2),new C("iendo",-1,2),new C("ar",-1,2),new C("er",-1,2),new C("ir",-1,2),new C("as",-1,2),new C("abas",39,2),new C("adas",39,2),new C("idas",39,2),new C("aras",39,2),new C("ieras",39,2),new C("ías",39,2),new C("arías",45,2),new C("erías",45,2),new C("irías",45,2),new C("es",-1,1),new C("ases",49,2),new C("ieses",49,2),new C("abais",-1,2),new C("arais",-1,2),new C("ierais",-1,2),new C("íais",-1,2),new C("aríais",55,2),new C("eríais",55,2),new C("iríais",55,2),new C("aseis",-1,2),new C("ieseis",-1,2),new C("asteis",-1,2),new C("isteis",-1,2),new C("áis",-1,2),new C("éis",-1,1),new C("aréis",64,2),new C("eréis",64,2),new C("iréis",64,2),new C("ados",-1,2),new C("idos",-1,2),new C("amos",-1,2),new C("ábamos",70,2),new C("áramos",70,2),new C("iéramos",70,2),new C("íamos",70,2),new C("aríamos",74,2),new C("eríamos",74,2),new C("iríamos",74,2),new C("emos",-1,1),new C("aremos",78,2),new C("eremos",78,2),new C("iremos",78,2),new C("ásemos",78,2),new C("iésemos",78,2),new C("imos",-1,2),new C("arás",-1,2),new C("erás",-1,2),new C("irás",-1,2),new C("ís",-1,2),new C("ará",-1,2),new C("erá",-1,2),new C("irá",-1,2),new C("aré",-1,2),new C("eré",-1,2),new C("iré",-1,2),new C("ió",-1,2)],d=[new C("a",-1,1),new C("e",-1,2),new C("o",-1,1),new C("os",-1,1),new C("á",-1,1),new C("é",-1,2),new C("í",-1,1),new C("ó",-1,1)],b=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,1,17,4,10],f=new P;function _(){if(f.out_grouping(b,97,252)){for(;!f.in_grouping(b,97,252);){if(f.cursor>=f.limit)return!0;f.cursor++}return!1}return!0}function h(){var e,s=f.cursor;if(function(){if(f.in_grouping(b,97,252)){var e=f.cursor;if(_()){if(f.cursor=e,!f.in_grouping(b,97,252))return!0;for(;!f.out_grouping(b,97,252);){if(f.cursor>=f.limit)return!0;f.cursor++}}return!1}return!0}()){if(f.cursor=s,!f.out_grouping(b,97,252))return;if(e=f.cursor,_()){if(f.cursor=e,!f.in_grouping(b,97,252)||f.cursor>=f.limit)return;f.cursor++}}i=f.cursor}function v(){for(;!f.in_grouping(b,97,252);){if(f.cursor>=f.limit)return!1;f.cursor++}for(;!f.out_grouping(b,97,252);){if(f.cursor>=f.limit)return!1;f.cursor++}return!0}function p(){return i<=f.cursor}function g(){return r<=f.cursor}function k(e,s){if(!g())return!0;f.slice_del(),f.ket=f.cursor;var r=f.find_among_b(e,s);return r&&(f.bra=f.cursor,1==r&&g()&&f.slice_del()),!1}function y(e){return!g()||(f.slice_del(),f.ket=f.cursor,f.eq_s_b(2,e)&&(f.bra=f.cursor,g()&&f.slice_del()),!1)}function q(){var e;if(f.ket=f.cursor,e=f.find_among_b(c,46)){switch(f.bra=f.cursor,e){case 1:if(!g())return!1;f.slice_del();break;case 2:if(y("ic"))return!1;break;case 3:if(!g())return!1;f.slice_from("log");break;case 4:if(!g())return!1;f.slice_from("u");break;case 5:if(!g())return!1;f.slice_from("ente");break;case 6:if(!(n<=f.cursor))return!1;f.slice_del(),f.ket=f.cursor,(e=f.find_among_b(s,4))&&(f.bra=f.cursor,g()&&(f.slice_del(),1==e&&(f.ket=f.cursor,f.eq_s_b(2,"at")&&(f.bra=f.cursor,g()&&f.slice_del()))));break;case 7:if(k(u,3))return!1;break;case 8:if(k(w,3))return!1;break;case 9:if(y("at"))return!1}return!0}return!1}this.setCurrent=function(e){f.setCurrent(e)},this.getCurrent=function(){return f.getCurrent()},this.stem=function(){var e,s=f.cursor;return e=f.cursor,i=f.limit,r=n=i,h(),f.cursor=e,v()&&(n=f.cursor,v()&&(r=f.cursor)),f.limit_backward=s,f.cursor=f.limit,function(){var e;if(f.ket=f.cursor,f.find_among_b(t,13)&&(f.bra=f.cursor,(e=f.find_among_b(o,11))&&p()))switch(e){case 1:f.bra=f.cursor,f.slice_from("iendo");break;case 2:f.bra=f.cursor,f.slice_from("ando");break;case 3:f.bra=f.cursor,f.slice_from("ar");break;case 4:f.bra=f.cursor,f.slice_from("er");break;case 5:f.bra=f.cursor,f.slice_from("ir");break;case 6:f.slice_del();break;case 7:f.eq_s_b(1,"u")&&f.slice_del()}}(),f.cursor=f.limit,q()||(f.cursor=f.limit,function(){var e,s;if(f.cursor>=i&&(s=f.limit_backward,f.limit_backward=i,f.ket=f.cursor,e=f.find_among_b(m,12),f.limit_backward=s,e)){if(f.bra=f.cursor,1==e){if(!f.eq_s_b(1,"u"))return!1;f.slice_del()}return!0}return!1}()||(f.cursor=f.limit,function(){var e,s,r,n;if(f.cursor>=i&&(s=f.limit_backward,f.limit_backward=i,f.ket=f.cursor,e=f.find_among_b(l,96),f.limit_backward=s,e))switch(f.bra=f.cursor,e){case 1:r=f.limit-f.cursor,f.eq_s_b(1,"u")?(n=f.limit-f.cursor,f.eq_s_b(1,"g")?f.cursor=f.limit-n:f.cursor=f.limit-r):f.cursor=f.limit-r,f.bra=f.cursor;case 2:f.slice_del()}}())),f.cursor=f.limit,function(){var e,s;if(f.ket=f.cursor,e=f.find_among_b(d,8))switch(f.bra=f.cursor,e){case 1:p()&&f.slice_del();break;case 2:p()&&(f.slice_del(),f.ket=f.cursor,f.eq_s_b(1,"u")&&(f.bra=f.cursor,s=f.limit-f.cursor,f.eq_s_b(1,"g")&&(f.cursor=f.limit-s,p()&&f.slice_del())))}}(),f.cursor=f.limit_backward,function(){for(var e;;){if(f.bra=f.cursor,e=f.find_among(a,6))switch(f.ket=f.cursor,e){case 1:f.slice_from("a");continue;case 2:f.slice_from("e");continue;case 3:f.slice_from("i");continue;case 4:f.slice_from("o");continue;case 5:f.slice_from("u");continue;case 6:if(f.cursor>=f.limit)break;f.cursor++;continue}break}}(),!0}},function(e){return"function"==typeof e.update?e.update(function(e){return s.setCurrent(e),s.stem(),s.getCurrent()}):(s.setCurrent(e),s.stem(),s.getCurrent())}),e.Pipeline.registerFunction(e.es.stemmer,"stemmer-es"),e.es.stopWordFilter=e.generateStopWordFilter("a al algo algunas algunos ante antes como con contra cual cuando de del desde donde durante e el ella ellas ellos en entre era erais eran eras eres es esa esas ese eso esos esta estaba estabais estaban estabas estad estada estadas estado estados estamos estando estar estaremos estará estarán estarás estaré estaréis estaría estaríais estaríamos estarían estarías estas este estemos esto estos estoy estuve estuviera estuvierais estuvieran estuvieras estuvieron estuviese estuvieseis estuviesen estuvieses estuvimos estuviste estuvisteis estuviéramos estuviésemos estuvo está estábamos estáis están estás esté estéis estén estés fue fuera fuerais fueran fueras fueron fuese fueseis fuesen fueses fui fuimos fuiste fuisteis fuéramos fuésemos ha habida habidas habido habidos habiendo habremos habrá habrán habrás habré habréis habría habríais habríamos habrían habrías habéis había habíais habíamos habían habías han has hasta hay haya hayamos hayan hayas hayáis he hemos hube hubiera hubierais hubieran hubieras hubieron hubiese hubieseis hubiesen hubieses hubimos hubiste hubisteis hubiéramos hubiésemos hubo la las le les lo los me mi mis mucho muchos muy más mí mía mías mío míos nada ni no nos nosotras nosotros nuestra nuestras nuestro nuestros o os otra otras otro otros para pero poco por porque que quien quienes qué se sea seamos sean seas seremos será serán serás seré seréis sería seríais seríamos serían serías seáis sido siendo sin sobre sois somos son soy su sus suya suyas suyo suyos sí también tanto te tendremos tendrá tendrán tendrás tendré tendréis tendría tendríais tendríamos tendrían tendrías tened tenemos tenga tengamos tengan tengas tengo tengáis tenida tenidas tenido tenidos teniendo tenéis tenía teníais teníamos tenían tenías ti tiene tienen tienes todo todos tu tus tuve tuviera tuvierais tuvieran tuvieras tuvieron tuviese tuvieseis tuviesen tuvieses tuvimos tuviste tuvisteis tuviéramos tuviésemos tuvo tuya tuyas tuyo tuyos tú un una uno unos vosotras vosotros vuestra vuestras vuestro vuestros y ya yo él éramos".split(" ")),e.Pipeline.registerFunction(e.es.stopWordFilter,"stopWordFilter-es")}}); \ No newline at end of file diff --git a/public/docs/assets/javascripts/lunr/lunr.fi.js b/public/docs/assets/javascripts/lunr/lunr.fi.js new file mode 100644 index 0000000..2f9bf5a --- /dev/null +++ b/public/docs/assets/javascripts/lunr/lunr.fi.js @@ -0,0 +1 @@ +!function(i,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e():e()(i.lunr)}(this,function(){return function(i){if(void 0===i)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===i.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var v,C,e;i.fi=function(){this.pipeline.reset(),this.pipeline.add(i.fi.trimmer,i.fi.stopWordFilter,i.fi.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(i.fi.stemmer))},i.fi.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",i.fi.trimmer=i.trimmerSupport.generateTrimmer(i.fi.wordCharacters),i.Pipeline.registerFunction(i.fi.trimmer,"trimmer-fi"),i.fi.stemmer=(v=i.stemmerSupport.Among,C=i.stemmerSupport.SnowballProgram,e=new function(){var n,t,l,o,r=[new v("pa",-1,1),new v("sti",-1,2),new v("kaan",-1,1),new v("han",-1,1),new v("kin",-1,1),new v("hän",-1,1),new v("kään",-1,1),new v("ko",-1,1),new v("pä",-1,1),new v("kö",-1,1)],s=[new v("lla",-1,-1),new v("na",-1,-1),new v("ssa",-1,-1),new v("ta",-1,-1),new v("lta",3,-1),new v("sta",3,-1)],a=[new v("llä",-1,-1),new v("nä",-1,-1),new v("ssä",-1,-1),new v("tä",-1,-1),new v("ltä",3,-1),new v("stä",3,-1)],u=[new v("lle",-1,-1),new v("ine",-1,-1)],c=[new v("nsa",-1,3),new v("mme",-1,3),new v("nne",-1,3),new v("ni",-1,2),new v("si",-1,1),new v("an",-1,4),new v("en",-1,6),new v("än",-1,5),new v("nsä",-1,3)],i=[new v("aa",-1,-1),new v("ee",-1,-1),new v("ii",-1,-1),new v("oo",-1,-1),new v("uu",-1,-1),new v("ää",-1,-1),new v("öö",-1,-1)],m=[new v("a",-1,8),new v("lla",0,-1),new v("na",0,-1),new v("ssa",0,-1),new v("ta",0,-1),new v("lta",4,-1),new v("sta",4,-1),new v("tta",4,9),new v("lle",-1,-1),new v("ine",-1,-1),new v("ksi",-1,-1),new v("n",-1,7),new v("han",11,1),new v("den",11,-1,q),new v("seen",11,-1,j),new v("hen",11,2),new v("tten",11,-1,q),new v("hin",11,3),new v("siin",11,-1,q),new v("hon",11,4),new v("hän",11,5),new v("hön",11,6),new v("ä",-1,8),new v("llä",22,-1),new v("nä",22,-1),new v("ssä",22,-1),new v("tä",22,-1),new v("ltä",26,-1),new v("stä",26,-1),new v("ttä",26,9)],w=[new v("eja",-1,-1),new v("mma",-1,1),new v("imma",1,-1),new v("mpa",-1,1),new v("impa",3,-1),new v("mmi",-1,1),new v("immi",5,-1),new v("mpi",-1,1),new v("impi",7,-1),new v("ejä",-1,-1),new v("mmä",-1,1),new v("immä",10,-1),new v("mpä",-1,1),new v("impä",12,-1)],_=[new v("i",-1,-1),new v("j",-1,-1)],k=[new v("mma",-1,1),new v("imma",0,-1)],b=[17,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8],d=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],e=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],f=[17,97,24,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],h=new C;function p(){for(var i;i=h.cursor,!h.in_grouping(d,97,246);){if((h.cursor=i)>=h.limit)return!0;h.cursor++}for(h.cursor=i;!h.out_grouping(d,97,246);){if(h.cursor>=h.limit)return!0;h.cursor++}return!1}function g(){var i,e;if(h.cursor>=o)if(e=h.limit_backward,h.limit_backward=o,h.ket=h.cursor,i=h.find_among_b(r,10)){switch(h.bra=h.cursor,h.limit_backward=e,i){case 1:if(!h.in_grouping_b(f,97,246))return;break;case 2:if(!(l<=h.cursor))return}h.slice_del()}else h.limit_backward=e}function j(){return h.find_among_b(i,7)}function q(){return h.eq_s_b(1,"i")&&h.in_grouping_b(e,97,246)}this.setCurrent=function(i){h.setCurrent(i)},this.getCurrent=function(){return h.getCurrent()},this.stem=function(){var i,e=h.cursor;return o=h.limit,l=o,p()||(o=h.cursor,p()||(l=h.cursor)),n=!1,h.limit_backward=e,h.cursor=h.limit,g(),h.cursor=h.limit,function(){var i,e,r;if(h.cursor>=o)if(e=h.limit_backward,h.limit_backward=o,h.ket=h.cursor,i=h.find_among_b(c,9))switch(h.bra=h.cursor,h.limit_backward=e,i){case 1:r=h.limit-h.cursor,h.eq_s_b(1,"k")||(h.cursor=h.limit-r,h.slice_del());break;case 2:h.slice_del(),h.ket=h.cursor,h.eq_s_b(3,"kse")&&(h.bra=h.cursor,h.slice_from("ksi"));break;case 3:h.slice_del();break;case 4:h.find_among_b(s,6)&&h.slice_del();break;case 5:h.find_among_b(a,6)&&h.slice_del();break;case 6:h.find_among_b(u,2)&&h.slice_del()}else h.limit_backward=e}(),h.cursor=h.limit,function(){var i,e,r;if(h.cursor>=o)if(e=h.limit_backward,h.limit_backward=o,h.ket=h.cursor,i=h.find_among_b(m,30)){switch(h.bra=h.cursor,h.limit_backward=e,i){case 1:if(!h.eq_s_b(1,"a"))return;break;case 2:case 9:if(!h.eq_s_b(1,"e"))return;break;case 3:if(!h.eq_s_b(1,"i"))return;break;case 4:if(!h.eq_s_b(1,"o"))return;break;case 5:if(!h.eq_s_b(1,"ä"))return;break;case 6:if(!h.eq_s_b(1,"ö"))return;break;case 7:if(r=h.limit-h.cursor,!j()&&(h.cursor=h.limit-r,!h.eq_s_b(2,"ie"))){h.cursor=h.limit-r;break}if(h.cursor=h.limit-r,h.cursor<=h.limit_backward){h.cursor=h.limit-r;break}h.cursor--,h.bra=h.cursor;break;case 8:if(!h.in_grouping_b(d,97,246)||!h.out_grouping_b(d,97,246))return}h.slice_del(),n=!0}else h.limit_backward=e}(),h.cursor=h.limit,function(){var i,e,r;if(h.cursor>=l)if(e=h.limit_backward,h.limit_backward=l,h.ket=h.cursor,i=h.find_among_b(w,14)){if(h.bra=h.cursor,h.limit_backward=e,1==i){if(r=h.limit-h.cursor,h.eq_s_b(2,"po"))return;h.cursor=h.limit-r}h.slice_del()}else h.limit_backward=e}(),h.cursor=h.limit,h.cursor=(n?h.cursor>=o&&(i=h.limit_backward,h.limit_backward=o,h.ket=h.cursor,h.find_among_b(_,2)?(h.bra=h.cursor,h.limit_backward=i,h.slice_del()):h.limit_backward=i):(h.cursor=h.limit,function(){var i,e,r,n,t,s;if(h.cursor>=o){if(e=h.limit_backward,h.limit_backward=o,h.ket=h.cursor,h.eq_s_b(1,"t")&&(h.bra=h.cursor,r=h.limit-h.cursor,h.in_grouping_b(d,97,246)&&(h.cursor=h.limit-r,h.slice_del(),h.limit_backward=e,n=h.limit-h.cursor,h.cursor>=l&&(h.cursor=l,t=h.limit_backward,h.limit_backward=h.cursor,h.cursor=h.limit-n,h.ket=h.cursor,i=h.find_among_b(k,2))))){if(h.bra=h.cursor,h.limit_backward=t,1==i){if(s=h.limit-h.cursor,h.eq_s_b(2,"po"))return;h.cursor=h.limit-s}return h.slice_del()}h.limit_backward=e}}()),h.limit),function(){var i,e,r,n;if(h.cursor>=o){for(i=h.limit_backward,h.limit_backward=o,e=h.limit-h.cursor,j()&&(h.cursor=h.limit-e,h.ket=h.cursor,h.cursor>h.limit_backward&&(h.cursor--,h.bra=h.cursor,h.slice_del())),h.cursor=h.limit-e,h.ket=h.cursor,h.in_grouping_b(b,97,228)&&(h.bra=h.cursor,h.out_grouping_b(d,97,246)&&h.slice_del()),h.cursor=h.limit-e,h.ket=h.cursor,h.eq_s_b(1,"j")&&(h.bra=h.cursor,r=h.limit-h.cursor,h.eq_s_b(1,"o")?h.slice_del():(h.cursor=h.limit-r,h.eq_s_b(1,"u")&&h.slice_del())),h.cursor=h.limit-e,h.ket=h.cursor,h.eq_s_b(1,"o")&&(h.bra=h.cursor,h.eq_s_b(1,"j")&&h.slice_del()),h.cursor=h.limit-e,h.limit_backward=i;;){if(n=h.limit-h.cursor,h.out_grouping_b(d,97,246)){h.cursor=h.limit-n;break}if(h.cursor=h.limit-n,h.cursor<=h.limit_backward)return;h.cursor--}h.ket=h.cursor,h.cursor>h.limit_backward&&(h.cursor--,h.bra=h.cursor,t=h.slice_to(),h.eq_v_b(t)&&h.slice_del())}}(),!0}},function(i){return"function"==typeof i.update?i.update(function(i){return e.setCurrent(i),e.stem(),e.getCurrent()}):(e.setCurrent(i),e.stem(),e.getCurrent())}),i.Pipeline.registerFunction(i.fi.stemmer,"stemmer-fi"),i.fi.stopWordFilter=i.generateStopWordFilter("ei eivät emme en et ette että he heidän heidät heihin heille heillä heiltä heissä heistä heitä hän häneen hänelle hänellä häneltä hänen hänessä hänestä hänet häntä itse ja johon joiden joihin joiksi joilla joille joilta joina joissa joista joita joka joksi jolla jolle jolta jona jonka jos jossa josta jota jotka kanssa keiden keihin keiksi keille keillä keiltä keinä keissä keistä keitä keneen keneksi kenelle kenellä keneltä kenen kenenä kenessä kenestä kenet ketkä ketkä ketä koska kuin kuka kun me meidän meidät meihin meille meillä meiltä meissä meistä meitä mihin miksi mikä mille millä miltä minkä minkä minua minulla minulle minulta minun minussa minusta minut minuun minä minä missä mistä mitkä mitä mukaan mutta ne niiden niihin niiksi niille niillä niiltä niin niin niinä niissä niistä niitä noiden noihin noiksi noilla noille noilta noin noina noissa noista noita nuo nyt näiden näihin näiksi näille näillä näiltä näinä näissä näistä näitä nämä ole olemme olen olet olette oli olimme olin olisi olisimme olisin olisit olisitte olisivat olit olitte olivat olla olleet ollut on ovat poikki se sekä sen siihen siinä siitä siksi sille sillä sillä siltä sinua sinulla sinulle sinulta sinun sinussa sinusta sinut sinuun sinä sinä sitä tai te teidän teidät teihin teille teillä teiltä teissä teistä teitä tuo tuohon tuoksi tuolla tuolle tuolta tuon tuona tuossa tuosta tuota tähän täksi tälle tällä tältä tämä tämän tänä tässä tästä tätä vaan vai vaikka yli".split(" ")),i.Pipeline.registerFunction(i.fi.stopWordFilter,"stopWordFilter-fi")}}); \ No newline at end of file diff --git a/public/docs/assets/javascripts/lunr/lunr.fr.js b/public/docs/assets/javascripts/lunr/lunr.fr.js new file mode 100644 index 0000000..078d0ca --- /dev/null +++ b/public/docs/assets/javascripts/lunr/lunr.fr.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r,y,s;e.fr=function(){this.pipeline.reset(),this.pipeline.add(e.fr.trimmer,e.fr.stopWordFilter,e.fr.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.fr.stemmer))},e.fr.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.fr.trimmer=e.trimmerSupport.generateTrimmer(e.fr.wordCharacters),e.Pipeline.registerFunction(e.fr.trimmer,"trimmer-fr"),e.fr.stemmer=(r=e.stemmerSupport.Among,y=e.stemmerSupport.SnowballProgram,s=new function(){var s,i,t,n=[new r("col",-1,-1),new r("par",-1,-1),new r("tap",-1,-1)],u=[new r("",-1,4),new r("I",0,1),new r("U",0,2),new r("Y",0,3)],o=[new r("iqU",-1,3),new r("abl",-1,3),new r("Ièr",-1,4),new r("ièr",-1,4),new r("eus",-1,2),new r("iv",-1,1)],c=[new r("ic",-1,2),new r("abil",-1,1),new r("iv",-1,3)],a=[new r("iqUe",-1,1),new r("atrice",-1,2),new r("ance",-1,1),new r("ence",-1,5),new r("logie",-1,3),new r("able",-1,1),new r("isme",-1,1),new r("euse",-1,11),new r("iste",-1,1),new r("ive",-1,8),new r("if",-1,8),new r("usion",-1,4),new r("ation",-1,2),new r("ution",-1,4),new r("ateur",-1,2),new r("iqUes",-1,1),new r("atrices",-1,2),new r("ances",-1,1),new r("ences",-1,5),new r("logies",-1,3),new r("ables",-1,1),new r("ismes",-1,1),new r("euses",-1,11),new r("istes",-1,1),new r("ives",-1,8),new r("ifs",-1,8),new r("usions",-1,4),new r("ations",-1,2),new r("utions",-1,4),new r("ateurs",-1,2),new r("ments",-1,15),new r("ements",30,6),new r("issements",31,12),new r("ités",-1,7),new r("ment",-1,15),new r("ement",34,6),new r("issement",35,12),new r("amment",34,13),new r("emment",34,14),new r("aux",-1,10),new r("eaux",39,9),new r("eux",-1,1),new r("ité",-1,7)],l=[new r("ira",-1,1),new r("ie",-1,1),new r("isse",-1,1),new r("issante",-1,1),new r("i",-1,1),new r("irai",4,1),new r("ir",-1,1),new r("iras",-1,1),new r("ies",-1,1),new r("îmes",-1,1),new r("isses",-1,1),new r("issantes",-1,1),new r("îtes",-1,1),new r("is",-1,1),new r("irais",13,1),new r("issais",13,1),new r("irions",-1,1),new r("issions",-1,1),new r("irons",-1,1),new r("issons",-1,1),new r("issants",-1,1),new r("it",-1,1),new r("irait",21,1),new r("issait",21,1),new r("issant",-1,1),new r("iraIent",-1,1),new r("issaIent",-1,1),new r("irent",-1,1),new r("issent",-1,1),new r("iront",-1,1),new r("ît",-1,1),new r("iriez",-1,1),new r("issiez",-1,1),new r("irez",-1,1),new r("issez",-1,1)],w=[new r("a",-1,3),new r("era",0,2),new r("asse",-1,3),new r("ante",-1,3),new r("ée",-1,2),new r("ai",-1,3),new r("erai",5,2),new r("er",-1,2),new r("as",-1,3),new r("eras",8,2),new r("âmes",-1,3),new r("asses",-1,3),new r("antes",-1,3),new r("âtes",-1,3),new r("ées",-1,2),new r("ais",-1,3),new r("erais",15,2),new r("ions",-1,1),new r("erions",17,2),new r("assions",17,3),new r("erons",-1,2),new r("ants",-1,3),new r("és",-1,2),new r("ait",-1,3),new r("erait",23,2),new r("ant",-1,3),new r("aIent",-1,3),new r("eraIent",26,2),new r("èrent",-1,2),new r("assent",-1,3),new r("eront",-1,2),new r("ât",-1,3),new r("ez",-1,2),new r("iez",32,2),new r("eriez",33,2),new r("assiez",33,3),new r("erez",32,2),new r("é",-1,2)],f=[new r("e",-1,3),new r("Ière",0,2),new r("ière",0,2),new r("ion",-1,1),new r("Ier",-1,2),new r("ier",-1,2),new r("ë",-1,4)],m=[new r("ell",-1,-1),new r("eill",-1,-1),new r("enn",-1,-1),new r("onn",-1,-1),new r("ett",-1,-1)],_=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,128,130,103,8,5],b=[1,65,20,0,0,0,0,0,0,0,0,0,0,0,0,0,128],d=new y;function k(e,r,s){return!(!d.eq_s(1,e)||(d.ket=d.cursor,!d.in_grouping(_,97,251)))&&(d.slice_from(r),d.cursor=s,!0)}function p(e,r,s){return!!d.eq_s(1,e)&&(d.ket=d.cursor,d.slice_from(r),d.cursor=s,!0)}function g(){for(;!d.in_grouping(_,97,251);){if(d.cursor>=d.limit)return!0;d.cursor++}for(;!d.out_grouping(_,97,251);){if(d.cursor>=d.limit)return!0;d.cursor++}return!1}function q(){return t<=d.cursor}function v(){return i<=d.cursor}function h(){return s<=d.cursor}function z(){if(!function(){var e,r;if(d.ket=d.cursor,e=d.find_among_b(a,43)){switch(d.bra=d.cursor,e){case 1:if(!h())return!1;d.slice_del();break;case 2:if(!h())return!1;d.slice_del(),d.ket=d.cursor,d.eq_s_b(2,"ic")&&(d.bra=d.cursor,h()?d.slice_del():d.slice_from("iqU"));break;case 3:if(!h())return!1;d.slice_from("log");break;case 4:if(!h())return!1;d.slice_from("u");break;case 5:if(!h())return!1;d.slice_from("ent");break;case 6:if(!q())return!1;if(d.slice_del(),d.ket=d.cursor,e=d.find_among_b(o,6))switch(d.bra=d.cursor,e){case 1:h()&&(d.slice_del(),d.ket=d.cursor,d.eq_s_b(2,"at")&&(d.bra=d.cursor,h()&&d.slice_del()));break;case 2:h()?d.slice_del():v()&&d.slice_from("eux");break;case 3:h()&&d.slice_del();break;case 4:q()&&d.slice_from("i")}break;case 7:if(!h())return!1;if(d.slice_del(),d.ket=d.cursor,e=d.find_among_b(c,3))switch(d.bra=d.cursor,e){case 1:h()?d.slice_del():d.slice_from("abl");break;case 2:h()?d.slice_del():d.slice_from("iqU");break;case 3:h()&&d.slice_del()}break;case 8:if(!h())return!1;if(d.slice_del(),d.ket=d.cursor,d.eq_s_b(2,"at")&&(d.bra=d.cursor,h()&&(d.slice_del(),d.ket=d.cursor,d.eq_s_b(2,"ic")))){d.bra=d.cursor,h()?d.slice_del():d.slice_from("iqU");break}break;case 9:d.slice_from("eau");break;case 10:if(!v())return!1;d.slice_from("al");break;case 11:if(h())d.slice_del();else{if(!v())return!1;d.slice_from("eux")}break;case 12:if(!v()||!d.out_grouping_b(_,97,251))return!1;d.slice_del();break;case 13:return q()&&d.slice_from("ant"),!1;case 14:return q()&&d.slice_from("ent"),!1;case 15:return r=d.limit-d.cursor,d.in_grouping_b(_,97,251)&&q()&&(d.cursor=d.limit-r,d.slice_del()),!1}return!0}return!1}()&&(d.cursor=d.limit,!function(){var e,r;if(d.cursor=t){if(s=d.limit_backward,d.limit_backward=t,d.ket=d.cursor,e=d.find_among_b(f,7))switch(d.bra=d.cursor,e){case 1:if(h()){if(i=d.limit-d.cursor,!d.eq_s_b(1,"s")&&(d.cursor=d.limit-i,!d.eq_s_b(1,"t")))break;d.slice_del()}break;case 2:d.slice_from("i");break;case 3:d.slice_del();break;case 4:d.eq_s_b(2,"gu")&&d.slice_del()}d.limit_backward=s}}();d.cursor=d.limit,d.ket=d.cursor,d.eq_s_b(1,"Y")?(d.bra=d.cursor,d.slice_from("i")):(d.cursor=d.limit,d.eq_s_b(1,"ç")&&(d.bra=d.cursor,d.slice_from("c")))}this.setCurrent=function(e){d.setCurrent(e)},this.getCurrent=function(){return d.getCurrent()},this.stem=function(){var e,r=d.cursor;return function(){for(var e,r;;){if(e=d.cursor,d.in_grouping(_,97,251)){if(d.bra=d.cursor,r=d.cursor,k("u","U",e))continue;if(d.cursor=r,k("i","I",e))continue;if(d.cursor=r,p("y","Y",e))continue}if(d.cursor=e,!k("y","Y",d.bra=e)){if(d.cursor=e,d.eq_s(1,"q")&&(d.bra=d.cursor,p("u","U",e)))continue;if((d.cursor=e)>=d.limit)return;d.cursor++}}}(),d.cursor=r,function(){var e=d.cursor;if(t=d.limit,s=i=t,d.in_grouping(_,97,251)&&d.in_grouping(_,97,251)&&d.cursor=d.limit){d.cursor=t;break}d.cursor++}while(!d.in_grouping(_,97,251))}t=d.cursor,d.cursor=e,g()||(i=d.cursor,g()||(s=d.cursor))}(),d.limit_backward=r,d.cursor=d.limit,z(),d.cursor=d.limit,e=d.limit-d.cursor,d.find_among_b(m,5)&&(d.cursor=d.limit-e,d.ket=d.cursor,d.cursor>d.limit_backward&&(d.cursor--,d.bra=d.cursor,d.slice_del())),d.cursor=d.limit,function(){for(var e,r=1;d.out_grouping_b(_,97,251);)r--;if(r<=0){if(d.ket=d.cursor,e=d.limit-d.cursor,!d.eq_s_b(1,"é")&&(d.cursor=d.limit-e,!d.eq_s_b(1,"è")))return;d.bra=d.cursor,d.slice_from("e")}}(),d.cursor=d.limit_backward,function(){for(var e,r;r=d.cursor,d.bra=r,e=d.find_among(u,4);)switch(d.ket=d.cursor,e){case 1:d.slice_from("i");break;case 2:d.slice_from("u");break;case 3:d.slice_from("y");break;case 4:if(d.cursor>=d.limit)return;d.cursor++}}(),!0}},function(e){return"function"==typeof e.update?e.update(function(e){return s.setCurrent(e),s.stem(),s.getCurrent()}):(s.setCurrent(e),s.stem(),s.getCurrent())}),e.Pipeline.registerFunction(e.fr.stemmer,"stemmer-fr"),e.fr.stopWordFilter=e.generateStopWordFilter("ai aie aient aies ait as au aura aurai auraient aurais aurait auras aurez auriez aurions aurons auront aux avaient avais avait avec avez aviez avions avons ayant ayez ayons c ce ceci celà ces cet cette d dans de des du elle en es est et eu eue eues eurent eus eusse eussent eusses eussiez eussions eut eux eûmes eût eûtes furent fus fusse fussent fusses fussiez fussions fut fûmes fût fûtes ici il ils j je l la le les leur leurs lui m ma mais me mes moi mon même n ne nos notre nous on ont ou par pas pour qu que quel quelle quelles quels qui s sa sans se sera serai seraient serais serait seras serez seriez serions serons seront ses soi soient sois soit sommes son sont soyez soyons suis sur t ta te tes toi ton tu un une vos votre vous y à étaient étais était étant étiez étions été étée étées étés êtes".split(" ")),e.Pipeline.registerFunction(e.fr.stopWordFilter,"stopWordFilter-fr")}}); \ No newline at end of file diff --git a/public/docs/assets/javascripts/lunr/lunr.hu.js b/public/docs/assets/javascripts/lunr/lunr.hu.js new file mode 100644 index 0000000..56a4b0d --- /dev/null +++ b/public/docs/assets/javascripts/lunr/lunr.hu.js @@ -0,0 +1 @@ +!function(e,n){"function"==typeof define&&define.amd?define(n):"object"==typeof exports?module.exports=n():n()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var p,_,n;e.hu=function(){this.pipeline.reset(),this.pipeline.add(e.hu.trimmer,e.hu.stopWordFilter,e.hu.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.hu.stemmer))},e.hu.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.hu.trimmer=e.trimmerSupport.generateTrimmer(e.hu.wordCharacters),e.Pipeline.registerFunction(e.hu.trimmer,"trimmer-hu"),e.hu.stemmer=(p=e.stemmerSupport.Among,_=e.stemmerSupport.SnowballProgram,n=new function(){var r,i=[new p("cs",-1,-1),new p("dzs",-1,-1),new p("gy",-1,-1),new p("ly",-1,-1),new p("ny",-1,-1),new p("sz",-1,-1),new p("ty",-1,-1),new p("zs",-1,-1)],n=[new p("á",-1,1),new p("é",-1,2)],a=[new p("bb",-1,-1),new p("cc",-1,-1),new p("dd",-1,-1),new p("ff",-1,-1),new p("gg",-1,-1),new p("jj",-1,-1),new p("kk",-1,-1),new p("ll",-1,-1),new p("mm",-1,-1),new p("nn",-1,-1),new p("pp",-1,-1),new p("rr",-1,-1),new p("ccs",-1,-1),new p("ss",-1,-1),new p("zzs",-1,-1),new p("tt",-1,-1),new p("vv",-1,-1),new p("ggy",-1,-1),new p("lly",-1,-1),new p("nny",-1,-1),new p("tty",-1,-1),new p("ssz",-1,-1),new p("zz",-1,-1)],t=[new p("al",-1,1),new p("el",-1,2)],e=[new p("ba",-1,-1),new p("ra",-1,-1),new p("be",-1,-1),new p("re",-1,-1),new p("ig",-1,-1),new p("nak",-1,-1),new p("nek",-1,-1),new p("val",-1,-1),new p("vel",-1,-1),new p("ul",-1,-1),new p("nál",-1,-1),new p("nél",-1,-1),new p("ból",-1,-1),new p("ról",-1,-1),new p("tól",-1,-1),new p("bõl",-1,-1),new p("rõl",-1,-1),new p("tõl",-1,-1),new p("ül",-1,-1),new p("n",-1,-1),new p("an",19,-1),new p("ban",20,-1),new p("en",19,-1),new p("ben",22,-1),new p("képpen",22,-1),new p("on",19,-1),new p("ön",19,-1),new p("képp",-1,-1),new p("kor",-1,-1),new p("t",-1,-1),new p("at",29,-1),new p("et",29,-1),new p("ként",29,-1),new p("anként",32,-1),new p("enként",32,-1),new p("onként",32,-1),new p("ot",29,-1),new p("ért",29,-1),new p("öt",29,-1),new p("hez",-1,-1),new p("hoz",-1,-1),new p("höz",-1,-1),new p("vá",-1,-1),new p("vé",-1,-1)],s=[new p("án",-1,2),new p("én",-1,1),new p("ánként",-1,3)],c=[new p("stul",-1,2),new p("astul",0,1),new p("ástul",0,3),new p("stül",-1,2),new p("estül",3,1),new p("éstül",3,4)],w=[new p("á",-1,1),new p("é",-1,2)],o=[new p("k",-1,7),new p("ak",0,4),new p("ek",0,6),new p("ok",0,5),new p("ák",0,1),new p("ék",0,2),new p("ök",0,3)],l=[new p("éi",-1,7),new p("áéi",0,6),new p("ééi",0,5),new p("é",-1,9),new p("ké",3,4),new p("aké",4,1),new p("eké",4,1),new p("oké",4,1),new p("áké",4,3),new p("éké",4,2),new p("öké",4,1),new p("éé",3,8)],u=[new p("a",-1,18),new p("ja",0,17),new p("d",-1,16),new p("ad",2,13),new p("ed",2,13),new p("od",2,13),new p("ád",2,14),new p("éd",2,15),new p("öd",2,13),new p("e",-1,18),new p("je",9,17),new p("nk",-1,4),new p("unk",11,1),new p("ánk",11,2),new p("énk",11,3),new p("ünk",11,1),new p("uk",-1,8),new p("juk",16,7),new p("ájuk",17,5),new p("ük",-1,8),new p("jük",19,7),new p("éjük",20,6),new p("m",-1,12),new p("am",22,9),new p("em",22,9),new p("om",22,9),new p("ám",22,10),new p("ém",22,11),new p("o",-1,18),new p("á",-1,19),new p("é",-1,20)],m=[new p("id",-1,10),new p("aid",0,9),new p("jaid",1,6),new p("eid",0,9),new p("jeid",3,6),new p("áid",0,7),new p("éid",0,8),new p("i",-1,15),new p("ai",7,14),new p("jai",8,11),new p("ei",7,14),new p("jei",10,11),new p("ái",7,12),new p("éi",7,13),new p("itek",-1,24),new p("eitek",14,21),new p("jeitek",15,20),new p("éitek",14,23),new p("ik",-1,29),new p("aik",18,26),new p("jaik",19,25),new p("eik",18,26),new p("jeik",21,25),new p("áik",18,27),new p("éik",18,28),new p("ink",-1,20),new p("aink",25,17),new p("jaink",26,16),new p("eink",25,17),new p("jeink",28,16),new p("áink",25,18),new p("éink",25,19),new p("aitok",-1,21),new p("jaitok",32,20),new p("áitok",-1,22),new p("im",-1,5),new p("aim",35,4),new p("jaim",36,1),new p("eim",35,4),new p("jeim",38,1),new p("áim",35,2),new p("éim",35,3)],k=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,1,17,52,14],f=new _;function b(){return r<=f.cursor}function d(){var e=f.limit-f.cursor;return!!f.find_among_b(a,23)&&(f.cursor=f.limit-e,!0)}function g(){if(f.cursor>f.limit_backward){f.cursor--,f.ket=f.cursor;var e=f.cursor-1;f.limit_backward<=e&&e<=f.limit&&(f.cursor=e,f.bra=e,f.slice_del())}}function h(){f.ket=f.cursor,f.find_among_b(e,44)&&(f.bra=f.cursor,b()&&(f.slice_del(),function(){var e;if(f.ket=f.cursor,(e=f.find_among_b(n,2))&&(f.bra=f.cursor,b()))switch(e){case 1:f.slice_from("a");break;case 2:f.slice_from("e")}}()))}this.setCurrent=function(e){f.setCurrent(e)},this.getCurrent=function(){return f.getCurrent()},this.stem=function(){var e=f.cursor;return function(){var e,n=f.cursor;if(r=f.limit,f.in_grouping(k,97,252))for(;;){if(e=f.cursor,f.out_grouping(k,97,252))return f.cursor=e,f.find_among(i,8)||(f.cursor=e)=f.limit)return r=e;f.cursor++}if(f.cursor=n,f.out_grouping(k,97,252)){for(;!f.in_grouping(k,97,252);){if(f.cursor>=f.limit)return;f.cursor++}r=f.cursor}}(),f.limit_backward=e,f.cursor=f.limit,function(){var e;if(f.ket=f.cursor,(e=f.find_among_b(t,2))&&(f.bra=f.cursor,b())){if((1==e||2==e)&&!d())return;f.slice_del(),g()}}(),f.cursor=f.limit,h(),f.cursor=f.limit,function(){var e;if(f.ket=f.cursor,(e=f.find_among_b(s,3))&&(f.bra=f.cursor,b()))switch(e){case 1:f.slice_from("e");break;case 2:case 3:f.slice_from("a")}}(),f.cursor=f.limit,function(){var e;if(f.ket=f.cursor,(e=f.find_among_b(c,6))&&(f.bra=f.cursor,b()))switch(e){case 1:case 2:f.slice_del();break;case 3:f.slice_from("a");break;case 4:f.slice_from("e")}}(),f.cursor=f.limit,function(){var e;if(f.ket=f.cursor,(e=f.find_among_b(w,2))&&(f.bra=f.cursor,b())){if((1==e||2==e)&&!d())return;f.slice_del(),g()}}(),f.cursor=f.limit,function(){var e;if(f.ket=f.cursor,(e=f.find_among_b(l,12))&&(f.bra=f.cursor,b()))switch(e){case 1:case 4:case 7:case 9:f.slice_del();break;case 2:case 5:case 8:f.slice_from("e");break;case 3:case 6:f.slice_from("a")}}(),f.cursor=f.limit,function(){var e;if(f.ket=f.cursor,(e=f.find_among_b(u,31))&&(f.bra=f.cursor,b()))switch(e){case 1:case 4:case 7:case 8:case 9:case 12:case 13:case 16:case 17:case 18:f.slice_del();break;case 2:case 5:case 10:case 14:case 19:f.slice_from("a");break;case 3:case 6:case 11:case 15:case 20:f.slice_from("e")}}(),f.cursor=f.limit,function(){var e;if(f.ket=f.cursor,(e=f.find_among_b(m,42))&&(f.bra=f.cursor,b()))switch(e){case 1:case 4:case 5:case 6:case 9:case 10:case 11:case 14:case 15:case 16:case 17:case 20:case 21:case 24:case 25:case 26:case 29:f.slice_del();break;case 2:case 7:case 12:case 18:case 22:case 27:f.slice_from("a");break;case 3:case 8:case 13:case 19:case 23:case 28:f.slice_from("e")}}(),f.cursor=f.limit,function(){var e;if(f.ket=f.cursor,(e=f.find_among_b(o,7))&&(f.bra=f.cursor,b()))switch(e){case 1:f.slice_from("a");break;case 2:f.slice_from("e");break;case 3:case 4:case 5:case 6:case 7:f.slice_del()}}(),!0}},function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}),e.Pipeline.registerFunction(e.hu.stemmer,"stemmer-hu"),e.hu.stopWordFilter=e.generateStopWordFilter("a abban ahhoz ahogy ahol aki akik akkor alatt amely amelyek amelyekben amelyeket amelyet amelynek ami amikor amit amolyan amíg annak arra arról az azok azon azonban azt aztán azután azzal azért be belül benne bár cikk cikkek cikkeket csak de e ebben eddig egy egyes egyetlen egyik egyre egyéb egész ehhez ekkor el ellen elsõ elég elõ elõször elõtt emilyen ennek erre ez ezek ezen ezt ezzel ezért fel felé hanem hiszen hogy hogyan igen ill ill. illetve ilyen ilyenkor ismét ison itt jobban jó jól kell kellett keressünk keresztül ki kívül között közül legalább legyen lehet lehetett lenne lenni lesz lett maga magát majd majd meg mellett mely melyek mert mi mikor milyen minden mindenki mindent mindig mint mintha mit mivel miért most már más másik még míg nagy nagyobb nagyon ne nekem neki nem nincs néha néhány nélkül olyan ott pedig persze rá s saját sem semmi sok sokat sokkal szemben szerint szinte számára talán tehát teljes tovább továbbá több ugyanis utolsó után utána vagy vagyis vagyok valaki valami valamint való van vannak vele vissza viszont volna volt voltak voltam voltunk által általában át én éppen és így õ õk õket össze úgy új újabb újra".split(" ")),e.Pipeline.registerFunction(e.hu.stopWordFilter,"stopWordFilter-hu")}}); \ No newline at end of file diff --git a/public/docs/assets/javascripts/lunr/lunr.it.js b/public/docs/assets/javascripts/lunr/lunr.it.js new file mode 100644 index 0000000..50dddaa --- /dev/null +++ b/public/docs/assets/javascripts/lunr/lunr.it.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var z,P,r;e.it=function(){this.pipeline.reset(),this.pipeline.add(e.it.trimmer,e.it.stopWordFilter,e.it.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.it.stemmer))},e.it.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.it.trimmer=e.trimmerSupport.generateTrimmer(e.it.wordCharacters),e.Pipeline.registerFunction(e.it.trimmer,"trimmer-it"),e.it.stemmer=(z=e.stemmerSupport.Among,P=e.stemmerSupport.SnowballProgram,r=new function(){var o,t,s,a=[new z("",-1,7),new z("qu",0,6),new z("á",0,1),new z("é",0,2),new z("í",0,3),new z("ó",0,4),new z("ú",0,5)],u=[new z("",-1,3),new z("I",0,1),new z("U",0,2)],c=[new z("la",-1,-1),new z("cela",0,-1),new z("gliela",0,-1),new z("mela",0,-1),new z("tela",0,-1),new z("vela",0,-1),new z("le",-1,-1),new z("cele",6,-1),new z("gliele",6,-1),new z("mele",6,-1),new z("tele",6,-1),new z("vele",6,-1),new z("ne",-1,-1),new z("cene",12,-1),new z("gliene",12,-1),new z("mene",12,-1),new z("sene",12,-1),new z("tene",12,-1),new z("vene",12,-1),new z("ci",-1,-1),new z("li",-1,-1),new z("celi",20,-1),new z("glieli",20,-1),new z("meli",20,-1),new z("teli",20,-1),new z("veli",20,-1),new z("gli",20,-1),new z("mi",-1,-1),new z("si",-1,-1),new z("ti",-1,-1),new z("vi",-1,-1),new z("lo",-1,-1),new z("celo",31,-1),new z("glielo",31,-1),new z("melo",31,-1),new z("telo",31,-1),new z("velo",31,-1)],w=[new z("ando",-1,1),new z("endo",-1,1),new z("ar",-1,2),new z("er",-1,2),new z("ir",-1,2)],r=[new z("ic",-1,-1),new z("abil",-1,-1),new z("os",-1,-1),new z("iv",-1,1)],n=[new z("ic",-1,1),new z("abil",-1,1),new z("iv",-1,1)],i=[new z("ica",-1,1),new z("logia",-1,3),new z("osa",-1,1),new z("ista",-1,1),new z("iva",-1,9),new z("anza",-1,1),new z("enza",-1,5),new z("ice",-1,1),new z("atrice",7,1),new z("iche",-1,1),new z("logie",-1,3),new z("abile",-1,1),new z("ibile",-1,1),new z("usione",-1,4),new z("azione",-1,2),new z("uzione",-1,4),new z("atore",-1,2),new z("ose",-1,1),new z("ante",-1,1),new z("mente",-1,1),new z("amente",19,7),new z("iste",-1,1),new z("ive",-1,9),new z("anze",-1,1),new z("enze",-1,5),new z("ici",-1,1),new z("atrici",25,1),new z("ichi",-1,1),new z("abili",-1,1),new z("ibili",-1,1),new z("ismi",-1,1),new z("usioni",-1,4),new z("azioni",-1,2),new z("uzioni",-1,4),new z("atori",-1,2),new z("osi",-1,1),new z("anti",-1,1),new z("amenti",-1,6),new z("imenti",-1,6),new z("isti",-1,1),new z("ivi",-1,9),new z("ico",-1,1),new z("ismo",-1,1),new z("oso",-1,1),new z("amento",-1,6),new z("imento",-1,6),new z("ivo",-1,9),new z("ità",-1,8),new z("istà",-1,1),new z("istè",-1,1),new z("istì",-1,1)],l=[new z("isca",-1,1),new z("enda",-1,1),new z("ata",-1,1),new z("ita",-1,1),new z("uta",-1,1),new z("ava",-1,1),new z("eva",-1,1),new z("iva",-1,1),new z("erebbe",-1,1),new z("irebbe",-1,1),new z("isce",-1,1),new z("ende",-1,1),new z("are",-1,1),new z("ere",-1,1),new z("ire",-1,1),new z("asse",-1,1),new z("ate",-1,1),new z("avate",16,1),new z("evate",16,1),new z("ivate",16,1),new z("ete",-1,1),new z("erete",20,1),new z("irete",20,1),new z("ite",-1,1),new z("ereste",-1,1),new z("ireste",-1,1),new z("ute",-1,1),new z("erai",-1,1),new z("irai",-1,1),new z("isci",-1,1),new z("endi",-1,1),new z("erei",-1,1),new z("irei",-1,1),new z("assi",-1,1),new z("ati",-1,1),new z("iti",-1,1),new z("eresti",-1,1),new z("iresti",-1,1),new z("uti",-1,1),new z("avi",-1,1),new z("evi",-1,1),new z("ivi",-1,1),new z("isco",-1,1),new z("ando",-1,1),new z("endo",-1,1),new z("Yamo",-1,1),new z("iamo",-1,1),new z("avamo",-1,1),new z("evamo",-1,1),new z("ivamo",-1,1),new z("eremo",-1,1),new z("iremo",-1,1),new z("assimo",-1,1),new z("ammo",-1,1),new z("emmo",-1,1),new z("eremmo",54,1),new z("iremmo",54,1),new z("immo",-1,1),new z("ano",-1,1),new z("iscano",58,1),new z("avano",58,1),new z("evano",58,1),new z("ivano",58,1),new z("eranno",-1,1),new z("iranno",-1,1),new z("ono",-1,1),new z("iscono",65,1),new z("arono",65,1),new z("erono",65,1),new z("irono",65,1),new z("erebbero",-1,1),new z("irebbero",-1,1),new z("assero",-1,1),new z("essero",-1,1),new z("issero",-1,1),new z("ato",-1,1),new z("ito",-1,1),new z("uto",-1,1),new z("avo",-1,1),new z("evo",-1,1),new z("ivo",-1,1),new z("ar",-1,1),new z("ir",-1,1),new z("erà",-1,1),new z("irà",-1,1),new z("erò",-1,1),new z("irò",-1,1)],m=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,128,128,8,2,1],f=[17,65,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,8,2],v=[17],b=new P;function d(e,r,n){return!(!b.eq_s(1,e)||(b.ket=b.cursor,!b.in_grouping(m,97,249)))&&(b.slice_from(r),b.cursor=n,!0)}function _(e){if(b.cursor=e,!b.in_grouping(m,97,249))return!1;for(;!b.out_grouping(m,97,249);){if(b.cursor>=b.limit)return!1;b.cursor++}return!0}function g(){var e,r=b.cursor;if(!function(){if(b.in_grouping(m,97,249)){var e=b.cursor;if(b.out_grouping(m,97,249)){for(;!b.in_grouping(m,97,249);){if(b.cursor>=b.limit)return _(e);b.cursor++}return!0}return _(e)}return!1}()){if(b.cursor=r,!b.out_grouping(m,97,249))return;if(e=b.cursor,b.out_grouping(m,97,249)){for(;!b.in_grouping(m,97,249);){if(b.cursor>=b.limit)return b.cursor=e,void(b.in_grouping(m,97,249)&&b.cursor=b.limit)return;b.cursor++}s=b.cursor}function p(){for(;!b.in_grouping(m,97,249);){if(b.cursor>=b.limit)return!1;b.cursor++}for(;!b.out_grouping(m,97,249);){if(b.cursor>=b.limit)return!1;b.cursor++}return!0}function k(){return s<=b.cursor}function h(){return o<=b.cursor}function q(){var e;if(b.ket=b.cursor,!(e=b.find_among_b(i,51)))return!1;switch(b.bra=b.cursor,e){case 1:if(!h())return!1;b.slice_del();break;case 2:if(!h())return!1;b.slice_del(),b.ket=b.cursor,b.eq_s_b(2,"ic")&&(b.bra=b.cursor,h()&&b.slice_del());break;case 3:if(!h())return!1;b.slice_from("log");break;case 4:if(!h())return!1;b.slice_from("u");break;case 5:if(!h())return!1;b.slice_from("ente");break;case 6:if(!k())return!1;b.slice_del();break;case 7:if(!(t<=b.cursor))return!1;b.slice_del(),b.ket=b.cursor,(e=b.find_among_b(r,4))&&(b.bra=b.cursor,h()&&(b.slice_del(),1==e&&(b.ket=b.cursor,b.eq_s_b(2,"at")&&(b.bra=b.cursor,h()&&b.slice_del()))));break;case 8:if(!h())return!1;b.slice_del(),b.ket=b.cursor,(e=b.find_among_b(n,3))&&(b.bra=b.cursor,1==e&&h()&&b.slice_del());break;case 9:if(!h())return!1;b.slice_del(),b.ket=b.cursor,b.eq_s_b(2,"at")&&(b.bra=b.cursor,h()&&(b.slice_del(),b.ket=b.cursor,b.eq_s_b(2,"ic")&&(b.bra=b.cursor,h()&&b.slice_del())))}return!0}function C(){var e;e=b.limit-b.cursor,b.ket=b.cursor,b.in_grouping_b(f,97,242)&&(b.bra=b.cursor,k()&&(b.slice_del(),b.ket=b.cursor,b.eq_s_b(1,"i")&&(b.bra=b.cursor,k())))?b.slice_del():b.cursor=b.limit-e,b.ket=b.cursor,b.eq_s_b(1,"h")&&(b.bra=b.cursor,b.in_grouping_b(v,99,103)&&k()&&b.slice_del())}this.setCurrent=function(e){b.setCurrent(e)},this.getCurrent=function(){return b.getCurrent()},this.stem=function(){var e,r,n,i=b.cursor;return function(){for(var e,r,n,i,o=b.cursor;;){if(b.bra=b.cursor,e=b.find_among(a,7))switch(b.ket=b.cursor,e){case 1:b.slice_from("à");continue;case 2:b.slice_from("è");continue;case 3:b.slice_from("ì");continue;case 4:b.slice_from("ò");continue;case 5:b.slice_from("ù");continue;case 6:b.slice_from("qU");continue;case 7:if(b.cursor>=b.limit)break;b.cursor++;continue}break}for(b.cursor=o;;)for(r=b.cursor;;){if(n=b.cursor,b.in_grouping(m,97,249)){if(b.bra=b.cursor,i=b.cursor,d("u","U",n))break;if(b.cursor=i,d("i","I",n))break}if(b.cursor=n,b.cursor>=b.limit)return b.cursor=r;b.cursor++}}(),b.cursor=i,e=b.cursor,s=b.limit,o=t=s,g(),b.cursor=e,p()&&(t=b.cursor,p()&&(o=b.cursor)),b.limit_backward=i,b.cursor=b.limit,function(){var e;if(b.ket=b.cursor,b.find_among_b(c,37)&&(b.bra=b.cursor,(e=b.find_among_b(w,5))&&k()))switch(e){case 1:b.slice_del();break;case 2:b.slice_from("e")}}(),b.cursor=b.limit,q()||(b.cursor=b.limit,b.cursor>=s&&(n=b.limit_backward,b.limit_backward=s,b.ket=b.cursor,(r=b.find_among_b(l,87))&&(b.bra=b.cursor,1==r&&b.slice_del()),b.limit_backward=n)),b.cursor=b.limit,C(),b.cursor=b.limit_backward,function(){for(var e;b.bra=b.cursor,e=b.find_among(u,3);)switch(b.ket=b.cursor,e){case 1:b.slice_from("i");break;case 2:b.slice_from("u");break;case 3:if(b.cursor>=b.limit)return;b.cursor++}}(),!0}},function(e){return"function"==typeof e.update?e.update(function(e){return r.setCurrent(e),r.stem(),r.getCurrent()}):(r.setCurrent(e),r.stem(),r.getCurrent())}),e.Pipeline.registerFunction(e.it.stemmer,"stemmer-it"),e.it.stopWordFilter=e.generateStopWordFilter("a abbia abbiamo abbiano abbiate ad agl agli ai al all alla alle allo anche avemmo avendo avesse avessero avessi avessimo aveste avesti avete aveva avevamo avevano avevate avevi avevo avrai avranno avrebbe avrebbero avrei avremmo avremo avreste avresti avrete avrà avrò avuta avute avuti avuto c che chi ci coi col come con contro cui da dagl dagli dai dal dall dalla dalle dallo degl degli dei del dell della delle dello di dov dove e ebbe ebbero ebbi ed era erano eravamo eravate eri ero essendo faccia facciamo facciano facciate faccio facemmo facendo facesse facessero facessi facessimo faceste facesti faceva facevamo facevano facevate facevi facevo fai fanno farai faranno farebbe farebbero farei faremmo faremo fareste faresti farete farà farò fece fecero feci fosse fossero fossi fossimo foste fosti fu fui fummo furono gli ha hai hanno ho i il in io l la le lei li lo loro lui ma mi mia mie miei mio ne negl negli nei nel nell nella nelle nello noi non nostra nostre nostri nostro o per perché più quale quanta quante quanti quanto quella quelle quelli quello questa queste questi questo sarai saranno sarebbe sarebbero sarei saremmo saremo sareste saresti sarete sarà sarò se sei si sia siamo siano siate siete sono sta stai stando stanno starai staranno starebbe starebbero starei staremmo staremo stareste staresti starete starà starò stava stavamo stavano stavate stavi stavo stemmo stesse stessero stessi stessimo steste stesti stette stettero stetti stia stiamo stiano stiate sto su sua sue sugl sugli sui sul sull sulla sulle sullo suo suoi ti tra tu tua tue tuo tuoi tutti tutto un una uno vi voi vostra vostre vostri vostro è".split(" ")),e.Pipeline.registerFunction(e.it.stopWordFilter,"stopWordFilter-it")}}); \ No newline at end of file diff --git a/public/docs/assets/javascripts/lunr/lunr.ja.js b/public/docs/assets/javascripts/lunr/lunr.ja.js new file mode 100644 index 0000000..69f6202 --- /dev/null +++ b/public/docs/assets/javascripts/lunr/lunr.ja.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(m){if(void 0===m)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===m.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var l="2"==m.version[0];m.ja=function(){this.pipeline.reset(),this.pipeline.add(m.ja.trimmer,m.ja.stopWordFilter,m.ja.stemmer),l?this.tokenizer=m.ja.tokenizer:(m.tokenizer&&(m.tokenizer=m.ja.tokenizer),this.tokenizerFn&&(this.tokenizerFn=m.ja.tokenizer))};var j=new m.TinySegmenter;m.ja.tokenizer=function(e){var r,t,i,n,o,s,p,a,u;if(!arguments.length||null==e||null==e)return[];if(Array.isArray(e))return e.map(function(e){return l?new m.Token(e.toLowerCase()):e.toLowerCase()});for(r=(t=e.toString().toLowerCase().replace(/^\s+/,"")).length-1;0<=r;r--)if(/\S/.test(t.charAt(r))){t=t.substring(0,r+1);break}for(o=[],i=t.length,p=a=0;a<=i;a++)if(s=a-p,t.charAt(a).match(/\s/)||a==i){if(0=_.limit||(_.cursor++,!1)}function w(){for(;!_.in_grouping(m,97,232);){if(_.cursor>=_.limit)return!0;_.cursor++}for(;!_.out_grouping(m,97,232);){if(_.cursor>=_.limit)return!0;_.cursor++}return!1}function b(){return i<=_.cursor}function p(){return e<=_.cursor}function g(){var r=_.limit-_.cursor;_.find_among_b(t,3)&&(_.cursor=_.limit-r,_.ket=_.cursor,_.cursor>_.limit_backward&&(_.cursor--,_.bra=_.cursor,_.slice_del()))}function h(){var r;u=!1,_.ket=_.cursor,_.eq_s_b(1,"e")&&(_.bra=_.cursor,b()&&(r=_.limit-_.cursor,_.out_grouping_b(m,97,232)&&(_.cursor=_.limit-r,_.slice_del(),u=!0,g())))}function k(){var r;b()&&(r=_.limit-_.cursor,_.out_grouping_b(m,97,232)&&(_.cursor=_.limit-r,_.eq_s_b(3,"gem")||(_.cursor=_.limit-r,_.slice_del(),g())))}this.setCurrent=function(r){_.setCurrent(r)},this.getCurrent=function(){return _.getCurrent()},this.stem=function(){var r=_.cursor;return function(){for(var r,e,i,n=_.cursor;;){if(_.bra=_.cursor,r=_.find_among(o,11))switch(_.ket=_.cursor,r){case 1:_.slice_from("a");continue;case 2:_.slice_from("e");continue;case 3:_.slice_from("i");continue;case 4:_.slice_from("o");continue;case 5:_.slice_from("u");continue;case 6:if(_.cursor>=_.limit)break;_.cursor++;continue}break}for(_.cursor=n,_.bra=n,_.eq_s(1,"y")?(_.ket=_.cursor,_.slice_from("Y")):_.cursor=n;;)if(e=_.cursor,_.in_grouping(m,97,232)){if(i=_.cursor,_.bra=i,_.eq_s(1,"i"))_.ket=_.cursor,_.in_grouping(m,97,232)&&(_.slice_from("I"),_.cursor=e);else if(_.cursor=i,_.eq_s(1,"y"))_.ket=_.cursor,_.slice_from("Y"),_.cursor=e;else if(s(e))break}else if(s(e))break}(),_.cursor=r,i=_.limit,e=i,w()||((i=_.cursor)<3&&(i=3),w()||(e=_.cursor)),_.limit_backward=r,_.cursor=_.limit,function(){var r,e,i,n,o,t,s=_.limit-_.cursor;if(_.ket=_.cursor,r=_.find_among_b(c,5))switch(_.bra=_.cursor,r){case 1:b()&&_.slice_from("heid");break;case 2:k();break;case 3:b()&&_.out_grouping_b(f,97,232)&&_.slice_del()}if(_.cursor=_.limit-s,h(),_.cursor=_.limit-s,_.ket=_.cursor,_.eq_s_b(4,"heid")&&(_.bra=_.cursor,p()&&(e=_.limit-_.cursor,_.eq_s_b(1,"c")||(_.cursor=_.limit-e,_.slice_del(),_.ket=_.cursor,_.eq_s_b(2,"en")&&(_.bra=_.cursor,k())))),_.cursor=_.limit-s,_.ket=_.cursor,r=_.find_among_b(a,6))switch(_.bra=_.cursor,r){case 1:if(p()){if(_.slice_del(),i=_.limit-_.cursor,_.ket=_.cursor,_.eq_s_b(2,"ig")&&(_.bra=_.cursor,p()&&(n=_.limit-_.cursor,!_.eq_s_b(1,"e")))){_.cursor=_.limit-n,_.slice_del();break}_.cursor=_.limit-i,g()}break;case 2:p()&&(o=_.limit-_.cursor,_.eq_s_b(1,"e")||(_.cursor=_.limit-o,_.slice_del()));break;case 3:p()&&(_.slice_del(),h());break;case 4:p()&&_.slice_del();break;case 5:p()&&u&&_.slice_del()}_.cursor=_.limit-s,_.out_grouping_b(d,73,232)&&(t=_.limit-_.cursor,_.find_among_b(l,4)&&_.out_grouping_b(m,97,232)&&(_.cursor=_.limit-t,_.ket=_.cursor,_.cursor>_.limit_backward&&(_.cursor--,_.bra=_.cursor,_.slice_del())))}(),_.cursor=_.limit_backward,function(){for(var r;;)if(_.bra=_.cursor,r=_.find_among(n,3))switch(_.ket=_.cursor,r){case 1:_.slice_from("y");break;case 2:_.slice_from("i");break;case 3:if(_.cursor>=_.limit)return;_.cursor++}}(),!0}},function(r){return"function"==typeof r.update?r.update(function(r){return e.setCurrent(r),e.stem(),e.getCurrent()}):(e.setCurrent(r),e.stem(),e.getCurrent())}),r.Pipeline.registerFunction(r.nl.stemmer,"stemmer-nl"),r.nl.stopWordFilter=r.generateStopWordFilter(" aan al alles als altijd andere ben bij daar dan dat de der deze die dit doch doen door dus een eens en er ge geen geweest haar had heb hebben heeft hem het hier hij hoe hun iemand iets ik in is ja je kan kon kunnen maar me meer men met mij mijn moet na naar niet niets nog nu of om omdat onder ons ook op over reeds te tegen toch toen tot u uit uw van veel voor want waren was wat werd wezen wie wil worden wordt zal ze zelf zich zij zijn zo zonder zou".split(" ")),r.Pipeline.registerFunction(r.nl.stopWordFilter,"stopWordFilter-nl")}}); \ No newline at end of file diff --git a/public/docs/assets/javascripts/lunr/lunr.no.js b/public/docs/assets/javascripts/lunr/lunr.no.js new file mode 100644 index 0000000..3d156b9 --- /dev/null +++ b/public/docs/assets/javascripts/lunr/lunr.no.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r,n,i;e.no=function(){this.pipeline.reset(),this.pipeline.add(e.no.trimmer,e.no.stopWordFilter,e.no.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.no.stemmer))},e.no.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.no.trimmer=e.trimmerSupport.generateTrimmer(e.no.wordCharacters),e.Pipeline.registerFunction(e.no.trimmer,"trimmer-no"),e.no.stemmer=(r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){var o,s,a=[new r("a",-1,1),new r("e",-1,1),new r("ede",1,1),new r("ande",1,1),new r("ende",1,1),new r("ane",1,1),new r("ene",1,1),new r("hetene",6,1),new r("erte",1,3),new r("en",-1,1),new r("heten",9,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",12,1),new r("s",-1,2),new r("as",14,1),new r("es",14,1),new r("edes",16,1),new r("endes",16,1),new r("enes",16,1),new r("hetenes",19,1),new r("ens",14,1),new r("hetens",21,1),new r("ers",14,1),new r("ets",14,1),new r("et",-1,1),new r("het",25,1),new r("ert",-1,3),new r("ast",-1,1)],m=[new r("dt",-1,-1),new r("vt",-1,-1)],l=[new r("leg",-1,1),new r("eleg",0,1),new r("ig",-1,1),new r("eig",2,1),new r("lig",2,1),new r("elig",4,1),new r("els",-1,1),new r("lov",-1,1),new r("elov",7,1),new r("slov",7,1),new r("hetslov",9,1)],u=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],d=[119,125,149,1],c=new n;this.setCurrent=function(e){c.setCurrent(e)},this.getCurrent=function(){return c.getCurrent()},this.stem=function(){var e,r,n,i,t=c.cursor;return function(){var e,r=c.cursor+3;if(s=c.limit,0<=r||r<=c.limit){for(o=r;;){if(e=c.cursor,c.in_grouping(u,97,248)){c.cursor=e;break}if(e>=c.limit)return;c.cursor=e+1}for(;!c.out_grouping(u,97,248);){if(c.cursor>=c.limit)return;c.cursor++}(s=c.cursor)=s&&(r=c.limit_backward,c.limit_backward=s,c.ket=c.cursor,e=c.find_among_b(a,29),c.limit_backward=r,e))switch(c.bra=c.cursor,e){case 1:c.slice_del();break;case 2:n=c.limit-c.cursor,c.in_grouping_b(d,98,122)?c.slice_del():(c.cursor=c.limit-n,c.eq_s_b(1,"k")&&c.out_grouping_b(u,97,248)&&c.slice_del());break;case 3:c.slice_from("er")}}(),c.cursor=c.limit,r=c.limit-c.cursor,c.cursor>=s&&(e=c.limit_backward,c.limit_backward=s,c.ket=c.cursor,c.find_among_b(m,2)?(c.bra=c.cursor,c.limit_backward=e,c.cursor=c.limit-r,c.cursor>c.limit_backward&&(c.cursor--,c.bra=c.cursor,c.slice_del())):c.limit_backward=e),c.cursor=c.limit,c.cursor>=s&&(i=c.limit_backward,c.limit_backward=s,c.ket=c.cursor,(n=c.find_among_b(l,11))?(c.bra=c.cursor,c.limit_backward=i,1==n&&c.slice_del()):c.limit_backward=i),!0}},function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}),e.Pipeline.registerFunction(e.no.stemmer,"stemmer-no"),e.no.stopWordFilter=e.generateStopWordFilter("alle at av bare begge ble blei bli blir blitt både båe da de deg dei deim deira deires dem den denne der dere deres det dette di din disse ditt du dykk dykkar då eg ein eit eitt eller elles en enn er et ett etter for fordi fra før ha hadde han hans har hennar henne hennes her hjå ho hoe honom hoss hossen hun hva hvem hver hvilke hvilken hvis hvor hvordan hvorfor i ikke ikkje ikkje ingen ingi inkje inn inni ja jeg kan kom korleis korso kun kunne kva kvar kvarhelst kven kvi kvifor man mange me med medan meg meget mellom men mi min mine mitt mot mykje ned no noe noen noka noko nokon nokor nokre nå når og også om opp oss over på samme seg selv si si sia sidan siden sin sine sitt sjøl skal skulle slik so som som somme somt så sånn til um upp ut uten var vart varte ved vere verte vi vil ville vore vors vort vår være være vært å".split(" ")),e.Pipeline.registerFunction(e.no.stopWordFilter,"stopWordFilter-no")}}); \ No newline at end of file diff --git a/public/docs/assets/javascripts/lunr/lunr.pt.js b/public/docs/assets/javascripts/lunr/lunr.pt.js new file mode 100644 index 0000000..f50fc9f --- /dev/null +++ b/public/docs/assets/javascripts/lunr/lunr.pt.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var j,C,r;e.pt=function(){this.pipeline.reset(),this.pipeline.add(e.pt.trimmer,e.pt.stopWordFilter,e.pt.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.pt.stemmer))},e.pt.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.pt.trimmer=e.trimmerSupport.generateTrimmer(e.pt.wordCharacters),e.Pipeline.registerFunction(e.pt.trimmer,"trimmer-pt"),e.pt.stemmer=(j=e.stemmerSupport.Among,C=e.stemmerSupport.SnowballProgram,r=new function(){var s,n,i,o=[new j("",-1,3),new j("ã",0,1),new j("õ",0,2)],a=[new j("",-1,3),new j("a~",0,1),new j("o~",0,2)],r=[new j("ic",-1,-1),new j("ad",-1,-1),new j("os",-1,-1),new j("iv",-1,1)],t=[new j("ante",-1,1),new j("avel",-1,1),new j("ível",-1,1)],u=[new j("ic",-1,1),new j("abil",-1,1),new j("iv",-1,1)],w=[new j("ica",-1,1),new j("ância",-1,1),new j("ência",-1,4),new j("ira",-1,9),new j("adora",-1,1),new j("osa",-1,1),new j("ista",-1,1),new j("iva",-1,8),new j("eza",-1,1),new j("logía",-1,2),new j("idade",-1,7),new j("ante",-1,1),new j("mente",-1,6),new j("amente",12,5),new j("ável",-1,1),new j("ível",-1,1),new j("ución",-1,3),new j("ico",-1,1),new j("ismo",-1,1),new j("oso",-1,1),new j("amento",-1,1),new j("imento",-1,1),new j("ivo",-1,8),new j("aça~o",-1,1),new j("ador",-1,1),new j("icas",-1,1),new j("ências",-1,4),new j("iras",-1,9),new j("adoras",-1,1),new j("osas",-1,1),new j("istas",-1,1),new j("ivas",-1,8),new j("ezas",-1,1),new j("logías",-1,2),new j("idades",-1,7),new j("uciones",-1,3),new j("adores",-1,1),new j("antes",-1,1),new j("aço~es",-1,1),new j("icos",-1,1),new j("ismos",-1,1),new j("osos",-1,1),new j("amentos",-1,1),new j("imentos",-1,1),new j("ivos",-1,8)],m=[new j("ada",-1,1),new j("ida",-1,1),new j("ia",-1,1),new j("aria",2,1),new j("eria",2,1),new j("iria",2,1),new j("ara",-1,1),new j("era",-1,1),new j("ira",-1,1),new j("ava",-1,1),new j("asse",-1,1),new j("esse",-1,1),new j("isse",-1,1),new j("aste",-1,1),new j("este",-1,1),new j("iste",-1,1),new j("ei",-1,1),new j("arei",16,1),new j("erei",16,1),new j("irei",16,1),new j("am",-1,1),new j("iam",20,1),new j("ariam",21,1),new j("eriam",21,1),new j("iriam",21,1),new j("aram",20,1),new j("eram",20,1),new j("iram",20,1),new j("avam",20,1),new j("em",-1,1),new j("arem",29,1),new j("erem",29,1),new j("irem",29,1),new j("assem",29,1),new j("essem",29,1),new j("issem",29,1),new j("ado",-1,1),new j("ido",-1,1),new j("ando",-1,1),new j("endo",-1,1),new j("indo",-1,1),new j("ara~o",-1,1),new j("era~o",-1,1),new j("ira~o",-1,1),new j("ar",-1,1),new j("er",-1,1),new j("ir",-1,1),new j("as",-1,1),new j("adas",47,1),new j("idas",47,1),new j("ias",47,1),new j("arias",50,1),new j("erias",50,1),new j("irias",50,1),new j("aras",47,1),new j("eras",47,1),new j("iras",47,1),new j("avas",47,1),new j("es",-1,1),new j("ardes",58,1),new j("erdes",58,1),new j("irdes",58,1),new j("ares",58,1),new j("eres",58,1),new j("ires",58,1),new j("asses",58,1),new j("esses",58,1),new j("isses",58,1),new j("astes",58,1),new j("estes",58,1),new j("istes",58,1),new j("is",-1,1),new j("ais",71,1),new j("eis",71,1),new j("areis",73,1),new j("ereis",73,1),new j("ireis",73,1),new j("áreis",73,1),new j("éreis",73,1),new j("íreis",73,1),new j("ásseis",73,1),new j("ésseis",73,1),new j("ísseis",73,1),new j("áveis",73,1),new j("íeis",73,1),new j("aríeis",84,1),new j("eríeis",84,1),new j("iríeis",84,1),new j("ados",-1,1),new j("idos",-1,1),new j("amos",-1,1),new j("áramos",90,1),new j("éramos",90,1),new j("íramos",90,1),new j("ávamos",90,1),new j("íamos",90,1),new j("aríamos",95,1),new j("eríamos",95,1),new j("iríamos",95,1),new j("emos",-1,1),new j("aremos",99,1),new j("eremos",99,1),new j("iremos",99,1),new j("ássemos",99,1),new j("êssemos",99,1),new j("íssemos",99,1),new j("imos",-1,1),new j("armos",-1,1),new j("ermos",-1,1),new j("irmos",-1,1),new j("ámos",-1,1),new j("arás",-1,1),new j("erás",-1,1),new j("irás",-1,1),new j("eu",-1,1),new j("iu",-1,1),new j("ou",-1,1),new j("ará",-1,1),new j("erá",-1,1),new j("irá",-1,1)],c=[new j("a",-1,1),new j("i",-1,1),new j("o",-1,1),new j("os",-1,1),new j("á",-1,1),new j("í",-1,1),new j("ó",-1,1)],l=[new j("e",-1,1),new j("ç",-1,2),new j("é",-1,1),new j("ê",-1,1)],f=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,3,19,12,2],d=new C;function v(){if(d.out_grouping(f,97,250)){for(;!d.in_grouping(f,97,250);){if(d.cursor>=d.limit)return!0;d.cursor++}return!1}return!0}function p(){var e,r,s=d.cursor;if(d.in_grouping(f,97,250))if(e=d.cursor,v()){if(d.cursor=e,function(){if(d.in_grouping(f,97,250))for(;!d.out_grouping(f,97,250);){if(d.cursor>=d.limit)return!1;d.cursor++}return i=d.cursor,!0}())return}else i=d.cursor;if(d.cursor=s,d.out_grouping(f,97,250)){if(r=d.cursor,v()){if(d.cursor=r,!d.in_grouping(f,97,250)||d.cursor>=d.limit)return;d.cursor++}i=d.cursor}}function _(){for(;!d.in_grouping(f,97,250);){if(d.cursor>=d.limit)return!1;d.cursor++}for(;!d.out_grouping(f,97,250);){if(d.cursor>=d.limit)return!1;d.cursor++}return!0}function h(){return i<=d.cursor}function b(){return s<=d.cursor}function g(){var e;if(d.ket=d.cursor,!(e=d.find_among_b(w,45)))return!1;switch(d.bra=d.cursor,e){case 1:if(!b())return!1;d.slice_del();break;case 2:if(!b())return!1;d.slice_from("log");break;case 3:if(!b())return!1;d.slice_from("u");break;case 4:if(!b())return!1;d.slice_from("ente");break;case 5:if(!(n<=d.cursor))return!1;d.slice_del(),d.ket=d.cursor,(e=d.find_among_b(r,4))&&(d.bra=d.cursor,b()&&(d.slice_del(),1==e&&(d.ket=d.cursor,d.eq_s_b(2,"at")&&(d.bra=d.cursor,b()&&d.slice_del()))));break;case 6:if(!b())return!1;d.slice_del(),d.ket=d.cursor,(e=d.find_among_b(t,3))&&(d.bra=d.cursor,1==e&&b()&&d.slice_del());break;case 7:if(!b())return!1;d.slice_del(),d.ket=d.cursor,(e=d.find_among_b(u,3))&&(d.bra=d.cursor,1==e&&b()&&d.slice_del());break;case 8:if(!b())return!1;d.slice_del(),d.ket=d.cursor,d.eq_s_b(2,"at")&&(d.bra=d.cursor,b()&&d.slice_del());break;case 9:if(!h()||!d.eq_s_b(1,"e"))return!1;d.slice_from("ir")}return!0}function k(e,r){if(d.eq_s_b(1,e)){d.bra=d.cursor;var s=d.limit-d.cursor;if(d.eq_s_b(1,r))return d.cursor=d.limit-s,h()&&d.slice_del(),!1}return!0}function q(){if(!g()&&(d.cursor=d.limit,!function(){var e,r;if(d.cursor>=i){if(r=d.limit_backward,d.limit_backward=i,d.ket=d.cursor,e=d.find_among_b(m,120))return d.bra=d.cursor,1==e&&d.slice_del(),d.limit_backward=r,!0;d.limit_backward=r}return!1}()))return d.cursor=d.limit,d.ket=d.cursor,void((e=d.find_among_b(c,7))&&(d.bra=d.cursor,1==e&&h()&&d.slice_del()));var e;d.cursor=d.limit,d.ket=d.cursor,d.eq_s_b(1,"i")&&(d.bra=d.cursor,d.eq_s_b(1,"c")&&(d.cursor=d.limit,h()&&d.slice_del()))}this.setCurrent=function(e){d.setCurrent(e)},this.getCurrent=function(){return d.getCurrent()},this.stem=function(){var e,r=d.cursor;return function(){for(var e;;){if(d.bra=d.cursor,e=d.find_among(o,3))switch(d.ket=d.cursor,e){case 1:d.slice_from("a~");continue;case 2:d.slice_from("o~");continue;case 3:if(d.cursor>=d.limit)break;d.cursor++;continue}break}}(),d.cursor=r,e=d.cursor,i=d.limit,s=n=i,p(),d.cursor=e,_()&&(n=d.cursor,_()&&(s=d.cursor)),d.limit_backward=r,d.cursor=d.limit,q(),d.cursor=d.limit,function(){var e;if(d.ket=d.cursor,e=d.find_among_b(l,4))switch(d.bra=d.cursor,e){case 1:h()&&(d.slice_del(),d.ket=d.cursor,d.limit,d.cursor,k("u","g")&&k("i","c"));break;case 2:d.slice_from("c")}}(),d.cursor=d.limit_backward,function(){for(var e;;){if(d.bra=d.cursor,e=d.find_among(a,3))switch(d.ket=d.cursor,e){case 1:d.slice_from("ã");continue;case 2:d.slice_from("õ");continue;case 3:if(d.cursor>=d.limit)break;d.cursor++;continue}break}}(),!0}},function(e){return"function"==typeof e.update?e.update(function(e){return r.setCurrent(e),r.stem(),r.getCurrent()}):(r.setCurrent(e),r.stem(),r.getCurrent())}),e.Pipeline.registerFunction(e.pt.stemmer,"stemmer-pt"),e.pt.stopWordFilter=e.generateStopWordFilter("a ao aos aquela aquelas aquele aqueles aquilo as até com como da das de dela delas dele deles depois do dos e ela elas ele eles em entre era eram essa essas esse esses esta estamos estas estava estavam este esteja estejam estejamos estes esteve estive estivemos estiver estivera estiveram estiverem estivermos estivesse estivessem estivéramos estivéssemos estou está estávamos estão eu foi fomos for fora foram forem formos fosse fossem fui fôramos fôssemos haja hajam hajamos havemos hei houve houvemos houver houvera houveram houverei houverem houveremos houveria houveriam houvermos houverá houverão houveríamos houvesse houvessem houvéramos houvéssemos há hão isso isto já lhe lhes mais mas me mesmo meu meus minha minhas muito na nas nem no nos nossa nossas nosso nossos num numa não nós o os ou para pela pelas pelo pelos por qual quando que quem se seja sejam sejamos sem serei seremos seria seriam será serão seríamos seu seus somos sou sua suas são só também te tem temos tenha tenham tenhamos tenho terei teremos teria teriam terá terão teríamos teu teus teve tinha tinham tive tivemos tiver tivera tiveram tiverem tivermos tivesse tivessem tivéramos tivéssemos tu tua tuas tém tínhamos um uma você vocês vos à às éramos".split(" ")),e.Pipeline.registerFunction(e.pt.stopWordFilter,"stopWordFilter-pt")}}); \ No newline at end of file diff --git a/public/docs/assets/javascripts/lunr/lunr.ro.js b/public/docs/assets/javascripts/lunr/lunr.ro.js new file mode 100644 index 0000000..b19627e --- /dev/null +++ b/public/docs/assets/javascripts/lunr/lunr.ro.js @@ -0,0 +1 @@ +!function(e,i){"function"==typeof define&&define.amd?define(i):"object"==typeof exports?module.exports=i():i()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var h,z,i;e.ro=function(){this.pipeline.reset(),this.pipeline.add(e.ro.trimmer,e.ro.stopWordFilter,e.ro.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ro.stemmer))},e.ro.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.ro.trimmer=e.trimmerSupport.generateTrimmer(e.ro.wordCharacters),e.Pipeline.registerFunction(e.ro.trimmer,"trimmer-ro"),e.ro.stemmer=(h=e.stemmerSupport.Among,z=e.stemmerSupport.SnowballProgram,i=new function(){var r,n,t,a,o=[new h("",-1,3),new h("I",0,1),new h("U",0,2)],s=[new h("ea",-1,3),new h("aţia",-1,7),new h("aua",-1,2),new h("iua",-1,4),new h("aţie",-1,7),new h("ele",-1,3),new h("ile",-1,5),new h("iile",6,4),new h("iei",-1,4),new h("atei",-1,6),new h("ii",-1,4),new h("ului",-1,1),new h("ul",-1,1),new h("elor",-1,3),new h("ilor",-1,4),new h("iilor",14,4)],c=[new h("icala",-1,4),new h("iciva",-1,4),new h("ativa",-1,5),new h("itiva",-1,6),new h("icale",-1,4),new h("aţiune",-1,5),new h("iţiune",-1,6),new h("atoare",-1,5),new h("itoare",-1,6),new h("ătoare",-1,5),new h("icitate",-1,4),new h("abilitate",-1,1),new h("ibilitate",-1,2),new h("ivitate",-1,3),new h("icive",-1,4),new h("ative",-1,5),new h("itive",-1,6),new h("icali",-1,4),new h("atori",-1,5),new h("icatori",18,4),new h("itori",-1,6),new h("ători",-1,5),new h("icitati",-1,4),new h("abilitati",-1,1),new h("ivitati",-1,3),new h("icivi",-1,4),new h("ativi",-1,5),new h("itivi",-1,6),new h("icităi",-1,4),new h("abilităi",-1,1),new h("ivităi",-1,3),new h("icităţi",-1,4),new h("abilităţi",-1,1),new h("ivităţi",-1,3),new h("ical",-1,4),new h("ator",-1,5),new h("icator",35,4),new h("itor",-1,6),new h("ător",-1,5),new h("iciv",-1,4),new h("ativ",-1,5),new h("itiv",-1,6),new h("icală",-1,4),new h("icivă",-1,4),new h("ativă",-1,5),new h("itivă",-1,6)],u=[new h("ica",-1,1),new h("abila",-1,1),new h("ibila",-1,1),new h("oasa",-1,1),new h("ata",-1,1),new h("ita",-1,1),new h("anta",-1,1),new h("ista",-1,3),new h("uta",-1,1),new h("iva",-1,1),new h("ic",-1,1),new h("ice",-1,1),new h("abile",-1,1),new h("ibile",-1,1),new h("isme",-1,3),new h("iune",-1,2),new h("oase",-1,1),new h("ate",-1,1),new h("itate",17,1),new h("ite",-1,1),new h("ante",-1,1),new h("iste",-1,3),new h("ute",-1,1),new h("ive",-1,1),new h("ici",-1,1),new h("abili",-1,1),new h("ibili",-1,1),new h("iuni",-1,2),new h("atori",-1,1),new h("osi",-1,1),new h("ati",-1,1),new h("itati",30,1),new h("iti",-1,1),new h("anti",-1,1),new h("isti",-1,3),new h("uti",-1,1),new h("işti",-1,3),new h("ivi",-1,1),new h("ităi",-1,1),new h("oşi",-1,1),new h("ităţi",-1,1),new h("abil",-1,1),new h("ibil",-1,1),new h("ism",-1,3),new h("ator",-1,1),new h("os",-1,1),new h("at",-1,1),new h("it",-1,1),new h("ant",-1,1),new h("ist",-1,3),new h("ut",-1,1),new h("iv",-1,1),new h("ică",-1,1),new h("abilă",-1,1),new h("ibilă",-1,1),new h("oasă",-1,1),new h("ată",-1,1),new h("ită",-1,1),new h("antă",-1,1),new h("istă",-1,3),new h("ută",-1,1),new h("ivă",-1,1)],w=[new h("ea",-1,1),new h("ia",-1,1),new h("esc",-1,1),new h("ăsc",-1,1),new h("ind",-1,1),new h("ând",-1,1),new h("are",-1,1),new h("ere",-1,1),new h("ire",-1,1),new h("âre",-1,1),new h("se",-1,2),new h("ase",10,1),new h("sese",10,2),new h("ise",10,1),new h("use",10,1),new h("âse",10,1),new h("eşte",-1,1),new h("ăşte",-1,1),new h("eze",-1,1),new h("ai",-1,1),new h("eai",19,1),new h("iai",19,1),new h("sei",-1,2),new h("eşti",-1,1),new h("ăşti",-1,1),new h("ui",-1,1),new h("ezi",-1,1),new h("âi",-1,1),new h("aşi",-1,1),new h("seşi",-1,2),new h("aseşi",29,1),new h("seseşi",29,2),new h("iseşi",29,1),new h("useşi",29,1),new h("âseşi",29,1),new h("işi",-1,1),new h("uşi",-1,1),new h("âşi",-1,1),new h("aţi",-1,2),new h("eaţi",38,1),new h("iaţi",38,1),new h("eţi",-1,2),new h("iţi",-1,2),new h("âţi",-1,2),new h("arăţi",-1,1),new h("serăţi",-1,2),new h("aserăţi",45,1),new h("seserăţi",45,2),new h("iserăţi",45,1),new h("userăţi",45,1),new h("âserăţi",45,1),new h("irăţi",-1,1),new h("urăţi",-1,1),new h("ârăţi",-1,1),new h("am",-1,1),new h("eam",54,1),new h("iam",54,1),new h("em",-1,2),new h("asem",57,1),new h("sesem",57,2),new h("isem",57,1),new h("usem",57,1),new h("âsem",57,1),new h("im",-1,2),new h("âm",-1,2),new h("ăm",-1,2),new h("arăm",65,1),new h("serăm",65,2),new h("aserăm",67,1),new h("seserăm",67,2),new h("iserăm",67,1),new h("userăm",67,1),new h("âserăm",67,1),new h("irăm",65,1),new h("urăm",65,1),new h("ârăm",65,1),new h("au",-1,1),new h("eau",76,1),new h("iau",76,1),new h("indu",-1,1),new h("ându",-1,1),new h("ez",-1,1),new h("ească",-1,1),new h("ară",-1,1),new h("seră",-1,2),new h("aseră",84,1),new h("seseră",84,2),new h("iseră",84,1),new h("useră",84,1),new h("âseră",84,1),new h("iră",-1,1),new h("ură",-1,1),new h("âră",-1,1),new h("ează",-1,1)],i=[new h("a",-1,1),new h("e",-1,1),new h("ie",1,1),new h("i",-1,1),new h("ă",-1,1)],m=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,2,32,0,0,4],l=new z;function f(e,i){l.eq_s(1,e)&&(l.ket=l.cursor,l.in_grouping(m,97,259)&&l.slice_from(i))}function p(){if(l.out_grouping(m,97,259)){for(;!l.in_grouping(m,97,259);){if(l.cursor>=l.limit)return!0;l.cursor++}return!1}return!0}function d(){var e,i,r=l.cursor;if(l.in_grouping(m,97,259)){if(e=l.cursor,!p())return void(a=l.cursor);if(l.cursor=e,!function(){if(l.in_grouping(m,97,259))for(;!l.out_grouping(m,97,259);){if(l.cursor>=l.limit)return!0;l.cursor++}return!1}())return void(a=l.cursor)}l.cursor=r,l.out_grouping(m,97,259)&&(i=l.cursor,p()&&(l.cursor=i,l.in_grouping(m,97,259)&&l.cursor=l.limit)return!1;l.cursor++}for(;!l.out_grouping(m,97,259);){if(l.cursor>=l.limit)return!1;l.cursor++}return!0}function v(){return t<=l.cursor}function _(){var e,i=l.limit-l.cursor;if(l.ket=l.cursor,(e=l.find_among_b(c,46))&&(l.bra=l.cursor,v())){switch(e){case 1:l.slice_from("abil");break;case 2:l.slice_from("ibil");break;case 3:l.slice_from("iv");break;case 4:l.slice_from("ic");break;case 5:l.slice_from("at");break;case 6:l.slice_from("it")}return r=!0,l.cursor=l.limit-i,!0}return!1}function g(){var e,i;for(r=!1;;)if(i=l.limit-l.cursor,!_()){l.cursor=l.limit-i;break}if(l.ket=l.cursor,(e=l.find_among_b(u,62))&&(l.bra=l.cursor,n<=l.cursor)){switch(e){case 1:l.slice_del();break;case 2:l.eq_s_b(1,"ţ")&&(l.bra=l.cursor,l.slice_from("t"));break;case 3:l.slice_from("ist")}r=!0}}function k(){var e;l.ket=l.cursor,(e=l.find_among_b(i,5))&&(l.bra=l.cursor,a<=l.cursor&&1==e&&l.slice_del())}this.setCurrent=function(e){l.setCurrent(e)},this.getCurrent=function(){return l.getCurrent()},this.stem=function(){var e,i=l.cursor;return function(){for(var e,i;e=l.cursor,l.in_grouping(m,97,259)&&(i=l.cursor,l.bra=i,f("u","U"),l.cursor=i,f("i","I")),l.cursor=e,!(l.cursor>=l.limit);)l.cursor++}(),l.cursor=i,e=l.cursor,a=l.limit,n=t=a,d(),l.cursor=e,b()&&(t=l.cursor,b()&&(n=l.cursor)),l.limit_backward=i,l.cursor=l.limit,function(){var e,i;if(l.ket=l.cursor,(e=l.find_among_b(s,16))&&(l.bra=l.cursor,v()))switch(e){case 1:l.slice_del();break;case 2:l.slice_from("a");break;case 3:l.slice_from("e");break;case 4:l.slice_from("i");break;case 5:i=l.limit-l.cursor,l.eq_s_b(2,"ab")||(l.cursor=l.limit-i,l.slice_from("i"));break;case 6:l.slice_from("at");break;case 7:l.slice_from("aţi")}}(),l.cursor=l.limit,g(),l.cursor=l.limit,r||(l.cursor=l.limit,function(){var e,i,r;if(l.cursor>=a){if(i=l.limit_backward,l.limit_backward=a,l.ket=l.cursor,e=l.find_among_b(w,94))switch(l.bra=l.cursor,e){case 1:if(r=l.limit-l.cursor,!l.out_grouping_b(m,97,259)&&(l.cursor=l.limit-r,!l.eq_s_b(1,"u")))break;case 2:l.slice_del()}l.limit_backward=i}}(),l.cursor=l.limit),k(),l.cursor=l.limit_backward,function(){for(var e;;){if(l.bra=l.cursor,e=l.find_among(o,3))switch(l.ket=l.cursor,e){case 1:l.slice_from("i");continue;case 2:l.slice_from("u");continue;case 3:if(l.cursor>=l.limit)break;l.cursor++;continue}break}}(),!0}},function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}),e.Pipeline.registerFunction(e.ro.stemmer,"stemmer-ro"),e.ro.stopWordFilter=e.generateStopWordFilter("acea aceasta această aceea acei aceia acel acela acele acelea acest acesta aceste acestea aceşti aceştia acolo acord acum ai aia aibă aici al ale alea altceva altcineva am ar are asemenea asta astea astăzi asupra au avea avem aveţi azi aş aşadar aţi bine bucur bună ca care caut ce cel ceva chiar cinci cine cineva contra cu cum cumva curând curînd când cât câte câtva câţi cînd cît cîte cîtva cîţi că căci cărei căror cărui către da dacă dar datorită dată dau de deci deja deoarece departe deşi din dinaintea dintr- dintre doi doilea două drept după dă ea ei el ele eram este eu eşti face fata fi fie fiecare fii fim fiu fiţi frumos fără graţie halbă iar ieri la le li lor lui lângă lîngă mai mea mei mele mereu meu mi mie mine mult multă mulţi mulţumesc mâine mîine mă ne nevoie nici nicăieri nimeni nimeri nimic nişte noastre noastră noi noroc nostru nouă noştri nu opt ori oricare orice oricine oricum oricând oricât oricînd oricît oriunde patra patru patrulea pe pentru peste pic poate pot prea prima primul prin puţin puţina puţină până pînă rog sa sale sau se spate spre sub sunt suntem sunteţi sută sînt sîntem sînteţi să săi său ta tale te timp tine toate toată tot totuşi toţi trei treia treilea tu tăi tău un una unde undeva unei uneia unele uneori unii unor unora unu unui unuia unul vi voastre voastră voi vostru vouă voştri vreme vreo vreun vă zece zero zi zice îi îl îmi împotriva în înainte înaintea încotro încât încît între întrucât întrucît îţi ăla ălea ăsta ăstea ăştia şapte şase şi ştiu ţi ţie".split(" ")),e.Pipeline.registerFunction(e.ro.stopWordFilter,"stopWordFilter-ro")}}); \ No newline at end of file diff --git a/public/docs/assets/javascripts/lunr/lunr.ru.js b/public/docs/assets/javascripts/lunr/lunr.ru.js new file mode 100644 index 0000000..ac99248 --- /dev/null +++ b/public/docs/assets/javascripts/lunr/lunr.ru.js @@ -0,0 +1 @@ +!function(e,n){"function"==typeof define&&define.amd?define(n):"object"==typeof exports?module.exports=n():n()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var h,g,n;e.ru=function(){this.pipeline.reset(),this.pipeline.add(e.ru.trimmer,e.ru.stopWordFilter,e.ru.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ru.stemmer))},e.ru.wordCharacters="Ѐ-҄҇-ԯᴫᵸⷠ-ⷿꙀ-ꚟ︮︯",e.ru.trimmer=e.trimmerSupport.generateTrimmer(e.ru.wordCharacters),e.Pipeline.registerFunction(e.ru.trimmer,"trimmer-ru"),e.ru.stemmer=(h=e.stemmerSupport.Among,g=e.stemmerSupport.SnowballProgram,n=new function(){var n,e,r=[new h("в",-1,1),new h("ив",0,2),new h("ыв",0,2),new h("вши",-1,1),new h("ивши",3,2),new h("ывши",3,2),new h("вшись",-1,1),new h("ившись",6,2),new h("ывшись",6,2)],t=[new h("ее",-1,1),new h("ие",-1,1),new h("ое",-1,1),new h("ые",-1,1),new h("ими",-1,1),new h("ыми",-1,1),new h("ей",-1,1),new h("ий",-1,1),new h("ой",-1,1),new h("ый",-1,1),new h("ем",-1,1),new h("им",-1,1),new h("ом",-1,1),new h("ым",-1,1),new h("его",-1,1),new h("ого",-1,1),new h("ему",-1,1),new h("ому",-1,1),new h("их",-1,1),new h("ых",-1,1),new h("ею",-1,1),new h("ою",-1,1),new h("ую",-1,1),new h("юю",-1,1),new h("ая",-1,1),new h("яя",-1,1)],w=[new h("ем",-1,1),new h("нн",-1,1),new h("вш",-1,1),new h("ивш",2,2),new h("ывш",2,2),new h("щ",-1,1),new h("ющ",5,1),new h("ующ",6,2)],i=[new h("сь",-1,1),new h("ся",-1,1)],u=[new h("ла",-1,1),new h("ила",0,2),new h("ыла",0,2),new h("на",-1,1),new h("ена",3,2),new h("ете",-1,1),new h("ите",-1,2),new h("йте",-1,1),new h("ейте",7,2),new h("уйте",7,2),new h("ли",-1,1),new h("или",10,2),new h("ыли",10,2),new h("й",-1,1),new h("ей",13,2),new h("уй",13,2),new h("л",-1,1),new h("ил",16,2),new h("ыл",16,2),new h("ем",-1,1),new h("им",-1,2),new h("ым",-1,2),new h("н",-1,1),new h("ен",22,2),new h("ло",-1,1),new h("ило",24,2),new h("ыло",24,2),new h("но",-1,1),new h("ено",27,2),new h("нно",27,1),new h("ет",-1,1),new h("ует",30,2),new h("ит",-1,2),new h("ыт",-1,2),new h("ют",-1,1),new h("уют",34,2),new h("ят",-1,2),new h("ны",-1,1),new h("ены",37,2),new h("ть",-1,1),new h("ить",39,2),new h("ыть",39,2),new h("ешь",-1,1),new h("ишь",-1,2),new h("ю",-1,2),new h("ую",44,2)],s=[new h("а",-1,1),new h("ев",-1,1),new h("ов",-1,1),new h("е",-1,1),new h("ие",3,1),new h("ье",3,1),new h("и",-1,1),new h("еи",6,1),new h("ии",6,1),new h("ами",6,1),new h("ями",6,1),new h("иями",10,1),new h("й",-1,1),new h("ей",12,1),new h("ией",13,1),new h("ий",12,1),new h("ой",12,1),new h("ам",-1,1),new h("ем",-1,1),new h("ием",18,1),new h("ом",-1,1),new h("ям",-1,1),new h("иям",21,1),new h("о",-1,1),new h("у",-1,1),new h("ах",-1,1),new h("ях",-1,1),new h("иях",26,1),new h("ы",-1,1),new h("ь",-1,1),new h("ю",-1,1),new h("ию",30,1),new h("ью",30,1),new h("я",-1,1),new h("ия",33,1),new h("ья",33,1)],o=[new h("ост",-1,1),new h("ость",-1,1)],c=[new h("ейше",-1,1),new h("н",-1,2),new h("ейш",-1,1),new h("ь",-1,3)],m=[33,65,8,232],l=new g;function f(){for(;!l.in_grouping(m,1072,1103);){if(l.cursor>=l.limit)return!1;l.cursor++}return!0}function a(){for(;!l.out_grouping(m,1072,1103);){if(l.cursor>=l.limit)return!1;l.cursor++}return!0}function p(e,n){var r,t;if(l.ket=l.cursor,r=l.find_among_b(e,n)){switch(l.bra=l.cursor,r){case 1:if(t=l.limit-l.cursor,!l.eq_s_b(1,"а")&&(l.cursor=l.limit-t,!l.eq_s_b(1,"я")))return!1;case 2:l.slice_del()}return!0}return!1}function d(e,n){var r;return l.ket=l.cursor,!!(r=l.find_among_b(e,n))&&(l.bra=l.cursor,1==r&&l.slice_del(),!0)}function _(){return!!d(t,26)&&(p(w,8),!0)}function b(){var e;l.ket=l.cursor,(e=l.find_among_b(o,2))&&(l.bra=l.cursor,n<=l.cursor&&1==e&&l.slice_del())}this.setCurrent=function(e){l.setCurrent(e)},this.getCurrent=function(){return l.getCurrent()},this.stem=function(){return e=l.limit,n=e,f()&&(e=l.cursor,a()&&f()&&a()&&(n=l.cursor)),l.cursor=l.limit,!(l.cursor>3]&1<<(7&s))return this.cursor++,!0}return!1},in_grouping_b:function(r,t,i){if(this.cursor>this.limit_backward){var s=b.charCodeAt(this.cursor-1);if(s<=i&&t<=s&&r[(s-=t)>>3]&1<<(7&s))return this.cursor--,!0}return!1},out_grouping:function(r,t,i){if(this.cursor>3]&1<<(7&s)))return this.cursor++,!0}return!1},out_grouping_b:function(r,t,i){if(this.cursor>this.limit_backward){var s=b.charCodeAt(this.cursor-1);if(i>3]&1<<(7&s)))return this.cursor--,!0}return!1},eq_s:function(r,t){if(this.limit-this.cursor>1),a=0,f=u=(l=r[i]).s_size){if(this.cursor=e+l.s_size,!l.method)return l.result;var m=l.method();if(this.cursor=e+l.s_size,m)return l.result}if((i=l.substring_i)<0)return 0}},find_among_b:function(r,t){for(var i=0,s=t,e=this.cursor,n=this.limit_backward,u=0,o=0,h=!1;;){for(var c=i+(s-i>>1),a=0,f=u=(_=r[i]).s_size){if(this.cursor=e-_.s_size,!_.method)return _.result;var m=_.method();if(this.cursor=e-_.s_size,m)return _.result}if((i=_.substring_i)<0)return 0}},replace_s:function(r,t,i){var s=i.length-(t-r);return b=b.substring(0,r)+i+b.substring(t),this.limit+=s,this.cursor>=t?this.cursor+=s:this.cursor>r&&(this.cursor=r),s},slice_check:function(){if(this.bra<0||this.bra>this.ket||this.ket>this.limit||this.limit>b.length)throw"faulty slice operation"},slice_from:function(r){this.slice_check(),this.replace_s(this.bra,this.ket,r)},slice_del:function(){this.slice_from("")},insert:function(r,t,i){var s=this.replace_s(r,t,i);r<=this.bra&&(this.bra+=s),r<=this.ket&&(this.ket+=s)},slice_to:function(){return this.slice_check(),b.substring(this.bra,this.ket)},eq_v_b:function(r){return this.eq_s_b(r.length,r)}}}},r.trimmerSupport={generateTrimmer:function(r){var t=new RegExp("^[^"+r+"]+"),i=new RegExp("[^"+r+"]+$");return function(r){return"function"==typeof r.update?r.update(function(r){return r.replace(t,"").replace(i,"")}):r.replace(t,"").replace(i,"")}}}}}); \ No newline at end of file diff --git a/public/docs/assets/javascripts/lunr/lunr.sv.js b/public/docs/assets/javascripts/lunr/lunr.sv.js new file mode 100644 index 0000000..6daf5f9 --- /dev/null +++ b/public/docs/assets/javascripts/lunr/lunr.sv.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r,l,n;e.sv=function(){this.pipeline.reset(),this.pipeline.add(e.sv.trimmer,e.sv.stopWordFilter,e.sv.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.sv.stemmer))},e.sv.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.sv.trimmer=e.trimmerSupport.generateTrimmer(e.sv.wordCharacters),e.Pipeline.registerFunction(e.sv.trimmer,"trimmer-sv"),e.sv.stemmer=(r=e.stemmerSupport.Among,l=e.stemmerSupport.SnowballProgram,n=new function(){var n,t,i=[new r("a",-1,1),new r("arna",0,1),new r("erna",0,1),new r("heterna",2,1),new r("orna",0,1),new r("ad",-1,1),new r("e",-1,1),new r("ade",6,1),new r("ande",6,1),new r("arne",6,1),new r("are",6,1),new r("aste",6,1),new r("en",-1,1),new r("anden",12,1),new r("aren",12,1),new r("heten",12,1),new r("ern",-1,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",18,1),new r("or",-1,1),new r("s",-1,2),new r("as",21,1),new r("arnas",22,1),new r("ernas",22,1),new r("ornas",22,1),new r("es",21,1),new r("ades",26,1),new r("andes",26,1),new r("ens",21,1),new r("arens",29,1),new r("hetens",29,1),new r("erns",21,1),new r("at",-1,1),new r("andet",-1,1),new r("het",-1,1),new r("ast",-1,1)],s=[new r("dd",-1,-1),new r("gd",-1,-1),new r("nn",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1),new r("tt",-1,-1)],a=[new r("ig",-1,1),new r("lig",0,1),new r("els",-1,1),new r("fullt",-1,3),new r("löst",-1,2)],o=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,24,0,32],u=[119,127,149],m=new l;this.setCurrent=function(e){m.setCurrent(e)},this.getCurrent=function(){return m.getCurrent()},this.stem=function(){var e,r=m.cursor;return function(){var e,r=m.cursor+3;if(t=m.limit,0<=r||r<=m.limit){for(n=r;;){if(e=m.cursor,m.in_grouping(o,97,246)){m.cursor=e;break}if(m.cursor=e,m.cursor>=m.limit)return;m.cursor++}for(;!m.out_grouping(o,97,246);){if(m.cursor>=m.limit)return;m.cursor++}(t=m.cursor)=t&&(m.limit_backward=t,m.cursor=m.limit,m.ket=m.cursor,e=m.find_among_b(i,37),m.limit_backward=r,e))switch(m.bra=m.cursor,e){case 1:m.slice_del();break;case 2:m.in_grouping_b(u,98,121)&&m.slice_del()}}(),m.cursor=m.limit,e=m.limit_backward,m.cursor>=t&&(m.limit_backward=t,m.cursor=m.limit,m.find_among_b(s,7)&&(m.cursor=m.limit,m.ket=m.cursor,m.cursor>m.limit_backward&&(m.bra=--m.cursor,m.slice_del())),m.limit_backward=e),m.cursor=m.limit,function(){var e,r;if(m.cursor>=t){if(r=m.limit_backward,m.limit_backward=t,m.cursor=m.limit,m.ket=m.cursor,e=m.find_among_b(a,5))switch(m.bra=m.cursor,e){case 1:m.slice_del();break;case 2:m.slice_from("lös");break;case 3:m.slice_from("full")}m.limit_backward=r}}(),!0}},function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}),e.Pipeline.registerFunction(e.sv.stemmer,"stemmer-sv"),e.sv.stopWordFilter=e.generateStopWordFilter("alla allt att av blev bli blir blivit de dem den denna deras dess dessa det detta dig din dina ditt du där då efter ej eller en er era ert ett från för ha hade han hans har henne hennes hon honom hur här i icke ingen inom inte jag ju kan kunde man med mellan men mig min mina mitt mot mycket ni nu när någon något några och om oss på samma sedan sig sin sina sitta själv skulle som så sådan sådana sådant till under upp ut utan vad var vara varför varit varje vars vart vem vi vid vilka vilkas vilken vilket vår våra vårt än är åt över".split(" ")),e.Pipeline.registerFunction(e.sv.stopWordFilter,"stopWordFilter-sv")}}); \ No newline at end of file diff --git a/public/docs/assets/javascripts/lunr/lunr.th.js b/public/docs/assets/javascripts/lunr/lunr.th.js new file mode 100644 index 0000000..ee8ef37 --- /dev/null +++ b/public/docs/assets/javascripts/lunr/lunr.th.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(t){if(void 0===t)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===t.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var i="2"==t.version[0];t.th=function(){this.pipeline.reset(),this.pipeline.add(t.th.trimmer),i?this.tokenizer=t.th.tokenizer:(t.tokenizer&&(t.tokenizer=t.th.tokenizer),this.tokenizerFn&&(this.tokenizerFn=t.th.tokenizer))},t.th.wordCharacters="[฀-๿]",t.th.trimmer=t.trimmerSupport.generateTrimmer(t.th.wordCharacters),t.Pipeline.registerFunction(t.th.trimmer,"trimmer-th");var n=t.wordcut;n.init(),t.th.tokenizer=function(e){if(!arguments.length||null==e||null==e)return[];if(Array.isArray(e))return e.map(function(e){return i?new t.Token(e):e});var r=e.toString().replace(/^\s+/,"");return n.cut(r).split("|")}}}); \ No newline at end of file diff --git a/public/docs/assets/javascripts/lunr/lunr.tr.js b/public/docs/assets/javascripts/lunr/lunr.tr.js new file mode 100644 index 0000000..e8fb5a7 --- /dev/null +++ b/public/docs/assets/javascripts/lunr/lunr.tr.js @@ -0,0 +1 @@ +!function(r,i){"function"==typeof define&&define.amd?define(i):"object"==typeof exports?module.exports=i():i()(r.lunr)}(this,function(){return function(r){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var mr,dr,i;r.tr=function(){this.pipeline.reset(),this.pipeline.add(r.tr.trimmer,r.tr.stopWordFilter,r.tr.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(r.tr.stemmer))},r.tr.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",r.tr.trimmer=r.trimmerSupport.generateTrimmer(r.tr.wordCharacters),r.Pipeline.registerFunction(r.tr.trimmer,"trimmer-tr"),r.tr.stemmer=(mr=r.stemmerSupport.Among,dr=r.stemmerSupport.SnowballProgram,i=new function(){var t,r=[new mr("m",-1,-1),new mr("n",-1,-1),new mr("miz",-1,-1),new mr("niz",-1,-1),new mr("muz",-1,-1),new mr("nuz",-1,-1),new mr("müz",-1,-1),new mr("nüz",-1,-1),new mr("mız",-1,-1),new mr("nız",-1,-1)],i=[new mr("leri",-1,-1),new mr("ları",-1,-1)],e=[new mr("ni",-1,-1),new mr("nu",-1,-1),new mr("nü",-1,-1),new mr("nı",-1,-1)],n=[new mr("in",-1,-1),new mr("un",-1,-1),new mr("ün",-1,-1),new mr("ın",-1,-1)],u=[new mr("a",-1,-1),new mr("e",-1,-1)],o=[new mr("na",-1,-1),new mr("ne",-1,-1)],s=[new mr("da",-1,-1),new mr("ta",-1,-1),new mr("de",-1,-1),new mr("te",-1,-1)],c=[new mr("nda",-1,-1),new mr("nde",-1,-1)],l=[new mr("dan",-1,-1),new mr("tan",-1,-1),new mr("den",-1,-1),new mr("ten",-1,-1)],a=[new mr("ndan",-1,-1),new mr("nden",-1,-1)],m=[new mr("la",-1,-1),new mr("le",-1,-1)],d=[new mr("ca",-1,-1),new mr("ce",-1,-1)],f=[new mr("im",-1,-1),new mr("um",-1,-1),new mr("üm",-1,-1),new mr("ım",-1,-1)],b=[new mr("sin",-1,-1),new mr("sun",-1,-1),new mr("sün",-1,-1),new mr("sın",-1,-1)],w=[new mr("iz",-1,-1),new mr("uz",-1,-1),new mr("üz",-1,-1),new mr("ız",-1,-1)],_=[new mr("siniz",-1,-1),new mr("sunuz",-1,-1),new mr("sünüz",-1,-1),new mr("sınız",-1,-1)],k=[new mr("lar",-1,-1),new mr("ler",-1,-1)],p=[new mr("niz",-1,-1),new mr("nuz",-1,-1),new mr("nüz",-1,-1),new mr("nız",-1,-1)],g=[new mr("dir",-1,-1),new mr("tir",-1,-1),new mr("dur",-1,-1),new mr("tur",-1,-1),new mr("dür",-1,-1),new mr("tür",-1,-1),new mr("dır",-1,-1),new mr("tır",-1,-1)],y=[new mr("casına",-1,-1),new mr("cesine",-1,-1)],z=[new mr("di",-1,-1),new mr("ti",-1,-1),new mr("dik",-1,-1),new mr("tik",-1,-1),new mr("duk",-1,-1),new mr("tuk",-1,-1),new mr("dük",-1,-1),new mr("tük",-1,-1),new mr("dık",-1,-1),new mr("tık",-1,-1),new mr("dim",-1,-1),new mr("tim",-1,-1),new mr("dum",-1,-1),new mr("tum",-1,-1),new mr("düm",-1,-1),new mr("tüm",-1,-1),new mr("dım",-1,-1),new mr("tım",-1,-1),new mr("din",-1,-1),new mr("tin",-1,-1),new mr("dun",-1,-1),new mr("tun",-1,-1),new mr("dün",-1,-1),new mr("tün",-1,-1),new mr("dın",-1,-1),new mr("tın",-1,-1),new mr("du",-1,-1),new mr("tu",-1,-1),new mr("dü",-1,-1),new mr("tü",-1,-1),new mr("dı",-1,-1),new mr("tı",-1,-1)],h=[new mr("sa",-1,-1),new mr("se",-1,-1),new mr("sak",-1,-1),new mr("sek",-1,-1),new mr("sam",-1,-1),new mr("sem",-1,-1),new mr("san",-1,-1),new mr("sen",-1,-1)],v=[new mr("miş",-1,-1),new mr("muş",-1,-1),new mr("müş",-1,-1),new mr("mış",-1,-1)],q=[new mr("b",-1,1),new mr("c",-1,2),new mr("d",-1,3),new mr("ğ",-1,4)],C=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,8,0,0,0,0,0,0,1],P=[1,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,1],F=[65],S=[65],W=[["a",[1,64,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],97,305],["e",[17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,130],101,252],["ı",[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],97,305],["i",[17],101,105],["o",F,111,117],["ö",S,246,252],["u",F,111,117]],L=new dr;function x(r,i,e){for(;;){var n=L.limit-L.cursor;if(L.in_grouping_b(r,i,e)){L.cursor=L.limit-n;break}if(L.cursor=L.limit-n,L.cursor<=L.limit_backward)return!1;L.cursor--}return!0}function A(){var r,i;r=L.limit-L.cursor,x(C,97,305);for(var e=0;eL.limit_backward&&(L.cursor--,e=L.limit-L.cursor,i()))?(L.cursor=L.limit-e,!0):(L.cursor=L.limit-n,r()?(L.cursor=L.limit-n,!1):(L.cursor=L.limit-n,!(L.cursor<=L.limit_backward)&&(L.cursor--,!!i()&&(L.cursor=L.limit-n,!0))))}function j(r){return E(r,function(){return L.in_grouping_b(C,97,305)})}function T(){return j(function(){return L.eq_s_b(1,"n")})}function Z(){return j(function(){return L.eq_s_b(1,"y")})}function B(){return L.find_among_b(r,10)&&E(function(){return L.in_grouping_b(P,105,305)},function(){return L.out_grouping_b(C,97,305)})}function D(){return A()&&L.in_grouping_b(P,105,305)&&j(function(){return L.eq_s_b(1,"s")})}function G(){return L.find_among_b(i,2)}function H(){return A()&&L.find_among_b(n,4)&&T()}function I(){return A()&&L.find_among_b(s,4)}function J(){return A()&&L.find_among_b(c,2)}function K(){return A()&&L.find_among_b(f,4)&&Z()}function M(){return A()&&L.find_among_b(b,4)}function N(){return A()&&L.find_among_b(w,4)&&Z()}function O(){return L.find_among_b(_,4)}function Q(){return A()&&L.find_among_b(k,2)}function R(){return A()&&L.find_among_b(g,8)}function U(){return A()&&L.find_among_b(z,32)&&Z()}function V(){return L.find_among_b(h,8)&&Z()}function X(){return A()&&L.find_among_b(v,4)&&Z()}function Y(){var r=L.limit-L.cursor;return!(X()||(L.cursor=L.limit-r,U()||(L.cursor=L.limit-r,V()||(L.cursor=L.limit-r,L.eq_s_b(3,"ken")&&Z()))))}function $(){if(L.find_among_b(y,2)){var r=L.limit-L.cursor;if(O()||(L.cursor=L.limit-r,Q()||(L.cursor=L.limit-r,K()||(L.cursor=L.limit-r,M()||(L.cursor=L.limit-r,N()||(L.cursor=L.limit-r))))),X())return!1}return!0}function rr(){if(!A()||!L.find_among_b(p,4))return!0;var r=L.limit-L.cursor;return!U()&&(L.cursor=L.limit-r,!V())}function ir(){var r,i,e,n=L.limit-L.cursor;if(L.ket=L.cursor,t=!0,Y()&&(L.cursor=L.limit-n,$()&&(L.cursor=L.limit-n,function(){if(Q()){L.bra=L.cursor,L.slice_del();var r=L.limit-L.cursor;return L.ket=L.cursor,R()||(L.cursor=L.limit-r,U()||(L.cursor=L.limit-r,V()||(L.cursor=L.limit-r,X()||(L.cursor=L.limit-r)))),t=!1}return!0}()&&(L.cursor=L.limit-n,rr()&&(L.cursor=L.limit-n,e=L.limit-L.cursor,!(O()||(L.cursor=L.limit-e,N()||(L.cursor=L.limit-e,M()||(L.cursor=L.limit-e,K()))))||(L.bra=L.cursor,L.slice_del(),i=L.limit-L.cursor,L.ket=L.cursor,X()||(L.cursor=L.limit-i),0)))))){if(L.cursor=L.limit-n,!R())return;L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,r=L.limit-L.cursor,O()||(L.cursor=L.limit-r,Q()||(L.cursor=L.limit-r,K()||(L.cursor=L.limit-r,M()||(L.cursor=L.limit-r,N()||(L.cursor=L.limit-r))))),X()||(L.cursor=L.limit-r)}L.bra=L.cursor,L.slice_del()}function er(){var r,i,e,n;if(L.ket=L.cursor,L.eq_s_b(2,"ki")){if(r=L.limit-L.cursor,I())return L.bra=L.cursor,L.slice_del(),i=L.limit-L.cursor,L.ket=L.cursor,Q()?(L.bra=L.cursor,L.slice_del(),er()):(L.cursor=L.limit-i,B()&&(L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,Q()&&(L.bra=L.cursor,L.slice_del(),er()))),!0;if(L.cursor=L.limit-r,H()){if(L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,e=L.limit-L.cursor,G())L.bra=L.cursor,L.slice_del();else{if(L.cursor=L.limit-e,L.ket=L.cursor,!B()&&(L.cursor=L.limit-e,!D()&&(L.cursor=L.limit-e,!er())))return!0;L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,Q()&&(L.bra=L.cursor,L.slice_del(),er())}return!0}if(L.cursor=L.limit-r,J()){if(n=L.limit-L.cursor,G())L.bra=L.cursor,L.slice_del();else if(L.cursor=L.limit-n,D())L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,Q()&&(L.bra=L.cursor,L.slice_del(),er());else if(L.cursor=L.limit-n,!er())return!1;return!0}}return!1}function nr(r){if(L.ket=L.cursor,!J()&&(L.cursor=L.limit-r,!A()||!L.find_among_b(o,2)))return!1;var i=L.limit-L.cursor;if(G())L.bra=L.cursor,L.slice_del();else if(L.cursor=L.limit-i,D())L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,Q()&&(L.bra=L.cursor,L.slice_del(),er());else if(L.cursor=L.limit-i,!er())return!1;return!0}function tr(r){if(L.ket=L.cursor,!(A()&&L.find_among_b(a,2)||(L.cursor=L.limit-r,A()&&L.find_among_b(e,4))))return!1;var i=L.limit-L.cursor;return!(!D()&&(L.cursor=L.limit-i,!G()))&&(L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,Q()&&(L.bra=L.cursor,L.slice_del(),er()),!0)}function ur(){var r,i=L.limit-L.cursor;return L.ket=L.cursor,!!(H()||(L.cursor=L.limit-i,A()&&L.find_among_b(m,2)&&Z()))&&(L.bra=L.cursor,L.slice_del(),r=L.limit-L.cursor,L.ket=L.cursor,!(!Q()||(L.bra=L.cursor,L.slice_del(),!er()))||(L.cursor=L.limit-r,L.ket=L.cursor,(B()||(L.cursor=L.limit-r,D()||(L.cursor=L.limit-r,er())))&&(L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,Q()&&(L.bra=L.cursor,L.slice_del(),er())),!0))}function or(){var r,i,e=L.limit-L.cursor;if(L.ket=L.cursor,!(I()||(L.cursor=L.limit-e,A()&&L.in_grouping_b(P,105,305)&&Z()||(L.cursor=L.limit-e,A()&&L.find_among_b(u,2)&&Z()))))return!1;if(L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,r=L.limit-L.cursor,B())L.bra=L.cursor,L.slice_del(),i=L.limit-L.cursor,L.ket=L.cursor,Q()||(L.cursor=L.limit-i);else if(L.cursor=L.limit-r,!Q())return!0;return L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,er(),!0}function sr(){var r,i,e=L.limit-L.cursor;if(L.ket=L.cursor,Q())return L.bra=L.cursor,L.slice_del(),void er();if(L.cursor=L.limit-e,L.ket=L.cursor,A()&&L.find_among_b(d,2)&&T())if(L.bra=L.cursor,L.slice_del(),r=L.limit-L.cursor,L.ket=L.cursor,G())L.bra=L.cursor,L.slice_del();else{if(L.cursor=L.limit-r,L.ket=L.cursor,!B()&&(L.cursor=L.limit-r,!D())){if(L.cursor=L.limit-r,L.ket=L.cursor,!Q())return;if(L.bra=L.cursor,L.slice_del(),!er())return}L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,Q()&&(L.bra=L.cursor,L.slice_del(),er())}else if(L.cursor=L.limit-e,!nr(e)&&(L.cursor=L.limit-e,!tr(e))){if(L.cursor=L.limit-e,L.ket=L.cursor,A()&&L.find_among_b(l,4))return L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,i=L.limit-L.cursor,void(B()?(L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,Q()&&(L.bra=L.cursor,L.slice_del(),er())):(L.cursor=L.limit-i,Q()?(L.bra=L.cursor,L.slice_del()):L.cursor=L.limit-i,er()));if(L.cursor=L.limit-e,!ur()){if(L.cursor=L.limit-e,G())return L.bra=L.cursor,void L.slice_del();L.cursor=L.limit-e,er()||(L.cursor=L.limit-e,or()||(L.cursor=L.limit-e,L.ket=L.cursor,(B()||(L.cursor=L.limit-e,D()))&&(L.bra=L.cursor,L.slice_del(),L.ket=L.cursor,Q()&&(L.bra=L.cursor,L.slice_del(),er()))))}}}function cr(r,i,e){if(L.cursor=L.limit-r,function(){for(;;){var r=L.limit-L.cursor;if(L.in_grouping_b(C,97,305)){L.cursor=L.limit-r;break}if(L.cursor=L.limit-r,L.cursor<=L.limit_backward)return!1;L.cursor--}return!0}()){var n=L.limit-L.cursor;if(!L.eq_s_b(1,i)&&(L.cursor=L.limit-n,!L.eq_s_b(1,e)))return!0;L.cursor=L.limit-r;var t=L.cursor;return L.insert(L.cursor,L.cursor,e),L.cursor=t,!1}return!0}function lr(r,i,e){for(;!L.eq_s(i,e);){if(L.cursor>=L.limit)return!0;L.cursor++}return i!=L.limit||(L.cursor=r,!1)}function ar(){var r,i,e=L.cursor;return!(!lr(r=L.cursor,2,"ad")||!lr(L.cursor=r,5,"soyad"))&&(L.limit_backward=e,L.cursor=L.limit,i=L.limit-L.cursor,(L.eq_s_b(1,"d")||(L.cursor=L.limit-i,L.eq_s_b(1,"g")))&&cr(i,"a","ı")&&cr(i,"e","i")&&cr(i,"o","u")&&cr(i,"ö","ü"),L.cursor=L.limit,function(){var r;if(L.ket=L.cursor,r=L.find_among_b(q,4))switch(L.bra=L.cursor,r){case 1:L.slice_from("p");break;case 2:L.slice_from("ç");break;case 3:L.slice_from("t");break;case 4:L.slice_from("k")}}(),!0)}this.setCurrent=function(r){L.setCurrent(r)},this.getCurrent=function(){return L.getCurrent()},this.stem=function(){return!!(function(){for(var r,i=L.cursor,e=2;;){for(r=L.cursor;!L.in_grouping(C,97,305);){if(L.cursor>=L.limit)return L.cursor=r,!(0e&&(this._events[n].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[n].length),"function"==typeof console.trace&&console.trace()));return this},r.prototype.once=function(n,t){if(!a(t))throw TypeError("listener must be a function");var e=!1;function r(){this.removeListener(n,r),e||(e=!0,t.apply(this,arguments))}return r.listener=t,this.on(n,r),this},r.prototype.removeListener=function(n,t){var e,r,i,o;if(!a(t))throw TypeError("listener must be a function");if(!this._events||!this._events[n])return this;if(i=(e=this._events[n]).length,r=-1,e===t||a(e.listener)&&e.listener===t)delete this._events[n],this._events.removeListener&&this.emit("removeListener",n,t);else if(c(e)){for(o=i;0this.maxLength)return i();if(!this.stat&&p(this.cache,o)){var t=this.cache[o];if(Array.isArray(t)&&(t="DIR"),!n||"DIR"===t)return i(null,t);if(n&&"FILE"===t)return i()}var e=this.statCache[o];if(void 0!==e){if(!1===e)return i(null,e);var s=e.isDirectory()?"DIR":"FILE";return n&&"FILE"===s?i():i(null,s,e)}var a=this,c=d("stat\0"+o,function(n,e){{if(e&&e.isSymbolicLink())return u.stat(o,function(n,t){n?a._stat2(r,o,null,e,i):a._stat2(r,o,n,t,i)});a._stat2(r,o,n,e,i)}});c&&u.lstat(o,c)},b.prototype._stat2=function(n,t,e,r,i){if(e)return this.statCache[t]=!1,i();var o="/"===n.slice(-1);if(this.statCache[t]=r,"/"===t.slice(-1)&&!r.isDirectory())return i(null,!1,r);var s=r.isDirectory()?"DIR":"FILE";return this.cache[t]=this.cache[t]||s,o&&"DIR"!==s?i():i(null,s,r)}}).call(this,_("_process"))},{"./common.js":15,"./sync.js":17,_process:24,assert:9,events:14,fs:12,inflight:18,inherits:19,minimatch:20,once:21,path:22,"path-is-absolute":23,util:28}],17:[function(e,r,n){(function(i){(r.exports=n).GlobSync=h;var s=e("fs"),c=e("minimatch"),g=(c.Minimatch,e("./glob.js").Glob,e("util"),e("path")),u=e("assert"),l=e("path-is-absolute"),t=e("./common.js"),o=(t.alphasort,t.alphasorti,t.setopts),a=t.ownProp,f=t.childrenIgnored;function n(n,t){if("function"==typeof t||3===arguments.length)throw new TypeError("callback provided to sync glob\nSee: https://github.com/isaacs/node-glob/issues/167");return new h(n,t).found}function h(n,t){if(!n)throw new Error("must provide pattern");if("function"==typeof t||3===arguments.length)throw new TypeError("callback provided to sync glob\nSee: https://github.com/isaacs/node-glob/issues/167");if(!(this instanceof h))return new h(n,t);if(o(this,n,t),this.noprocess)return this;var e=this.minimatch.set.length;this.matches=new Array(e);for(var r=0;rthis.maxLength)return!1;if(!this.stat&&a(this.cache,t)){var r=this.cache[t];if(Array.isArray(r)&&(r="DIR"),!e||"DIR"===r)return r;if(e&&"FILE"===r)return!1}var i=this.statCache[t];if(!i){var o;try{o=s.lstatSync(t)}catch(n){return!1}if(o.isSymbolicLink())try{i=s.statSync(t)}catch(n){i=o}else i=o}r=(this.statCache[t]=i).isDirectory()?"DIR":"FILE";return this.cache[t]=this.cache[t]||r,(!e||"DIR"===r)&&r},h.prototype._mark=function(n){return t.mark(this,n)},h.prototype._makeAbs=function(n){return t.makeAbs(this,n)}}).call(this,e("_process"))},{"./common.js":15,"./glob.js":16,_process:24,assert:9,fs:12,minimatch:20,path:22,"path-is-absolute":23,util:28}],18:[function(t,r,n){(function(s){var n=t("wrappy"),a=Object.create(null),e=t("once");r.exports=n(function(n,t){return a[n]?(a[n].push(t),null):(a[n]=[t],o=n,e(function n(){var t=a[o],e=t.length,r=function(n){for(var t=n.length,e=[],r=0;re?(t.splice(0,e),s.nextTick(function(){n.apply(null,r)})):delete a[o]}}));var o})}).call(this,t("_process"))},{_process:24,once:21,wrappy:29}],19:[function(n,t,e){"function"==typeof Object.create?t.exports=function(n,t){n.super_=t,n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}})}:t.exports=function(n,t){n.super_=t;var e=function(){};e.prototype=t.prototype,n.prototype=new e,n.prototype.constructor=n}},{}],20:[function(n,t,e){(t.exports=s).Minimatch=i;var u={sep:"/"};try{u=n("path")}catch(n){}var M=s.GLOBSTAR=i.GLOBSTAR={},r=n("brace-expansion"),C={"!":{open:"(?:(?!(?:",close:"))[^/]*?)"},"?":{open:"(?:",close:")?"},"+":{open:"(?:",close:")+"},"*":{open:"(?:",close:")*"},"@":{open:"(?:",close:")"}},P="[^/]",z=P+"*?",B="().*{}+?[]^$\\!".split("").reduce(function(n,t){return n[t]=!0,n},{});var l=/\/+/;function o(t,e){t=t||{},e=e||{};var r={};return Object.keys(e).forEach(function(n){r[n]=e[n]}),Object.keys(t).forEach(function(n){r[n]=t[n]}),r}function s(n,t,e){if("string"!=typeof t)throw new TypeError("glob pattern string required");return e||(e={}),!(!e.nocomment&&"#"===t.charAt(0))&&(""===t.trim()?""===n:new i(t,e).match(n))}function i(n,t){if(!(this instanceof i))return new i(n,t);if("string"!=typeof n)throw new TypeError("glob pattern string required");t||(t={}),n=n.trim(),"/"!==u.sep&&(n=n.split(u.sep).join("/")),this.options=t,this.set=[],this.pattern=n,this.regexp=null,this.negate=!1,this.comment=!1,this.empty=!1,this.make()}function a(n,t){if(t||(t=this instanceof i?this.options:{}),void 0===(n=void 0===n?this.pattern:n))throw new TypeError("undefined pattern");return t.nobrace||!n.match(/\{.*\}/)?[n]:r(n)}s.filter=function(r,i){return i=i||{},function(n,t,e){return s(n,r,i)}},s.defaults=function(r){if(!r||!Object.keys(r).length)return s;var i=s,n=function(n,t,e){return i.minimatch(n,t,o(r,e))};return n.Minimatch=function(n,t){return new i.Minimatch(n,o(r,t))},n},i.defaults=function(n){return n&&Object.keys(n).length?s.defaults(n).Minimatch:i},i.prototype.debug=function(){},i.prototype.make=function(){if(this._made)return;var n=this.pattern,t=this.options;if(!t.nocomment&&"#"===n.charAt(0))return void(this.comment=!0);if(!n)return void(this.empty=!0);this.parseNegate();var e=this.globSet=this.braceExpand();t.debug&&(this.debug=console.error);this.debug(this.pattern,e),e=this.globParts=e.map(function(n){return n.split(l)}),this.debug(this.pattern,e),e=e.map(function(n,t,e){return n.map(this.parse,this)},this),this.debug(this.pattern,e),e=e.filter(function(n){return-1===n.indexOf(!1)}),this.debug(this.pattern,e),this.set=e},i.prototype.parseNegate=function(){var n=this.pattern,t=!1,e=this.options,r=0;if(e.nonegate)return;for(var i=0,o=n.length;i>> no match, partial?",n,f,t,h),f!==s))}if("string"==typeof u?(c=r.nocase?l.toLowerCase()===u.toLowerCase():l===u,this.debug("string match",u,l,c)):(c=l.match(u),this.debug("pattern match",u,l,c)),!c)return!1}if(i===s&&o===a)return!0;if(i===s)return e;if(o===a)return i===s-1&&""===n[i];throw new Error("wtf?")}},{"brace-expansion":11,path:22}],21:[function(n,t,e){var r=n("wrappy");function i(n){var t=function(){return t.called?t.value:(t.called=!0,t.value=n.apply(this,arguments))};return t.called=!1,t}function o(n){var t=function(){if(t.called)throw new Error(t.onceError);return t.called=!0,t.value=n.apply(this,arguments)},e=n.name||"Function wrapped with `once`";return t.onceError=e+" shouldn't be called more than once",t.called=!1,t}t.exports=r(i),t.exports.strict=r(o),i.proto=i(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return i(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return o(this)},configurable:!0})})},{wrappy:29}],22:[function(n,t,u){(function(i){function o(n,t){for(var e=0,r=n.length-1;0<=r;r--){var i=n[r];"."===i?n.splice(r,1):".."===i?(n.splice(r,1),e++):e&&(n.splice(r,1),e--)}if(t)for(;e--;e)n.unshift("..");return n}var t=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,s=function(n){return t.exec(n).slice(1)};function a(n,t){if(n.filter)return n.filter(t);for(var e=[],r=0;r":">",'"':""","'":"'","`":"`"},D=d.invert(N),F=function(t){var e=function(n){return t[n]},n="(?:"+d.keys(t).join("|")+")",r=RegExp(n),i=RegExp(n,"g");return function(n){return n=null==n?"":""+n,r.test(n)?n.replace(i,e):n}};d.escape=F(N),d.unescape=F(D),d.result=function(n,t,e){var r=null==n?void 0:n[t];return void 0===r&&(r=e),d.isFunction(r)?r.call(n):r};var M=0;d.uniqueId=function(n){var t=++M+"";return n?n+t:t},d.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var C=/(.)^/,P={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},z=/\\|'|\r|\n|\u2028|\u2029/g,B=function(n){return"\\"+P[n]};d.template=function(o,n,t){!n&&t&&(n=t),n=d.defaults({},n,d.templateSettings);var e=RegExp([(n.escape||C).source,(n.interpolate||C).source,(n.evaluate||C).source].join("|")+"|$","g"),s=0,a="__p+='";o.replace(e,function(n,t,e,r,i){return a+=o.slice(s,i).replace(z,B),s=i+n.length,t?a+="'+\n((__t=("+t+"))==null?'':_.escape(__t))+\n'":e?a+="'+\n((__t=("+e+"))==null?'':__t)+\n'":r&&(a+="';\n"+r+"\n__p+='"),n}),a+="';\n",n.variable||(a="with(obj||{}){\n"+a+"}\n"),a="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+a+"return __p;\n";try{var r=new Function(n.variable||"obj","_",a)}catch(n){throw n.source=a,n}var i=function(n){return r.call(this,n,d)},c=n.variable||"obj";return i.source="function("+c+"){\n"+a+"}",i},d.chain=function(n){var t=d(n);return t._chain=!0,t};var U=function(n,t){return n._chain?d(t).chain():t};d.mixin=function(e){d.each(d.functions(e),function(n){var t=d[n]=e[n];d.prototype[n]=function(){var n=[this._wrapped];return i.apply(n,arguments),U(this,t.apply(d,n))}})},d.mixin(d),d.each(["pop","push","reverse","shift","sort","splice","unshift"],function(t){var e=r[t];d.prototype[t]=function(){var n=this._wrapped;return e.apply(n,arguments),"shift"!==t&&"splice"!==t||0!==n.length||delete n[0],U(this,n)}}),d.each(["concat","join","slice"],function(n){var t=r[n];d.prototype[n]=function(){return U(this,t.apply(this._wrapped,arguments))}}),d.prototype.value=function(){return this._wrapped},d.prototype.valueOf=d.prototype.toJSON=d.prototype.value,d.prototype.toString=function(){return""+this._wrapped}}).call(this)},{}],26:[function(n,t,e){arguments[4][19][0].apply(e,arguments)},{dup:19}],27:[function(n,t,e){t.exports=function(n){return n&&"object"==typeof n&&"function"==typeof n.copy&&"function"==typeof n.fill&&"function"==typeof n.readUInt8}},{}],28:[function(h,n,k){(function(r,i){var a=/%[sdj%]/g;k.format=function(n){if(!_(n)){for(var t=[],e=0;emax?max:x}function wobble(x1,y1,x2,y2){assert(_.all([x1,x2,y1,y2],_.isFinite),"x1,x2,y1,y2 must be numeric");var factor=Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1))/25,r1=clamp(Math.random(),.2,.8),r2=clamp(Math.random(),.2,.8),xfactor=Math.random()>.5?factor:-factor,yfactor=Math.random()>.5?factor:-factor,p1={x:(x2-x1)*r1+x1+xfactor,y:(y2-y1)*r1+y1+yfactor},p2={x:(x2-x1)*r2+x1-xfactor,y:(y2-y1)*r2+y1-yfactor};return"C"+p1.x.toFixed(1)+","+p1.y.toFixed(1)+" "+p2.x.toFixed(1)+","+p2.y.toFixed(1)+" "+x2.toFixed(1)+","+y2.toFixed(1)}function handRect(x,y,w,h){return assert(_.all([x,y,w,h],_.isFinite),"x, y, w, h must be numeric"),"M"+x+","+y+wobble(x,y,x+w,y)+wobble(x+w,y,x+w,y+h)+wobble(x+w,y+h,x,y+h)+wobble(x,y+h,x,y)}function handLine(x1,y1,x2,y2){return assert(_.all([x1,x2,y1,y2],_.isFinite),"x1,x2,y1,y2 must be numeric"),"M"+x1.toFixed(1)+","+y1.toFixed(1)+wobble(x1,y1,x2,y2)}Diagram.prototype.getActor=function(alias,name){alias=alias.trim();var i,actors=this.actors;for(i in actors)if(actors[i].alias==alias)return actors[i];return i=actors.push(new Diagram.Actor(alias,name||alias,actors.length)),actors[i-1]},Diagram.prototype.getActorWithAlias=function(input){input=input.trim();var alias,name,s=/([\s\S]+) as (\S+)$/im.exec(input);return s?(name=s[1].trim(),alias=s[2].trim()):name=alias=input,this.getActor(alias,name)},Diagram.prototype.setTitle=function(title){this.title=title},Diagram.prototype.addSignal=function(signal){this.signals.push(signal)},Diagram.Actor=function(alias,name,index){this.alias=alias,this.name=name,this.index=index},Diagram.Signal=function(actorA,signaltype,actorB,message){this.type="Signal",this.actorA=actorA,this.actorB=actorB,this.linetype=3&signaltype,this.arrowtype=signaltype>>2&3,this.message=message},Diagram.Signal.prototype.isSelf=function(){return this.actorA.index==this.actorB.index},Diagram.Note=function(actor,placement,message){if(this.type="Note",this.actor=actor,this.placement=placement,this.message=message,this.hasManyActors()&&actor[0]==actor[1])throw new Error("Note should be over two different actors")},Diagram.Note.prototype.hasManyActors=function(){return _.isArray(this.actor)},Diagram.unescape=function(s){return s.trim().replace(/^"(.*)"$/m,"$1").replace(/\\n/gm,"\n")},Diagram.LINETYPE={SOLID:0,DOTTED:1},Diagram.ARROWTYPE={FILLED:0,OPEN:1},Diagram.PLACEMENT={LEFTOF:0,RIGHTOF:1,OVER:2},"function"!=typeof Object.getPrototypeOf&&("object"==typeof"test".__proto__?Object.getPrototypeOf=function(object){return object.__proto__}:Object.getPrototypeOf=function(object){return object.constructor.prototype});var parser=function(){function Parser(){this.yy={}}var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[5,8,9,13,15,24],$V1=[1,13],$V2=[1,17],$V3=[24,29,30],parser={trace:function(){},yy:{},symbols_:{error:2,start:3,document:4,EOF:5,line:6,statement:7,NL:8,participant:9,actor_alias:10,signal:11,note_statement:12,title:13,message:14,note:15,placement:16,actor:17,over:18,actor_pair:19,",":20,left_of:21,right_of:22,signaltype:23,ACTOR:24,linetype:25,arrowtype:26,LINE:27,DOTLINE:28,ARROW:29,OPENARROW:30,MESSAGE:31,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",8:"NL",9:"participant",13:"title",15:"note",18:"over",20:",",21:"left_of",22:"right_of",24:"ACTOR",27:"LINE",28:"DOTLINE",29:"ARROW",30:"OPENARROW",31:"MESSAGE"},productions_:[0,[3,2],[4,0],[4,2],[6,1],[6,1],[7,2],[7,1],[7,1],[7,2],[12,4],[12,4],[19,1],[19,3],[16,1],[16,1],[11,4],[17,1],[10,1],[23,2],[23,1],[25,1],[25,1],[26,1],[26,1],[14,1]],performAction:function(yytext,yyleng,yylineno,yy,yystate,$$,_$){var $0=$$.length-1;switch(yystate){case 1:return yy.parser.yy;case 4:break;case 6:$$[$0];break;case 7:case 8:yy.parser.yy.addSignal($$[$0]);break;case 9:yy.parser.yy.setTitle($$[$0]);break;case 10:this.$=new Diagram.Note($$[$0-1],$$[$0-2],$$[$0]);break;case 11:this.$=new Diagram.Note($$[$0-1],Diagram.PLACEMENT.OVER,$$[$0]);break;case 12:case 20:this.$=$$[$0];break;case 13:this.$=[$$[$0-2],$$[$0]];break;case 14:this.$=Diagram.PLACEMENT.LEFTOF;break;case 15:this.$=Diagram.PLACEMENT.RIGHTOF;break;case 16:this.$=new Diagram.Signal($$[$0-3],$$[$0-2],$$[$0-1],$$[$0]);break;case 17:this.$=yy.parser.yy.getActor(Diagram.unescape($$[$0]));break;case 18:this.$=yy.parser.yy.getActorWithAlias(Diagram.unescape($$[$0]));break;case 19:this.$=$$[$0-1]|$$[$0]<<2;break;case 21:this.$=Diagram.LINETYPE.SOLID;break;case 22:this.$=Diagram.LINETYPE.DOTTED;break;case 23:this.$=Diagram.ARROWTYPE.FILLED;break;case 24:this.$=Diagram.ARROWTYPE.OPEN;break;case 25:this.$=Diagram.unescape($$[$0].substring(1))}},table:[o($V0,[2,2],{3:1,4:2}),{1:[3]},{5:[1,3],6:4,7:5,8:[1,6],9:[1,7],11:8,12:9,13:[1,10],15:[1,12],17:11,24:$V1},{1:[2,1]},o($V0,[2,3]),o($V0,[2,4]),o($V0,[2,5]),{10:14,24:[1,15]},o($V0,[2,7]),o($V0,[2,8]),{14:16,31:$V2},{23:18,25:19,27:[1,20],28:[1,21]},{16:22,18:[1,23],21:[1,24],22:[1,25]},o([20,27,28,31],[2,17]),o($V0,[2,6]),o($V0,[2,18]),o($V0,[2,9]),o($V0,[2,25]),{17:26,24:$V1},{24:[2,20],26:27,29:[1,28],30:[1,29]},o($V3,[2,21]),o($V3,[2,22]),{17:30,24:$V1},{17:32,19:31,24:$V1},{24:[2,14]},{24:[2,15]},{14:33,31:$V2},{24:[2,19]},{24:[2,23]},{24:[2,24]},{14:34,31:$V2},{14:35,31:$V2},{20:[1,36],31:[2,12]},o($V0,[2,16]),o($V0,[2,10]),o($V0,[2,11]),{17:37,24:$V1},{31:[2,13]}],defaultActions:{3:[2,1],24:[2,14],25:[2,15],27:[2,19],28:[2,23],29:[2,24],37:[2,13]},parseError:function(str,hash){if(!hash.recoverable)throw new Error(str);this.trace(str)},parse:function(input){function lex(){var token;return token=lexer.lex()||EOF,"number"!=typeof token&&(token=self.symbols_[token]||token),token}var self=this,stack=[0],vstack=[null],lstack=[],table=this.table,yytext="",yylineno=0,yyleng=0,recovering=0,TERROR=2,EOF=1,args=lstack.slice.call(arguments,1),lexer=Object.create(this.lexer),sharedState={yy:{}};for(var k in this.yy)Object.prototype.hasOwnProperty.call(this.yy,k)&&(sharedState.yy[k]=this.yy[k]);lexer.setInput(input,sharedState.yy),sharedState.yy.lexer=lexer,sharedState.yy.parser=this,"undefined"==typeof lexer.yylloc&&(lexer.yylloc={});var yyloc=lexer.yylloc;lstack.push(yyloc);var ranges=lexer.options&&lexer.options.ranges;"function"==typeof sharedState.yy.parseError?this.parseError=sharedState.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var symbol,preErrorSymbol,state,action,r,p,len,newState,expected,yyval={};;){if(state=stack[stack.length-1],this.defaultActions[state]?action=this.defaultActions[state]:(null!==symbol&&"undefined"!=typeof symbol||(symbol=lex()),action=table[state]&&table[state][symbol]),"undefined"==typeof action||!action.length||!action[0]){var errStr="";expected=[];for(p in table[state])this.terminals_[p]&&p>TERROR&&expected.push("'"+this.terminals_[p]+"'");errStr=lexer.showPosition?"Parse error on line "+(yylineno+1)+":\n"+lexer.showPosition()+"\nExpecting "+expected.join(", ")+", got '"+(this.terminals_[symbol]||symbol)+"'":"Parse error on line "+(yylineno+1)+": Unexpected "+(symbol==EOF?"end of input":"'"+(this.terminals_[symbol]||symbol)+"'"),this.parseError(errStr,{text:lexer.match,token:this.terminals_[symbol]||symbol,line:lexer.yylineno,loc:yyloc,expected:expected})}if(action[0]instanceof Array&&action.length>1)throw new Error("Parse Error: multiple actions possible at state: "+state+", token: "+symbol);switch(action[0]){case 1:stack.push(symbol),vstack.push(lexer.yytext),lstack.push(lexer.yylloc),stack.push(action[1]),symbol=null,preErrorSymbol?(symbol=preErrorSymbol,preErrorSymbol=null):(yyleng=lexer.yyleng,yytext=lexer.yytext,yylineno=lexer.yylineno,yyloc=lexer.yylloc,recovering>0&&recovering--);break;case 2:if(len=this.productions_[action[1]][1],yyval.$=vstack[vstack.length-len],yyval._$={first_line:lstack[lstack.length-(len||1)].first_line,last_line:lstack[lstack.length-1].last_line,first_column:lstack[lstack.length-(len||1)].first_column,last_column:lstack[lstack.length-1].last_column},ranges&&(yyval._$.range=[lstack[lstack.length-(len||1)].range[0],lstack[lstack.length-1].range[1]]),r=this.performAction.apply(yyval,[yytext,yyleng,yylineno,sharedState.yy,action[1],vstack,lstack].concat(args)),"undefined"!=typeof r)return r;len&&(stack=stack.slice(0,-1*len*2),vstack=vstack.slice(0,-1*len),lstack=lstack.slice(0,-1*len)),stack.push(this.productions_[action[1]][0]),vstack.push(yyval.$),lstack.push(yyval._$),newState=table[stack[stack.length-2]][stack[stack.length-1]],stack.push(newState);break;case 3:return!0}}return!0}},lexer=function(){var lexer={EOF:1,parseError:function(str,hash){if(!this.yy.parser)throw new Error(str);this.yy.parser.parseError(str,hash)},setInput:function(input,yy){return this.yy=yy||this.yy||{},this._input=input,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var ch=this._input[0];this.yytext+=ch,this.yyleng++,this.offset++,this.match+=ch,this.matched+=ch;var lines=ch.match(/(?:\r\n?|\n).*/g);return lines?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ch},unput:function(ch){var len=ch.length,lines=ch.split(/(?:\r\n?|\n)/g);this._input=ch+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-len),this.offset-=len;var oldLines=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),lines.length-1&&(this.yylineno-=lines.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:lines?(lines.length===oldLines.length?this.yylloc.first_column:0)+oldLines[oldLines.length-lines.length].length-lines[0].length:this.yylloc.first_column-len},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-len]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(n){this.unput(this.match.slice(n))},pastInput:function(){var past=this.matched.substr(0,this.matched.length-this.match.length);return(past.length>20?"...":"")+past.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var next=this.match;return next.length<20&&(next+=this._input.substr(0,20-next.length)),(next.substr(0,20)+(next.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var pre=this.pastInput(),c=new Array(pre.length+1).join("-");return pre+this.upcomingInput()+"\n"+c+"^"},test_match:function(match,indexed_rule){var token,lines,backup;if(this.options.backtrack_lexer&&(backup={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(backup.yylloc.range=this.yylloc.range.slice(0))),lines=match[0].match(/(?:\r\n?|\n).*/g),lines&&(this.yylineno+=lines.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:lines?lines[lines.length-1].length-lines[lines.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+match[0].length},this.yytext+=match[0],this.match+=match[0],this.matches=match,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(match[0].length),this.matched+=match[0],token=this.performAction.call(this,this.yy,this,indexed_rule,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),token)return token;if(this._backtrack){for(var k in backup)this[k]=backup[k];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var token,match,tempMatch,index;this._more||(this.yytext="",this.match="");for(var rules=this._currentRules(),i=0;imatch[0].length)){if(match=tempMatch,index=i,this.options.backtrack_lexer){if(token=this.test_match(tempMatch,rules[i]),token!==!1)return token;if(this._backtrack){match=!1;continue}return!1}if(!this.options.flex)break}return match?(token=this.test_match(match,rules[index]),token!==!1&&token):""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var r=this.next();return r?r:this.lex()},begin:function(condition){this.conditionStack.push(condition)},popState:function(){var n=this.conditionStack.length-1;return n>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(n){return n=this.conditionStack.length-1-Math.abs(n||0),n>=0?this.conditionStack[n]:"INITIAL"},pushState:function(condition){this.begin(condition)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(yy,yy_,$avoiding_name_collisions,YY_START){switch($avoiding_name_collisions){case 0:return 8;case 1:break;case 2:break;case 3:return 9;case 4:return 21;case 5:return 22;case 6:return 18;case 7:return 15;case 8:return 13;case 9:return 20;case 10:return 24;case 11:return 24;case 12:return 28;case 13:return 27;case 14:return 30;case 15:return 29;case 16:return 31;case 17:return 5;case 18:return"INVALID"}},rules:[/^(?:[\r\n]+)/i,/^(?:\s+)/i,/^(?:#[^\r\n]*)/i,/^(?:participant\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:title\b)/i,/^(?:,)/i,/^(?:[^\->:,\r\n"]+)/i,/^(?:"[^"]+")/i,/^(?:--)/i,/^(?:-)/i,/^(?:>>)/i,/^(?:>)/i,/^(?:[^\r\n]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18],inclusive:!0}}};return lexer}();return parser.lexer=lexer,Parser.prototype=parser,parser.Parser=Parser,new Parser}();"undefined"!=typeof require&&"undefined"!=typeof exports&&(exports.parser=parser,exports.Parser=parser.Parser,exports.parse=function(){return parser.parse.apply(parser,arguments)},exports.main=function(args){args[1]||(console.log("Usage: "+args[0]+" FILE"),process.exit(1));var source=require("fs").readFileSync(require("path").normalize(args[1]),"utf8");return exports.parser.parse(source)},"undefined"!=typeof module&&require.main===module&&exports.main(process.argv.slice(1))),ParseError.prototype=new Error,Diagram.ParseError=ParseError,Diagram.parse=function(input){parser.yy=new Diagram,parser.yy.parseError=function(message,hash){throw new ParseError(message,hash)};var diagram=parser.parse(input);return delete diagram.parseError,diagram};var DIAGRAM_MARGIN=10,ACTOR_MARGIN=10,ACTOR_PADDING=10,SIGNAL_MARGIN=5,SIGNAL_PADDING=5,NOTE_MARGIN=10,NOTE_PADDING=5,NOTE_OVERLAP=15,TITLE_MARGIN=0,TITLE_PADDING=5,SELF_SIGNAL_WIDTH=20,PLACEMENT=Diagram.PLACEMENT,LINETYPE=Diagram.LINETYPE,ARROWTYPE=Diagram.ARROWTYPE,ALIGN_LEFT=0,ALIGN_CENTER=1;AssertException.prototype.toString=function(){return"AssertException: "+this.message},String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}),Diagram.themes={};var BaseTheme=function(diagram,options){this.init(diagram,options)};if(_.extend(BaseTheme.prototype,{init:function(diagram,options){this.diagram=diagram,this.actorsHeight_=0,this.signalsHeight_=0,this.title_=void 0},setupPaper:function(container){},draw:function(container){this.setupPaper(container),this.layout();var titleHeight=this.title_?this.title_.height:0,y=DIAGRAM_MARGIN+titleHeight;this.drawTitle(),this.drawActors(y),this.drawSignals(y+this.actorsHeight_)},layout:function(){function actorEnsureDistance(a,b,d){assert(a=actors.length?(a=actors[a],a.paddingRight=Math.max(d,a.paddingRight)):(a=actors[a],a.distances[b]=Math.max(d,a.distances[b]?a.distances[b]:0))}var diagram=this.diagram,font=this.font_,actors=diagram.actors,signals=diagram.signals;if(diagram.width=0,diagram.height=0,diagram.title){var title=this.title_={},bb=this.textBBox(diagram.title,font);title.textBB=bb,title.message=diagram.title,title.width=bb.width+2*(TITLE_PADDING+TITLE_MARGIN),title.height=bb.height+2*(TITLE_PADDING+TITLE_MARGIN),title.x=DIAGRAM_MARGIN,title.y=DIAGRAM_MARGIN,diagram.width+=title.width,diagram.height+=title.height}_.each(actors,function(a){var bb=this.textBBox(a.name,font);a.textBB=bb,a.x=0,a.y=0,a.width=bb.width+2*(ACTOR_PADDING+ACTOR_MARGIN),a.height=bb.height+2*(ACTOR_PADDING+ACTOR_MARGIN),a.distances=[],a.paddingRight=0,this.actorsHeight_=Math.max(a.height,this.actorsHeight_)},this),_.each(signals,function(s){var a,b,bb=this.textBBox(s.message,font);s.textBB=bb,s.width=bb.width,s.height=bb.height;var extraWidth=0;if("Signal"==s.type)s.width+=2*(SIGNAL_MARGIN+SIGNAL_PADDING),s.height+=2*(SIGNAL_MARGIN+SIGNAL_PADDING),s.isSelf()?(a=s.actorA.index,b=a+1,s.width+=SELF_SIGNAL_WIDTH):(a=Math.min(s.actorA.index,s.actorB.index),b=Math.max(s.actorA.index,s.actorB.index));else{if("Note"!=s.type)throw new Error("Unhandled signal type:"+s.type);if(s.width+=2*(NOTE_MARGIN+NOTE_PADDING),s.height+=2*(NOTE_MARGIN+NOTE_PADDING),extraWidth=2*ACTOR_MARGIN,s.placement==PLACEMENT.LEFTOF)b=s.actor.index,a=b-1;else if(s.placement==PLACEMENT.RIGHTOF)a=s.actor.index,b=a+1;else if(s.placement==PLACEMENT.OVER&&s.hasManyActors())a=Math.min(s.actor[0].index,s.actor[1].index),b=Math.max(s.actor[0].index,s.actor[1].index),extraWidth=-(2*NOTE_PADDING+2*NOTE_OVERLAP);else if(s.placement==PLACEMENT.OVER)return a=s.actor.index,actorEnsureDistance(a-1,a,s.width/2),actorEnsureDistance(a,a+1,s.width/2),void(this.signalsHeight_+=s.height)}actorEnsureDistance(a,b,s.width+extraWidth),this.signalsHeight_+=s.height},this);var actorsX=0;return _.each(actors,function(a){a.x=Math.max(actorsX,a.x),_.each(a.distances,function(distance,b){"undefined"!=typeof distance&&(b=actors[b],distance=Math.max(distance,a.width/2,b.width/2),b.x=Math.max(b.x,a.x+a.width/2+distance-b.width/2))}),actorsX=a.x+a.width+a.paddingRight},this),diagram.width=Math.max(actorsX,diagram.width),diagram.width+=2*DIAGRAM_MARGIN,diagram.height+=2*DIAGRAM_MARGIN+2*this.actorsHeight_+this.signalsHeight_,this},textBBox:function(text,font){},drawTitle:function(){var title=this.title_;title&&this.drawTextBox(title,title.message,TITLE_MARGIN,TITLE_PADDING,this.font_,ALIGN_LEFT)},drawActors:function(offsetY){var y=offsetY;_.each(this.diagram.actors,function(a){this.drawActor(a,y,this.actorsHeight_),this.drawActor(a,y+this.actorsHeight_+this.signalsHeight_,this.actorsHeight_);var aX=getCenterX(a);this.drawLine(aX,y+this.actorsHeight_-ACTOR_MARGIN,aX,y+this.actorsHeight_+ACTOR_MARGIN+this.signalsHeight_)},this)},drawActor:function(actor,offsetY,height){actor.y=offsetY,actor.height=height,this.drawTextBox(actor,actor.name,ACTOR_MARGIN,ACTOR_PADDING,this.font_,ALIGN_CENTER)},drawSignals:function(offsetY){var y=offsetY;_.each(this.diagram.signals,function(s){"Signal"==s.type?s.isSelf()?this.drawSelfSignal(s,y):this.drawSignal(s,y):"Note"==s.type&&this.drawNote(s,y),y+=s.height},this)},drawSelfSignal:function(signal,offsetY){assert(signal.isSelf(),"signal must be a self signal");var textBB=signal.textBB,aX=getCenterX(signal.actorA),x=aX+SELF_SIGNAL_WIDTH+SIGNAL_PADDING,y=offsetY+SIGNAL_PADDING+signal.height/2+textBB.y;this.drawText(x,y,signal.message,this.font_,ALIGN_LEFT);var y1=offsetY+SIGNAL_MARGIN+SIGNAL_PADDING,y2=y1+signal.height-2*SIGNAL_MARGIN-SIGNAL_PADDING;this.drawLine(aX,y1,aX+SELF_SIGNAL_WIDTH,y1,signal.linetype),this.drawLine(aX+SELF_SIGNAL_WIDTH,y1,aX+SELF_SIGNAL_WIDTH,y2,signal.linetype),this.drawLine(aX+SELF_SIGNAL_WIDTH,y2,aX,y2,signal.linetype,signal.arrowtype)},drawSignal:function(signal,offsetY){var aX=getCenterX(signal.actorA),bX=getCenterX(signal.actorB),x=(bX-aX)/2+aX,y=offsetY+SIGNAL_MARGIN+2*SIGNAL_PADDING;this.drawText(x,y,signal.message,this.font_,ALIGN_CENTER),y=offsetY+signal.height-SIGNAL_MARGIN-SIGNAL_PADDING,this.drawLine(aX,y,bX,y,signal.linetype,signal.arrowtype)},drawNote:function(note,offsetY){note.y=offsetY;var actorA=note.hasManyActors()?note.actor[0]:note.actor,aX=getCenterX(actorA);switch(note.placement){case PLACEMENT.RIGHTOF:note.x=aX+ACTOR_MARGIN;break;case PLACEMENT.LEFTOF:note.x=aX-ACTOR_MARGIN-note.width;break;case PLACEMENT.OVER:if(note.hasManyActors()){var bX=getCenterX(note.actor[1]),overlap=NOTE_OVERLAP+NOTE_PADDING;note.x=Math.min(aX,bX)-overlap,note.width=Math.max(aX,bX)+overlap-note.x}else note.x=aX-note.width/2;break;default:throw new Error("Unhandled note placement: "+note.placement)}return this.drawTextBox(note,note.message,NOTE_MARGIN,NOTE_PADDING,this.font_,ALIGN_LEFT)},drawTextBox:function(box,text,margin,padding,font,align){var x=box.x+margin,y=box.y+margin,w=box.width-2*margin,h=box.height-2*margin;return this.drawRect(x,y,w,h),align==ALIGN_CENTER?(x=getCenterX(box),y=getCenterY(box)):(x+=padding,y+=padding),this.drawText(x,y,text,font,align)}}),"undefined"!=typeof Snap){var xmlns="http://www.w3.org/2000/svg",LINE={stroke:"#000000","stroke-width":2,fill:"none"},RECT={stroke:"#000000","stroke-width":2,fill:"#fff"},LOADED_FONTS={},SnapTheme=function(diagram,options,resume){_.defaults(options,{"css-class":"simple","font-size":16,"font-family":"Andale Mono, monospace"}),this.init(diagram,options,resume)};_.extend(SnapTheme.prototype,BaseTheme.prototype,{init:function(diagram,options,resume){BaseTheme.prototype.init.call(this,diagram),this.paper_=void 0,this.cssClass_=options["css-class"]||void 0,this.font_={"font-size":options["font-size"],"font-family":options["font-family"]};var a=this.arrowTypes_={};a[ARROWTYPE.FILLED]="Block",a[ARROWTYPE.OPEN]="Open";var l=this.lineTypes_={};l[LINETYPE.SOLID]="",l[LINETYPE.DOTTED]="6,2";var that=this;this.waitForFont(function(){resume(that)})},waitForFont:function(callback){var fontFamily=this.font_["font-family"];if("undefined"==typeof WebFont)throw new Error("WebFont is required (https://github.com/typekit/webfontloader).");return LOADED_FONTS[fontFamily]?void callback():void WebFont.load({custom:{families:[fontFamily]},classes:!1,active:function(){LOADED_FONTS[fontFamily]=!0,callback()},inactive:function(){LOADED_FONTS[fontFamily]=!0,callback()}})},addDescription:function(svg,description){var desc=document.createElementNS(xmlns,"desc");desc.appendChild(document.createTextNode(description)),svg.appendChild(desc)},setupPaper:function(container){var svg=document.createElementNS(xmlns,"svg");container.appendChild(svg),this.addDescription(svg,this.diagram.title||""),this.paper_=Snap(svg),this.paper_.addClass("sequence"),this.cssClass_&&this.paper_.addClass(this.cssClass_),this.beginGroup();var a=this.arrowMarkers_={},arrow=this.paper_.path("M 0 0 L 5 2.5 L 0 5 z");a[ARROWTYPE.FILLED]=arrow.marker(0,0,5,5,5,2.5).attr({id:"markerArrowBlock"}),arrow=this.paper_.path("M 9.6,8 1.92,16 0,13.7 5.76,8 0,2.286 1.92,0 9.6,8 z"),a[ARROWTYPE.OPEN]=arrow.marker(0,0,9.6,16,9.6,8).attr({markerWidth:"4",id:"markerArrowOpen"})},layout:function(){BaseTheme.prototype.layout.call(this),this.paper_.attr({width:this.diagram.width+"px",height:this.diagram.height+"px"})},textBBox:function(text,font){var t=this.createText(text,font),bb=t.getBBox();return t.remove(),bb},pushToStack:function(element){return this._stack.push(element),element},beginGroup:function(){this._stack=[]},finishGroup:function(){var g=this.paper_.group.apply(this.paper_,this._stack);return this.beginGroup(),g},createText:function(text,font){text=_.invoke(text.split("\n"),"trim");var t=this.paper_.text(0,0,text);return t.attr(font||{}),text.length>1&&t.selectAll("tspan:nth-child(n+2)").attr({dy:"1.2em",x:0}),t},drawLine:function(x1,y1,x2,y2,linetype,arrowhead){var line=this.paper_.line(x1,y1,x2,y2).attr(LINE);return void 0!==linetype&&line.attr("strokeDasharray",this.lineTypes_[linetype]),void 0!==arrowhead&&line.attr("markerEnd",this.arrowMarkers_[arrowhead]),this.pushToStack(line)},drawRect:function(x,y,w,h){var rect=this.paper_.rect(x,y,w,h).attr(RECT);return this.pushToStack(rect)},drawText:function(x,y,text,font,align){var t=this.createText(text,font),bb=t.getBBox();return align==ALIGN_CENTER&&(x-=bb.width/2,y-=bb.height/2),t.attr({x:x-bb.x,y:y-bb.y}),t.selectAll("tspan").attr({x:x}),this.pushToStack(t),t},drawTitle:function(){return this.beginGroup(),BaseTheme.prototype.drawTitle.call(this),this.finishGroup().addClass("title")},drawActor:function(actor,offsetY,height){return this.beginGroup(),BaseTheme.prototype.drawActor.call(this,actor,offsetY,height),this.finishGroup().addClass("actor")},drawSignal:function(signal,offsetY){return this.beginGroup(),BaseTheme.prototype.drawSignal.call(this,signal,offsetY),this.finishGroup().addClass("signal")},drawSelfSignal:function(signal,offsetY){return this.beginGroup(),BaseTheme.prototype.drawSelfSignal.call(this,signal,offsetY),this.finishGroup().addClass("signal")},drawNote:function(note,offsetY){return this.beginGroup(),BaseTheme.prototype.drawNote.call(this,note,offsetY),this.finishGroup().addClass("note")}});var SnapHandTheme=function(diagram,options,resume){_.defaults(options,{"css-class":"hand","font-size":16,"font-family":"danielbd"}),this.init(diagram,options,resume)};_.extend(SnapHandTheme.prototype,SnapTheme.prototype,{drawLine:function(x1,y1,x2,y2,linetype,arrowhead){var line=this.paper_.path(handLine(x1,y1,x2,y2)).attr(LINE);return void 0!==linetype&&line.attr("strokeDasharray",this.lineTypes_[linetype]),void 0!==arrowhead&&line.attr("markerEnd",this.arrowMarkers_[arrowhead]),this.pushToStack(line)},drawRect:function(x,y,w,h){var rect=this.paper_.path(handRect(x,y,w,h)).attr(RECT);return this.pushToStack(rect)}}),registerTheme("snapSimple",SnapTheme),registerTheme("snapHand",SnapHandTheme)}if("undefined"!=typeof Raphael){var LINE={stroke:"#000000","stroke-width":2,fill:"none"},RECT={stroke:"#000000","stroke-width":2,fill:"#fff"};Raphael.fn.line=function(x1,y1,x2,y2){return assert(_.all([x1,x2,y1,y2],_.isFinite),"x1,x2,y1,y2 must be numeric"),this.path("M{0},{1} L{2},{3}",x1,y1,x2,y2)};var RaphaelTheme=function(diagram,options,resume){this.init(diagram,_.defaults(options,{"font-size":16,"font-family":"Andale Mono, monospace"}),resume)};_.extend(RaphaelTheme.prototype,BaseTheme.prototype,{init:function(diagram,options,resume){BaseTheme.prototype.init.call(this,diagram),this.paper_=void 0,this.font_={"font-size":options["font-size"],"font-family":options["font-family"]};var a=this.arrowTypes_={};a[ARROWTYPE.FILLED]="block",a[ARROWTYPE.OPEN]="open";var l=this.lineTypes_={};l[LINETYPE.SOLID]="",l[LINETYPE.DOTTED]="-",resume(this)},setupPaper:function(container){this.paper_=new Raphael(container,320,200),this.paper_.setStart()},draw:function(container){BaseTheme.prototype.draw.call(this,container),this.paper_.setFinish()},layout:function(){BaseTheme.prototype.layout.call(this),this.paper_.setSize(this.diagram.width,this.diagram.height)},cleanText:function(text){return text=_.invoke(text.split("\n"),"trim"),text.join("\n")},textBBox:function(text,font){text=this.cleanText(text),font=font||{};var p;font.obj_?p=this.paper_.print(0,0,text,font.obj_,font["font-size"]):(p=this.paper_.text(0,0,text),p.attr(font));var bb=p.getBBox();return p.remove(),bb},drawLine:function(x1,y1,x2,y2,linetype,arrowhead){var line=this.paper_.line(x1,y1,x2,y2).attr(LINE);return void 0!==arrowhead&&line.attr("arrow-end",this.arrowTypes_[arrowhead]+"-wide-long"),void 0!==arrowhead&&line.attr("stroke-dasharray",this.lineTypes_[linetype]),line},drawRect:function(x,y,w,h){return this.paper_.rect(x,y,w,h).attr(RECT)},drawText:function(x,y,text,font,align){text=this.cleanText(text),font=font||{},align=align||ALIGN_LEFT;var paper=this.paper_,bb=this.textBBox(text,font);align==ALIGN_CENTER&&(x-=bb.width/2,y-=bb.height/2);var t;return font.obj_?t=paper.print(x-bb.x,y-bb.y,text,font.obj_,font["font-size"]):(t=paper.text(x-bb.x-bb.width/2,y-bb.y,text),t.attr(font),t.attr({"text-anchor":"start"})),t}});var RaphaelHandTheme=function(diagram,options,resume){this.init(diagram,_.defaults(options,{"font-size":16,"font-family":"daniel"}),resume)};_.extend(RaphaelHandTheme.prototype,RaphaelTheme.prototype,{setupPaper:function(container){RaphaelTheme.prototype.setupPaper.call(this,container),this.font_.obj_=this.paper_.getFont("daniel")},drawLine:function(x1,y1,x2,y2,linetype,arrowhead){var line=this.paper_.path(handLine(x1,y1,x2,y2)).attr(LINE);return void 0!==arrowhead&&line.attr("arrow-end",this.arrowTypes_[arrowhead]+"-wide-long"),void 0!==arrowhead&&line.attr("stroke-dasharray",this.lineTypes_[linetype]),line},drawRect:function(x,y,w,h){return this.paper_.path(handRect(x,y,w,h)).attr(RECT)}}),registerTheme("raphaelSimple",RaphaelTheme),registerTheme("raphaelHand",RaphaelHandTheme)}if("undefined"!=typeof Raphael&&Raphael.registerFont({w:209,face:{"font-family":"Daniel","font-weight":700,"font-stretch":"normal","units-per-em":"360","panose-1":"2 11 8 0 0 0 0 0 0 0",ascent:"288",descent:"-72","x-height":"7",bbox:"-92.0373 -310.134 519 184.967","underline-thickness":"3.51562","underline-position":"-25.1367","unicode-range":"U+0009-U+F002"},glyphs:{" ":{w:179},"\t":{w:179},"\r":{w:179},"!":{d:"66,-306v9,3,18,11,19,24v-18,73,-20,111,-37,194v0,10,2,34,-12,34v-12,0,-18,-9,-18,-28v0,-85,23,-136,38,-214v1,-7,4,-10,10,-10xm25,-30v15,-1,28,34,5,35v-11,-1,-38,-36,-5,-35",w:115},'"':{d:"91,-214v-32,3,-25,-40,-20,-68v3,-16,7,-25,12,-27v35,13,14,56,8,95xm8,-231v4,-31,1,-40,18,-75v37,7,11,51,11,79v-3,3,-4,8,-5,13v-17,4,-16,-10,-24,-17",w:117},"#":{d:"271,-64v-30,26,-96,-7,-102,51v-6,2,-13,2,-24,-2v-2,-11,10,-21,2,-28v-14,5,-48,0,-48,22v0,23,-11,14,-29,10v-7,-6,6,-19,-1,-24r-32,4v-19,-8,-15,-24,5,-28r33,-6v4,0,24,-23,11,-27v-26,0,-63,14,-74,-10v3,-1,9,-17,16,-10v15,-8,81,4,89,-30v8,-14,16,-34,24,-38v23,9,24,38,5,49v37,24,55,-38,72,-43v19,10,20,23,-1,45v2,8,23,1,29,4v3,3,6,6,10,11v-14,13,-20,12,-45,12v-17,0,-16,17,-19,29v18,-7,49,3,67,-2v4,0,8,4,12,11xm161,-104v-30,-1,-44,10,-44,37v14,1,24,0,40,-5v0,-1,3,-10,8,-26v0,-4,-1,-6,-4,-6",w:285},$:{d:"164,-257v29,4,1,42,-3,50v5,5,38,13,41,24v8,4,6,15,-2,21v-18,3,-36,-17,-49,-17v-17,1,-31,40,-28,48v5,4,8,8,9,10v13,1,35,37,28,44v-10,21,-36,20,-65,28v-10,10,-12,40,-17,51v-9,-3,-28,1,-18,-17v0,-13,5,-24,-1,-35v-18,1,-59,-10,-42,-29v21,0,56,16,55,-16v5,-4,9,-18,9,-26v-14,-15,-55,-41,-53,-65v2,-33,56,-19,98,-26v10,-14,31,-43,38,-45xm93,-152v11,-10,15,-15,14,-29v-17,-3,-37,1,-43,6v10,12,20,19,29,23xm111,-103v-8,1,-11,12,-10,22v10,0,28,2,27,-8v0,-4,-13,-15,-17,-14",w:225},"%":{d:"181,-96v24,-7,67,-13,104,1v14,18,21,19,22,44v-13,43,-99,61,-146,36v-9,-9,-22,-11,-32,-29v0,-27,24,-53,52,-52xm139,-185v-9,68,-138,73,-131,-5v0,-3,3,-9,9,-17v13,1,27,1,17,-16v5,-39,63,0,93,-6v36,1,80,-9,102,11v15,32,12,32,-8,56v-16,21,-103,78,-152,125r-14,28v-23,11,-25,-7,-29,-20v34,-71,133,-98,171,-162v-13,-12,-52,-5,-61,1v0,1,1,3,3,5xm38,-190v0,34,55,29,70,8v0,-14,-20,-11,-32,-14v-14,-3,-24,-9,-40,-10v1,0,5,11,2,16xm172,-53v12,27,90,18,102,-5v-18,-7,-32,-10,-40,-10v-29,3,-57,-4,-62,15", +w:308},"&":{d:"145,-82v17,-8,47,-15,71,-26v13,2,25,12,9,23v-23,7,-40,16,-53,27r0,6v13,8,30,21,36,38v0,8,-4,12,-11,12v-19,0,-43,-39,-59,-44v-30,12,-65,29,-97,32v-32,3,-45,-41,-23,-63v21,-20,52,-26,70,-48v-4,-31,-12,-47,9,-73v13,-16,20,-29,23,-39v15,-15,32,-22,51,-22v30,9,62,64,32,96v-2,3,-47,42,-69,48v-15,8,-11,9,0,22v6,7,10,11,11,11xm114,-138v25,-13,62,-38,74,-62v0,-9,-10,-31,-20,-29v-28,7,-60,42,-60,75v0,10,2,15,6,16xm99,-91v-18,10,-54,18,-59,45v26,5,61,-12,77,-22v-1,-5,-13,-23,-18,-23",w:253},"'":{d:"36,-182v-36,7,-34,-61,-17,-80v15,1,21,19,21,20r-1,-1v0,0,-1,12,-5,35v1,5,3,17,2,26",w:63},"(":{d:"130,-306v13,2,23,43,-1,43v-49,43,-77,77,-90,148v5,49,27,67,64,101v4,14,5,6,2,19r-15,0v-35,-17,-79,-58,-79,-120v0,-58,66,-176,119,-191",w:120},")":{d:"108,-138v-2,73,-48,120,-98,153v-17,-5,-16,-20,-6,-31v52,-64,73,-62,74,-135v1,-42,-40,-98,-58,-128v0,-5,-1,-12,-2,-22v18,-18,25,0,42,27v25,39,50,66,48,136",w:120},"*":{d:"121,-271v15,-5,36,-8,40,9v-5,10,-31,19,-47,31v0,11,34,43,14,53v-18,8,-24,-24,-34,-20v-4,10,-4,19,-12,41v-25,7,-15,-30,-17,-47v-13,-1,-17,9,-46,30r-10,0v-20,-32,37,-43,54,-64v-10,-11,-36,-33,-16,-51v3,0,14,8,33,24v8,-10,26,-39,32,-42v14,7,15,23,9,36",w:177},"+":{d:"163,-64v-7,22,-65,2,-77,21v-2,10,-6,21,-11,35v-20,4,-21,-12,-19,-29v3,-23,-44,6,-39,-27v-8,-22,36,-8,49,-18v8,-13,6,-36,24,-40v19,-4,14,32,11,39v18,3,19,2,54,8v2,1,5,5,8,11",w:170},",":{d:"25,63v-26,21,-48,-2,-22,-24v14,-12,35,-40,35,-69v3,-2,3,-11,12,-9v35,17,5,88,-25,102",w:97},"-":{d:"57,-94v19,4,55,-5,54,17v-15,23,-54,20,-91,15v-4,2,-13,-10,-11,-16v-1,-22,28,-15,48,-16",w:124},".":{d:"40,-48v21,20,21,44,-4,44v-33,0,-26,-24,-10,-44r14,0",w:67},"/":{d:"21,20v-22,-45,21,-95,41,-126v38,-57,115,-158,193,-201v2,0,4,3,7,11v11,29,-15,34,-25,55v-81,56,-189,208,-197,261r-19,0",w:275},0:{d:"78,-237v70,-47,269,-41,270,59v0,34,-11,53,-29,76v-13,35,-30,32,-85,64v-6,2,-10,6,-7,8v-73,14,-98,38,-173,1v-7,-13,-52,-48,-46,-88v9,-57,27,-75,70,-120xm123,-38v100,0,202,-46,195,-153v-32,-55,-144,-73,-211,-35v-16,34,-68,54,-53,108v6,25,1,22,-3,39v6,24,41,41,72,41",w:353},1:{d:"39,-208v0,-14,6,-59,29,-39v3,4,6,13,10,24r-22,128r8,87v-4,6,-9,3,-16,2v-44,-38,-9,-137,-9,-202",w:93},2:{d:"88,-35v47,-10,119,-24,168,-9v0,12,-23,13,-35,16v1,1,3,1,5,1v-74,8,-118,23,-194,23v-14,0,-20,-13,-21,-28v55,-40,83,-61,123,-104v26,-13,65,-67,71,-102v-1,-9,-11,-16,-22,-16v-20,-1,-120,29,-156,49v-10,-2,-30,-20,-10,-28v50,-21,111,-51,178,-48v25,10,44,22,36,39v12,30,-19,64,-34,83v-39,48,-37,39,-115,109v0,5,-3,8,-8,11v4,3,8,4,14,4",w:265},3:{d:"188,-282v34,-10,74,25,47,51v-19,32,-55,50,-92,70v28,14,116,25,108,70v8,14,-49,40,-63,48v-29,9,-130,22,-168,42v-6,-5,-19,-7,-12,-22v56,-36,175,-21,210,-76v-9,-20,-88,-42,-97,-33v-20,-1,-41,2,-56,-7r5,-21v56,-25,103,-36,137,-78v1,-1,2,-5,4,-11v-15,-14,-56,7,-79,0v-10,9,-73,22,-92,31v-11,-4,-28,-23,-13,-30v50,-22,96,-26,154,-37v0,-1,8,3,7,3",w:260},4:{d:"79,-249v-7,17,-29,75,-33,96v0,6,3,8,8,8v43,-2,111,6,141,-6v17,-47,20,-100,63,-148v9,4,16,7,21,10v-17,31,-44,95,-51,141v7,4,24,-4,23,10v-1,16,-29,12,-31,23v-10,22,-9,69,-7,103v-3,2,-7,5,-10,9v-47,-11,-23,-74,-16,-114v0,-4,-2,-6,-7,-6v-65,2,-89,13,-162,4v-22,-22,-2,-53,5,-76v16,-15,17,-57,35,-70v6,-1,21,11,21,16",w:267},5:{d:"185,-272v30,7,45,-8,53,18v1,16,-17,18,-34,14v0,0,-95,-11,-129,1v-6,9,-24,33,-29,54v76,10,171,5,214,47v11,11,22,30,5,52v-14,12,-30,14,-34,27v-26,11,-141,63,-157,60v-16,-2,-25,-19,-4,-27v48,-18,128,-39,170,-86v4,-14,-65,-41,-85,-41r-92,0v-10,-4,-66,-1,-57,-23v0,-23,23,-51,35,-83v11,-28,133,-10,144,-13",w:284},6:{d:"70,-64v9,-51,63,-74,123,-71v43,2,109,3,111,41r-25,47v0,1,1,2,2,3v-5,0,-39,10,-41,20v-15,3,-22,4,-22,11v-39,1,-77,20,-119,13v-42,-7,-35,-9,-77,-46v-56,-118,94,-201,176,-229v7,0,21,8,20,15v-2,17,-23,15,-43,24v-69,31,-119,72,-134,145v-5,25,36,68,78,64v59,-6,128,-18,153,-61v-7,-14,-13,-9,-32,-21v-67,-15,-118,-5,-150,43r0,12v-13,4,-17,-3,-20,-10",w:310},7:{d:"37,-228v33,-14,173,-17,181,-19v28,-1,24,31,9,45v-17,15,-45,49,-59,69v-17,26,-55,67,-61,113v-10,13,-9,14,-14,20v-33,-13,-20,-25,-11,-53v16,-48,73,-115,109,-156v2,-7,5,-14,-10,-12v-26,4,-54,6,-76,13v-23,-5,-83,31,-94,-9v2,-8,18,-19,26,-11",w:245},8:{d:"57,-236v40,-50,166,-51,213,-10v22,28,10,63,-22,78r-35,17v8,5,54,24,53,44v-5,14,-4,33,-18,42v-13,13,-35,18,-44,34v-60,27,-190,49,-194,-42v7,-41,17,-54,59,-70r0,-4v-32,-9,-73,-62,-26,-85v4,0,8,-2,14,-4xm142,-160v24,-2,160,-31,99,-72v-28,-18,-108,-33,-146,-5v-16,12,-28,30,-33,59v24,12,37,20,80,18xm41,-62v30,65,189,6,199,-37v3,-14,-60,-30,-74,-30v-70,0,-118,10,-125,67",w:290},9:{d:"11,-192v15,-49,119,-61,161,-23v16,15,27,55,11,79v-20,62,-51,79,-96,118v-10,4,-45,27,-50,6v9,-15,66,-52,98,-99v-7,-7,-8,-3,-25,0v-49,-11,-96,-25,-99,-81xm145,-131v7,-5,13,-34,13,-41v-2,-51,-104,-38,-114,-6v-2,10,37,35,46,35v23,1,43,-1,55,12",w:198},":":{d:"39,-125v15,-8,40,-1,40,15v0,15,-6,22,-19,22v-13,0,-29,-21,-21,-37xm66,-17v-8,27,-51,19,-46,-8v-1,-6,8,-22,14,-20v29,0,30,6,32,28",w:95},";":{d:"56,-93v2,-30,37,-22,40,2v0,2,-1,7,-3,15v-13,8,-15,6,-27,4xm64,-44v11,-11,30,-4,32,14v-21,39,-63,71,-92,85v-5,0,-11,-2,-18,-8v11,-23,36,-36,50,-61v11,-7,19,-20,28,-30",w:107},"<":{d:"166,-202v12,0,29,15,24,29v0,4,-119,64,-120,73v15,21,89,64,91,86v2,29,-18,12,-30,15v-27,-29,-59,-54,-95,-75v-18,-10,-25,-13,-24,-41",w:176},"=":{d:"125,-121v18,7,55,-9,69,14v0,17,-45,26,-135,26v-18,0,-27,-7,-27,-21v-1,-37,60,-5,93,-19xm138,-71v20,0,48,-1,50,16v-13,24,-86,32,-131,29v-29,-2,-43,-10,-43,-24v-7,-23,36,-14,39,-17v27,6,57,-4,85,-4",w:196},">":{d:"4,-14v20,-48,77,-59,118,-94v-16,-19,-58,-52,-81,-75v-11,-7,-15,-38,-1,-40v33,16,83,71,121,105v26,23,-6,35,-41,53v-29,16,-56,28,-73,54v-21,15,-16,20,-34,15v-3,0,-9,-16,-9,-18",w:174},"?":{d:"105,-291v57,-13,107,-4,107,39v0,67,-136,85,-155,137v-1,6,10,23,-4,23v-23,1,-33,-35,-23,-57v31,-41,124,-60,149,-103v-8,-21,-72,-5,-88,-1v-23,6,-59,39,-71,8v0,0,-1,0,1,-17v10,-4,45,-20,84,-29xm80,-25v-6,4,-8,39,-24,22v-24,3,-22,-21,-13,-35v17,-7,29,5,37,13",w:216},"@":{d:"218,-207v23,8,42,14,47,37v44,68,-27,137,-87,85r1,0v0,2,-59,19,-61,17v-35,0,-42,-47,-17,-68r0,-4v-19,-1,-45,37,-49,40v-37,76,58,72,121,62v11,-2,34,-13,36,3v-14,31,-69,31,-114,33v-51,2,-99,-41,-80,-92v2,-30,22,-40,42,-63v35,-20,91,-53,161,-50xm217,-101v23,0,35,-19,35,-41v0,-43,-75,-41,-102,-19v36,3,55,16,62,41v-6,5,-6,19,5,19xm127,-110v8,5,51,-15,28,-16v-4,0,-25,4,-28,16",w:291},A:{d:"97,-81v-23,-10,-39,38,-52,60v-8,6,-8,6,-22,18v-22,-7,-23,-37,-4,-49v7,-8,11,-15,15,-23r-1,1v-14,-26,23,-29,31,-40v1,-1,15,-29,26,-36v17,-31,39,-58,54,-92v16,-20,20,-51,41,-66v29,5,34,62,45,92v9,64,21,103,49,155v-3,25,-44,11,-54,0v-34,-12,-97,-29,-128,-20xm107,-118v20,6,80,10,111,17v6,-7,-4,-15,-7,-24v-11,-28,-9,-92,-30,-117v-9,9,-19,44,-34,55v-9,23,-27,40,-40,69",w:294},B:{d:"256,-179v41,10,115,34,91,91v-6,3,-14,12,-19,20v-37,19,-50,34,-63,25v-9,10,-12,11,-34,13r3,-3v-4,-4,-12,-4,-18,0v0,0,2,2,5,4v-21,14,-26,6,-44,15v-4,0,-7,-2,-8,-5v-6,11,-20,-5,-18,11v-36,4,-91,35,-114,4v-7,-62,-10,-138,4,-199v-1,-19,-37,2,-37,-27v0,-8,2,-13,6,-15v68,-31,231,-92,311,-39v8,12,12,20,12,25v-8,42,-32,49,-77,80xm79,-160v72,-17,135,-39,184,-70v20,-13,31,-23,31,-27v1,-6,-30,-13,-38,-12v-54,0,-116,13,-186,41v11,21,1,48,9,68xm262,-43v0,-4,3,-6,-4,-5v0,1,1,2,4,5xm211,-140v-34,7,-94,24,-139,15v-6,20,-4,56,-4,82v0,29,43,1,56,2v48,-11,108,-25,154,-48v20,-10,32,-17,32,-25v0,-18,-33,-26,-99,-26xm195,-20v6,1,6,-2,5,-7v-3,2,-7,2,-5,7",w:364},C:{d:"51,-114v-12,75,96,76,166,71r145,-10v9,2,9,5,9,18v-37,18,-85,28,-109,22v-18,10,-47,10,-71,10v-29,0,-68,1,-105,-11v-6,-1,-10,-3,-10,-8v-33,-13,-48,-33,-66,-59v-19,-114,146,-150,224,-177v35,0,88,-31,99,7v-1,29,-49,14,-76,28v-55,8,-115,35,-175,71v-13,8,-23,21,-31,38",w:376},D:{d:"312,-78v-2,1,-3,7,-10,5v6,-3,10,-4,10,-5xm4,-252v2,-27,83,-38,106,-39v130,-7,267,1,291,109v0,0,-2,8,-3,25v-5,9,-4,28,-23,34v-4,4,-2,5,-7,0v-3,3,-15,7,-5,10v0,0,-10,14,-13,2v-11,1,-8,5,-20,14v1,2,7,3,9,1v-4,13,-22,13,-11,4v0,-3,1,-6,-3,-5v-40,29,-103,38,-141,65v10,6,22,-7,34,-3v-41,20,-127,44,-171,46v-21,1,-47,-33,-11,-39v15,-2,43,-6,56,-11v-16,-101,-5,-130,9,-207v2,0,4,-1,6,-3v-16,-17,-91,38,-103,-3xm297,-69v-7,3,-17,8,-25,7v1,1,3,2,5,2v-4,2,-11,5,-23,9v4,-11,30,-21,43,-18xm240,-51v10,0,12,2,0,6r0,-6xm220,-36v-1,-3,4,-6,6,-3v0,1,-2,1,-6,3xm125,-48v16,6,137,-46,155,-53v29,-18,101,-44,82,-93v-21,-53,-84,-61,-168,-67v-20,7,-50,3,-77,8v33,54,-12,132,8,205xm159,-22v-4,-1,-15,-5,-15,2v7,-1,12,-2,15,-2",w:381},E:{d:"45,-219v-19,-36,34,-41,63,-36v44,-10,133,-8,194,-15v3,2,38,11,52,15v-73,19,-171,21,-246,38v-9,11,-16,32,-20,61v35,11,133,-6,183,3v1,6,2,7,3,14v-46,24,-118,16,-193,27v-15,13,-22,52,-22,66v60,1,121,-20,188,-20v22,10,53,-7,74,5v16,29,-23,26,-43,32v-73,4,-139,13,-216,27r-52,-10v-4,-22,23,-69,26,-98v-3,0,-10,-15,-12,-24v20,-12,34,-23,35,-67v2,-1,5,-5,5,-7v0,-4,-14,-11,-19,-11",w:353},F:{d:"270,-258v13,2,59,6,48,34v-78,-3,-143,1,-212,22v-10,16,-21,43,-24,69r145,-9v8,3,29,-3,16,21v-14,-1,-59,13,-60,7v-12,13,-67,18,-108,21v-2,1,-4,3,-7,6v-2,23,-8,43,-7,69v1,28,-30,11,-40,5r10,-80r-26,-14v5,-10,10,-33,28,-25v21,-3,15,-46,26,-59v-1,-3,-32,-13,-28,-24v2,-22,45,-16,59,-30v47,4,99,-14,151,-9v5,-3,25,-3,29,-4",w:236},G:{d:"311,-168v53,0,94,57,74,110v-31,37,-71,34,-136,52v-13,-7,-41,10,-57,7v-73,-1,-122,-17,-162,-59v-49,-51,-24,-80,5,-130v35,-61,138,-93,214,-106v16,4,42,-1,40,21v-5,40,-39,2,-73,21v-76,19,-162,65,-177,142v28,103,237,76,312,29v2,-3,3,-7,3,-13v-10,-35,-37,-43,-87,-45v-16,-13,-53,-9,-78,1v-4,-3,-5,-7,-5,-11v17,-29,73,-17,108,-24v12,4,18,5,19,5",w:391},H:{d:"300,-268v18,12,19,32,4,51v-35,44,-34,140,-46,217v-1,5,-5,13,-11,12v-6,1,-19,-14,-18,-27r7,-106v-28,7,-76,22,-116,14v-18,2,-36,6,-55,3v-43,-8,-14,53,-33,75v-29,1,-26,-67,-21,-97v5,-31,28,-73,43,-98v2,2,7,3,14,3v13,33,-11,48,-13,78v61,4,118,2,176,2v8,0,13,-6,15,-20v4,-47,21,-87,54,-107",w:288},I:{d:"63,-266v34,10,-4,105,-8,128r-24,126v-2,2,-3,1,-9,6v-12,-10,-12,-15,-12,-47v0,-93,9,-156,28,-188v10,-17,19,-25,25,-25",w:79},J:{d:"235,-291v26,11,31,104,31,142v0,37,-2,95,-32,126v-33,34,-121,26,-167,1v-18,-11,-54,-29,-59,-59v0,-3,5,-15,16,-14v31,36,90,57,162,51v63,-30,56,-148,32,-226v-1,-16,11,-13,17,-21",w:282},K:{d:"212,-219v17,-5,80,-60,80,-19v0,9,-2,14,-5,16r-132,78v-34,23,-54,32,-21,50v39,21,74,23,124,41v5,2,7,5,7,9v-4,24,-55,15,-79,8v-67,-19,-98,-36,-116,-83v9,-24,38,-35,66,-61v7,-4,49,-30,76,-39xm47,-194v11,-20,11,-45,31,-55v2,2,4,3,6,0v29,39,-21,96,-18,128v-17,24,-15,62,-29,113v-4,3,-10,7,-19,11v-12,-13,-10,-28,-8,-53v3,-31,17,-79,37,-144",w:270},L:{d:"84,-43v58,0,179,-27,242,-4v3,17,-29,24,-40,26v-85,-4,-202,46,-268,3v-24,-16,-2,-33,-4,-57v26,-76,38,-108,86,-191v14,-7,26,-50,45,-32v6,22,5,31,-12,46v-20,39,-50,82,-67,142v-7,6,-19,46,-19,54v0,9,12,13,37,13",w:331},M:{d:"174,-236v-1,52,-11,92,-7,143v10,5,15,-12,22,-18v42,-55,90,-130,136,-174r15,-18v42,2,32,53,11,80v-12,58,-54,143,-34,210v0,3,-3,12,-9,10v-31,-5,-32,-57,-27,-92v4,-27,12,-58,25,-93v-5,-10,5,-19,6,-30v-46,44,-66,110,-129,172v-11,10,-18,15,-22,15v-34,6,-28,-103,-28,-152v-28,22,-65,119,-96,170v-9,15,-34,3,-31,-19v30,-64,91,-177,139,-229v12,-1,29,13,29,25",w:343},N:{d:"248,-20v-3,17,-37,18,-43,3v-24,-35,-53,-145,-80,-203v-32,40,-55,120,-92,174v-13,3,-26,-13,-27,-22r87,-171v4,-13,20,-57,42,-32v42,48,46,139,82,198v29,-45,46,-88,65,-153v12,-19,23,-42,38,-60v27,-1,14,18,4,44v-6,46,-32,68,-37,121v-15,29,-33,69,-39,101",w:307},O:{d:"240,-268v85,1,163,29,150,125v13,7,-12,18,-5,26v-23,63,-133,112,-228,124v-80,-16,-171,-56,-148,-153v11,-47,20,-43,53,-83v17,-9,39,-22,73,-29v45,-10,81,-10,105,-10xm363,-156v16,-51,-62,-85,-111,-79v-25,-11,-50,8,-81,0v-15,10,-70,16,-85,31v6,20,-27,24,-39,45v-42,75,40,128,115,128v56,0,209,-71,201,-125",w:383},P:{d:"70,-225v-7,-12,-36,16,-49,19v-4,0,-9,-5,-14,-17v21,-47,114,-55,172,-59v41,-3,132,33,99,87v-21,34,-72,59,-144,80v-2,16,-79,3,-74,46v3,25,-5,47,-10,68v-22,-1,-23,-29,-22,-56v2,-25,-20,-32,-8,-50v21,-5,10,-35,25,-57v6,-28,14,-48,25,-61xm71,-229v47,14,-2,50,-1,99v41,-3,113,-37,173,-76v5,-9,8,-14,8,-15v-28,-47,-125,-29,-180,-8",w:252},Q:{d:"374,-217v20,59,-11,127,-48,156r30,38v-1,6,-8,16,-14,9v-3,0,-19,-9,-47,-26v-72,35,-173,75,-236,12v-70,-40,-67,-213,26,-217r8,5v24,-20,72,-48,112,-38v21,-4,22,-1,50,-2v66,-2,94,20,119,63xm296,-88v13,5,61,-49,63,-84v4,-62,-54,-78,-119,-76v-14,-6,-49,5,-71,3v-42,16,-89,41,-93,94v-9,11,1,25,-7,38v-12,-19,-7,-67,-1,-88v-56,30,-37,137,19,155v27,17,92,19,119,0v12,-2,29,-9,52,-20v2,-2,3,-3,3,-6v-11,-12,-46,-27,-54,-56v0,-13,3,-19,9,-19v18,1,60,52,80,59",w:379},R:{d:"100,-275v96,-23,196,-10,208,78v-3,18,-17,52,-49,62v-14,20,-54,23,-79,40v-2,0,-14,2,-36,6v-40,8,-30,14,-3,33v37,27,52,30,118,55v16,6,31,23,12,27v-58,-2,-104,-29,-143,-61v-14,-3,-16,-15,-39,-27v-23,-19,-28,-12,-15,-38v63,-19,111,-15,163,-53v27,-20,43,-36,43,-49v0,-64,-120,-62,-173,-38v-9,4,-38,9,-40,18v-10,32,-16,70,-13,116v-10,21,-8,47,-6,75v2,31,-9,29,-27,22v-9,-55,5,-140,15,-190v-8,-6,-24,10,-24,-11v0,-34,16,-34,42,-55v2,-1,17,-4,46,-10",w:297},S:{d:"13,-3v-7,-3,-22,-18,-5,-22v68,-15,119,-32,154,-45v51,-19,39,-34,3,-53v-46,-25,-82,-30,-121,-64v-33,-29,-50,-35,-25,-58v37,-20,119,-29,181,-29v29,0,44,6,44,18v-9,26,-62,6,-104,14v-17,2,-72,6,-92,16v37,53,132,58,180,111v8,9,11,20,11,30v-4,17,-23,35,-42,34v-21,16,-17,1,-49,17v-14,7,-41,9,-56,20v-25,-3,-49,10,-79,11",w:234},T:{d:"141,-3v-36,-6,1,-49,-3,-79v10,-19,6,-35,15,-64r26,-85v-51,-9,-100,10,-141,14v-16,2,-30,-26,-11,-32v26,-8,143,-8,179,-19r12,6v67,-2,142,-1,200,-1v8,0,14,3,19,10v-18,16,-74,3,-103,14v-48,-4,-60,4,-113,7v-42,22,-36,130,-58,187v1,12,-9,44,-22,42",w:277},U:{d:"365,-262v13,56,-22,104,-36,141v-19,22,-30,38,-57,56v-4,18,-60,35,-78,50v-53,28,-142,0,-161,-34v-31,-56,-37,-108,-11,-164v17,-33,29,-50,48,-29v-2,2,-3,7,-4,13v-44,36,-38,149,7,174v30,26,55,19,102,4v56,-17,66,-34,120,-76v12,-24,56,-68,46,-122r0,-16v0,1,-1,3,-1,6v4,-13,11,-10,25,-3",w:368},V:{d:"246,-258v21,-22,31,-26,44,-8v1,1,-12,22,-28,35v-15,25,-41,38,-56,69v-13,15,-20,31,-28,57v-15,13,-11,29,-27,72v3,21,-5,24,-27,27v-33,-45,-54,-118,-84,-167v-5,-26,-18,-50,-25,-76v-3,-12,24,-8,29,-5v8,13,18,52,26,70r52,115v9,-2,4,-9,10,-21r25,-47v25,-44,46,-76,89,-121",w:234},W:{d:"31,-213v16,46,17,106,41,151v31,-35,49,-89,76,-127v30,-15,39,27,52,56v10,22,21,48,35,67v2,0,4,-1,5,-3v16,-28,50,-76,79,-121v14,-21,40,-63,64,-83r5,8v-30,58,-76,110,-97,173v-18,28,-25,37,-33,63v-11,1,-16,25,-30,15v-21,-31,-44,-89,-62,-131v0,-2,-1,-3,-5,-5v-17,11,-16,36,-31,50v-20,33,-20,84,-68,94v-24,-19,-23,-81,-39,-111v-1,-15,-29,-94,-10,-108v9,2,12,5,18,12",w:331},X:{d:"143,-183v43,-25,69,-36,126,-62v22,-10,86,-10,56,21v-51,3,-158,61,-154,64v10,15,41,30,50,52v27,17,46,60,70,82v9,14,-6,30,-24,20v-35,-43,-75,-100,-116,-132v-48,13,-100,47,-118,94v-1,49,-26,34,-27,4v-1,-26,13,-27,17,-48v22,-27,68,-55,90,-77v-9,-12,-60,-39,-79,-57v-6,-10,-6,-25,12,-25",w:312},Y:{d:"216,-240v19,-14,42,10,22,26v-54,66,-121,109,-156,197v-8,21,-11,15,-30,4v3,-37,27,-61,33,-76v12,-12,15,-19,32,-42v-8,-6,-40,5,-45,5v-48,-6,-69,-65,-56,-113v14,0,13,-1,24,7v2,33,12,75,42,73v36,-2,102,-57,134,-81",w:189},Z:{d:"60,-255v66,12,200,-34,240,21v-13,42,-63,62,-98,89v-19,15,-47,33,-82,55v-25,16,-47,32,-66,47v58,24,129,-6,208,-6v23,0,36,12,13,19v-33,2,-53,5,-86,10v-32,18,-88,15,-135,15v-9,-1,-55,-1,-48,-29v1,-24,30,-24,40,-41v64,-50,151,-86,208,-147v-38,-17,-155,12,-198,-4v0,0,-11,-33,4,-29",w:310},"[":{d:"72,-258r-15,250v30,4,55,-3,80,-6v7,-1,8,17,9,23v-28,15,-73,23,-121,21v-7,0,-10,-6,-10,-17v0,-60,25,-193,22,-288v0,-16,13,-20,33,-19v9,-3,34,-12,51,-12v16,0,15,16,19,29v-16,7,-48,10,-68,19",w:151},"\\":{d:"236,38v20,-18,-8,-74,-13,-90v-44,-78,-112,-190,-200,-253v-2,0,-5,4,-7,12v-11,31,13,36,24,58v74,61,174,219,180,273r16,0",w:257},"]":{d:"133,-258v-23,-13,-84,6,-85,-32v0,-10,5,-15,14,-15v0,0,30,2,90,7v10,1,15,13,15,36v2,7,-8,59,-13,112r-11,125v-9,48,9,90,-59,71v-20,-4,-39,-1,-59,-4v-5,-10,-25,-12,-14,-30v8,-3,61,-13,78,-8v14,1,8,-7,10,-17v15,-69,21,-166,34,-245",w:171},"^":{d:"68,-306v20,15,47,36,58,60v-1,4,0,7,-9,7v-26,0,-47,-38,-49,-32v-15,9,-41,50,-54,30v-2,-31,17,-23,33,-51v8,-9,15,-14,21,-14",w:135},_:{d:"11,15v-8,33,18,45,50,34r205,2r197,-5v11,-5,14,-9,7,-28v-95,-21,-258,-10,-376,-10v-25,0,-72,-3,-83,7",w:485},"`":{d:"75,-264v16,8,56,14,39,43v-30,-8,-65,-23,-105,-44v-1,-3,-3,-28,5,-25v16,5,44,17,61,26",w:129},a:{d:"124,-56v10,4,59,41,65,50v1,7,-6,17,-12,17r-60,-30v-22,2,-42,21,-65,19v-33,4,-68,-67,-15,-81v41,-27,96,-39,110,9v0,6,-4,12,-11,16v-33,-25,-67,-5,-88,12v10,16,61,-18,76,-12",w:196},b:{d:"80,-140v69,1,123,0,134,52v5,26,-71,71,-97,70v-11,11,-88,22,-94,22v-11,-3,-26,-18,-6,-24v19,-5,-2,-19,-1,-35v1,-18,11,-36,-5,-47v-6,-17,-6,-21,14,-32v6,-45,18,-89,28,-124v2,-7,8,-12,17,-15v5,3,10,11,16,28v-12,27,-13,63,-23,96v0,6,6,9,17,9xm87,-107v-40,-9,-31,31,-39,54v8,15,0,25,12,22v30,-8,60,-18,88,-32v39,-18,49,-33,-1,-42v-20,-4,-45,-7,-60,-2",w:217},c:{d:"128,-123v29,-7,37,29,12,33v-27,-4,-40,6,-79,25v-8,4,-13,11,-16,22v30,32,91,3,134,11v5,13,-8,26,-22,19v-51,25,-139,28,-150,-30v6,-50,69,-82,121,-80",w:194},d:{d:"224,-201v0,-35,-17,-111,24,-94v7,86,-2,119,0,197v-4,2,-8,21,-18,16v-62,-7,-154,-8,-185,29v6,17,28,26,51,26v16,0,100,-15,132,-18v7,5,-6,20,-10,22v-24,8,-122,42,-163,25v-32,-5,-62,-53,-36,-80v35,-37,118,-46,198,-43v1,-22,7,-49,7,-80",w:265},e:{d:"4,-57v0,-58,51,-71,110,-74v33,-1,45,16,59,35v1,14,2,39,-7,42v-24,-2,-73,13,-99,11v-2,2,-2,3,-2,3v0,3,12,8,37,15v21,0,69,9,31,22v-9,14,-34,6,-56,6v-27,-5,-73,-28,-73,-60xm123,-102v-22,2,-68,5,-65,26v24,-2,66,5,79,-6v-5,-13,-1,-13,-14,-20",w:182},f:{d:"6,-59v6,-29,53,-4,53,-43v0,-64,29,-118,84,-150v45,-25,167,-24,155,51v-1,2,-7,6,0,6r-10,2v-45,-58,-165,-39,-186,39v-7,26,-11,42,-9,62v44,8,95,-21,135,-7v-12,25,-39,21,-76,30v-19,5,-18,7,-54,19v-2,8,15,32,17,35v-6,25,-26,26,-40,-5r-15,-24v-41,10,-44,12,-54,-15",w:234},g:{d:"132,-97v30,27,21,75,30,117v-12,31,-11,66,-36,103v-32,46,-105,83,-167,39v-31,-21,-49,-29,-51,-75v-2,-37,77,-50,121,-57v37,-6,68,-10,95,-11v7,-6,3,-32,4,-46v0,0,-1,1,-1,2v0,-18,-5,-31,-14,-45v-44,5,-79,20,-94,-18v3,-54,73,-54,125,-50v12,7,12,13,4,25v-30,-11,-76,8,-90,20v23,3,50,-16,74,-4xm-34,121v60,53,168,1,159,-86v-47,-7,-93,24,-142,30v-12,7,-45,19,-42,29v0,10,8,19,25,27",w:188},h:{d:"100,-310v11,-2,10,19,11,20v-11,52,-40,133,-53,189v-6,30,-9,37,-9,47v27,0,113,-34,143,-34v42,0,31,47,39,79v0,4,-5,17,-16,16v4,2,11,3,4,6v-24,-1,-28,-34,-25,-64v-1,-1,-2,-3,-5,-5v-51,0,-110,38,-162,51v-9,1,-15,-15,-16,-23v17,-89,39,-141,71,-264v0,-9,6,-19,18,-18",w:251},i:{d:"62,-209v7,18,9,23,-5,38v-23,-6,-21,-18,-11,-36v2,0,8,-1,16,-2xm34,-7v-18,-21,-8,-73,-1,-106v7,-10,20,-8,23,6v-1,36,7,72,-2,104v-8,2,-8,0,-20,-4",w:80},j:{d:"88,-191v5,28,-18,40,-28,21v0,-20,12,-29,28,-21xm82,-99v28,-1,16,35,16,61v0,60,-19,150,-35,202v-12,8,-19,31,-35,16v-32,-7,-43,-19,-56,-44r2,-17v11,4,49,45,61,18v10,-55,27,-107,30,-171v0,-16,0,-59,17,-65",w:120},k:{d:"59,-66v33,26,114,37,155,62v8,-4,22,-2,19,-17v0,-4,-12,-11,-30,-24v-36,-25,-54,-22,-99,-33v14,-21,119,-13,103,-63r-16,-7r-123,47r25,-93v-3,-15,16,-49,18,-81v1,-15,-21,-14,-25,-3v-31,82,-49,168,-75,257v2,2,22,30,27,10v2,-5,4,-9,9,-11v4,-16,4,-15,12,-44",w:236},l:{d:"66,-300v21,-6,37,23,30,55v-10,51,-28,135,-28,208v0,11,6,36,-13,37v-29,-5,-30,-48,-25,-83r28,-177v-6,-17,1,-29,8,-40",w:102},m:{d:"348,-59v-2,21,0,57,3,73v-17,3,-30,-1,-32,-16v-8,-7,-5,-44,-13,-70v-35,3,-82,49,-111,70v-12,8,-40,4,-39,-15r2,-56v-1,-13,4,-28,-8,-29v-35,8,-79,72,-115,87v-6,2,-20,-18,-21,-22v1,-20,14,-105,39,-64r8,15v17,-14,72,-56,93,-54v27,3,49,40,43,80v24,-2,66,-55,124,-53v11,14,28,23,27,54",w:368},n:{d:"121,-136v37,6,62,54,62,111v0,32,-16,25,-31,17v-18,-30,-5,-45,-22,-85v-37,-13,-71,55,-92,65v-20,-3,-39,-39,-21,-62v2,-12,3,-15,11,-30v12,-8,20,11,29,12",w:194},o:{d:"108,-139v52,-24,104,18,104,63v0,59,-66,67,-114,83v-52,-2,-115,-50,-80,-105v23,-18,52,-35,90,-41xm45,-60v16,54,125,16,131,-23v-12,-59,-129,-8,-131,23",w:217},p:{d:"82,14v-10,12,-8,117,-24,142v-15,2,-19,0,-29,-13v0,-76,9,-113,22,-192v14,-27,35,-6,37,13v0,8,-3,21,-7,38v2,2,3,2,4,2v26,-9,116,-33,126,-72v-7,-17,-24,-33,-49,-31v-40,3,-116,13,-116,47v-5,7,-2,17,-16,20v-17,-12,-18,-20,-12,-38v8,-25,74,-61,110,-59v55,-15,113,15,118,70v-15,52,-84,79,-146,83v-5,0,-11,-4,-18,-10",w:251},q:{d:"144,-147v27,-8,89,-3,97,31v-9,29,-42,-4,-73,1v-32,6,-118,20,-111,49v0,7,13,13,21,13v21,0,78,-24,104,-34v2,0,9,8,22,21v1,1,1,2,1,5v-27,90,-22,70,-43,203v11,15,-15,54,-33,33v-6,-8,-10,-20,-3,-28v1,-72,5,-114,15,-172v-35,3,-35,10,-59,8v-41,-4,-98,-41,-56,-85v33,-34,59,-27,118,-45",w:248},r:{d:"242,-117v2,22,5,10,-14,23v-73,-7,-166,-23,-174,56v-8,6,-3,20,-8,36v-29,10,-40,-9,-33,-46v6,-31,7,-69,32,-55v58,-37,66,-42,175,-19v3,5,15,4,22,5",w:229},s:{d:"154,-151v19,1,27,24,13,32v-4,1,-22,4,-53,7v-16,8,-22,-2,-39,9v23,21,89,16,96,62v-13,24,-85,35,-124,42v-9,-3,-18,-3,-27,0v-6,-4,-21,-16,-8,-25v30,-6,83,-13,102,-24v-17,-16,-80,-33,-97,-48v-3,-2,-4,-7,-4,-15v-6,-6,3,-13,15,-18v22,-9,94,-23,126,-22",w:188},t:{d:"85,-150v10,-41,35,-126,65,-134v4,1,24,19,11,36v-17,22,-29,57,-36,104v26,8,50,-7,73,5v14,0,22,3,22,9v-1,19,-44,18,-57,23v-10,1,-46,0,-54,10v-10,24,-4,67,-20,98v-21,-3,-26,1,-26,-20v0,-9,2,-36,8,-81v-15,-13,-81,9,-77,-27v4,-38,71,6,91,-23",w:194},u:{d:"207,-136v-1,-2,11,-14,14,-13v6,0,10,7,10,22v-3,40,-23,56,-40,82v-13,19,-62,43,-93,43v-67,-2,-111,-75,-71,-133v26,-3,21,29,19,49v-1,27,26,44,57,42v41,-2,93,-55,104,-92",w:242},v:{d:"24,-127r52,71v42,-16,70,-54,124,-65v5,4,8,7,8,11v-8,19,-4,8,-33,32v0,1,-1,3,-1,5v-61,45,-93,68,-97,68v-40,-15,-50,-72,-68,-100v6,-14,10,-22,15,-22",w:214},w:{d:"15,-139v38,-2,27,57,45,86v30,2,67,-66,101,-78v26,6,36,69,60,78v47,-35,51,-54,119,-104v3,0,7,-2,15,-4v19,23,-9,28,-21,49v-33,28,-68,90,-107,109v-10,6,-52,-47,-72,-71v-20,17,-85,74,-97,73v-38,7,-41,-98,-52,-122v0,-1,3,-7,9,-16",w:325},x:{d:"95,-124v22,-13,78,-32,99,-31v16,0,23,6,23,18v0,22,-17,11,-49,21v-3,0,-45,20,-42,24v0,1,2,4,8,10v20,24,49,41,44,80v-35,3,-27,-9,-60,-44v-40,-43,-37,-26,-79,9v-1,1,-2,3,-3,8v-12,8,-28,10,-27,-11v-6,-8,45,-65,48,-65v-17,-21,-61,-52,-24,-68v9,0,48,37,62,49",w:223},y:{d:"44,-65v22,33,70,4,99,-8v5,-4,28,-15,41,-31r17,0v25,47,-26,70,-40,114v-5,4,-9,8,-10,21v-16,12,-11,33,-27,51v-5,18,-12,43,-23,71v-1,-1,-2,34,-18,29v-12,1,-22,-12,-22,-23v20,-70,24,-65,68,-177v-47,16,-111,8,-116,-39v-11,-13,-7,-62,8,-62v18,0,22,26,23,54",w:216},z:{d:"189,-43v9,-1,46,-6,41,12v0,7,-5,13,-15,14v-45,6,-148,24,-181,13v0,-3,-5,-8,-14,-15v5,-44,66,-46,90,-85v-15,-18,-84,21,-84,-14v0,-10,5,-17,14,-18v33,-3,79,-13,109,-3v4,-2,14,11,12,15v0,23,-26,51,-78,84v28,10,73,-3,106,-3",w:244},"{":{d:"94,-303v27,-9,90,-14,79,26v-20,17,-55,-5,-87,13v-4,1,-6,4,-6,8v33,42,31,44,7,85v-6,10,-13,16,-13,13v5,6,17,17,15,31r-33,78v7,35,28,49,57,63r49,0v7,42,-51,41,-86,20v-43,-13,-51,-51,-56,-89v-2,-25,25,-54,27,-71v-3,-4,-46,-5,-41,-21v2,-10,-3,-29,11,-25v2,0,51,-17,52,-38v4,-3,-25,-23,-25,-49v0,-41,8,-30,50,-44",w:179},"|":{d:"30,-308v26,5,14,50,15,80v5,78,-8,153,-3,225v-2,15,-1,31,-11,36v-8,-3,-25,-22,-25,-32r9,-183v0,-40,0,-78,1,-112v0,-4,9,-15,14,-14",w:63},"}":{d:"47,-298v34,-17,118,-18,112,36v6,25,-76,98,-69,103v4,16,39,7,44,28v7,34,-34,17,-37,39v8,29,49,83,23,123v-15,23,-43,26,-73,46v-34,8,-43,11,-49,-17v1,-15,30,-15,33,-20v24,-12,70,-27,55,-61v-14,-33,-37,-68,-19,-103v-46,-50,46,-100,60,-141v-10,-16,-68,6,-77,-12",w:143},"~":{d:"7,-254v2,-6,59,-50,67,-46v11,-1,35,19,46,26v5,0,27,-10,66,-31v21,8,-1,25,-7,38v-27,21,-48,31,-65,31v-24,-11,-37,-39,-65,-9v-7,7,-26,36,-42,11v3,-5,-3,-17,0,-20",w:199}," ":{w:179},"¡":{d:"86,-197v8,16,-7,41,-24,25v-11,-11,-4,-16,-3,-29v13,0,15,-2,27,4xm46,-107v4,-8,11,-16,23,-7v19,26,-5,57,-6,87v-7,0,-5,18,-9,28v0,14,-17,52,-11,70v-2,7,-15,28,-25,12v-4,-6,-15,-7,-6,-16v2,-39,14,-96,34,-174",w:95},"¢":{d:"105,-188v13,-12,14,-18,26,-15v7,23,7,15,-3,49v6,0,18,14,17,20v-3,5,-12,19,-26,13v-14,1,-14,5,-16,21v10,10,46,-13,38,18v-9,17,-23,16,-54,20v-17,16,-4,55,-29,60v-37,-10,19,-64,-24,-71v-20,-10,-37,-47,-6,-62v23,-20,73,-4,77,-53xm65,-101v4,-9,7,-8,3,-13v-14,4,-22,10,-3,13",w:154},"£":{d:"153,-170v3,22,62,0,49,39v-18,6,-31,12,-58,9v-12,-1,-17,30,-23,39v19,26,50,56,91,35v9,-2,27,-13,27,4v0,27,-27,39,-58,42v-32,-5,-59,-19,-78,-39v-6,1,-35,44,-57,39v-25,0,-37,-15,-37,-46v0,-41,43,-53,73,-50v4,1,12,-18,12,-21v-7,-15,-49,0,-44,-30v-2,-31,31,-16,60,-19v16,-30,25,-119,93,-113v16,2,75,16,50,44v-4,5,-7,7,-12,8v-18,-12,-32,-18,-41,-18v-35,-1,-38,52,-47,77xm43,-45v4,5,12,-2,11,-9v-1,2,-12,1,-11,9",w:242},"¤":{d:"308,-133r-200,16v-2,1,-6,4,-10,10v70,-2,144,-14,211,-8v3,0,8,4,13,8v-1,4,-3,9,-9,17v-57,11,-164,6,-219,25v26,32,112,25,173,25v9,0,35,2,35,19v0,9,-4,13,-12,14v-115,12,-146,23,-211,-19v-12,-4,-22,-9,-25,-27v-6,-29,-61,3,-43,-49v17,-1,36,7,42,-12v-32,7,-36,-39,-11,-40v29,14,63,-25,73,-30v52,-25,72,-44,142,-44v23,0,21,41,-1,39v-35,-3,-61,9,-102,31v2,2,5,4,8,4v18,-6,101,-9,115,-9v7,0,55,13,31,30",w:312},"€":{d:"308,-133r-200,16v-2,1,-6,4,-10,10v70,-2,144,-14,211,-8v3,0,8,4,13,8v-1,4,-3,9,-9,17v-57,11,-164,6,-219,25v26,32,112,25,173,25v9,0,35,2,35,19v0,9,-4,13,-12,14v-115,12,-146,23,-211,-19v-12,-4,-22,-9,-25,-27v-6,-29,-61,3,-43,-49v17,-1,36,7,42,-12v-32,7,-36,-39,-11,-40v29,14,63,-25,73,-30v52,-25,72,-44,142,-44v23,0,21,41,-1,39v-35,-3,-61,9,-102,31v2,2,5,4,8,4v18,-6,101,-9,115,-9v7,0,55,13,31,30",w:312},"¥":{d:"31,-248v30,-3,64,64,74,59v37,-22,77,-65,107,-82v20,-11,34,18,21,32v-28,19,-52,38,-70,57v-18,8,-40,21,-35,60v2,19,39,7,64,7v25,0,16,21,2,27v-36,16,-46,8,-68,18v6,11,101,-20,66,24v-21,11,-42,12,-75,20v-2,1,-5,6,-10,18v-8,3,-11,10,-24,8v-7,-17,-2,-18,-9,-26v-13,5,-39,3,-53,-2v-10,-17,-7,-27,0,-34v23,-1,45,1,64,-5v-11,-7,-28,-4,-64,-6v-13,-8,-15,-24,-6,-35v33,-2,102,9,76,-37v-14,-14,-33,-38,-60,-66v-10,-10,-8,-28,0,-37",w:219},"§":{d:"141,-115v12,10,29,36,28,56v-4,68,-129,69,-152,16v-1,-12,-10,-22,8,-23v17,3,47,21,67,23v16,1,40,-8,38,-21v-8,-49,-119,-30,-117,-85v1,-28,15,-45,-3,-64v-1,-53,55,-61,103,-62v15,-5,6,-5,20,-2v16,17,23,27,23,30v-1,26,-29,7,-45,7v-21,0,-51,2,-62,17v19,14,87,8,97,43v18,14,16,57,-5,65xm64,-147r57,17v10,-28,-22,-43,-47,-44v-25,-1,-35,19,-10,27",w:174},"¨":{d:"124,-259v0,9,-4,13,-12,13v-18,0,-22,-21,-17,-35v19,-1,30,1,29,22xm23,-285v7,2,30,9,29,18v1,10,-9,19,-18,19v-19,0,-28,-26,-11,-37",w:136},"©":{d:"102,-29v-74,5,-124,-84,-70,-140v22,-22,53,-35,97,-38v46,-4,88,49,74,100v0,44,-51,75,-101,78xm96,-66v42,-3,75,-23,75,-69v0,-23,-4,-38,-44,-38v-16,0,-33,6,-49,20v36,-4,55,-12,62,20v-5,16,-49,1,-50,21v10,15,53,-14,54,11v0,18,-14,27,-42,27v-22,1,-46,-11,-46,-31v0,-25,7,-39,20,-44v-1,-1,-2,-2,-3,-2v-51,22,-32,89,23,85",w:217},"ª":{d:"6,-265v1,-31,58,-53,80,-22v-11,14,25,28,25,36v-2,8,-15,12,-27,10v-22,-29,-68,19,-78,-24xm52,-281v-8,1,-24,10,-9,13v11,1,24,-10,9,-13",w:117},"«":{d:"191,-64v16,6,87,37,53,63v-39,-9,-71,-28,-107,-40v-14,-13,-13,-34,10,-47v27,-15,48,-55,84,-62v9,-2,21,10,21,18r-13,21v-16,5,-44,22,-51,41v0,4,1,6,3,6xm71,-65v17,6,87,35,55,62v-39,-8,-66,-27,-108,-40v-14,-13,-13,-36,10,-46v23,-18,50,-56,84,-63v9,-2,21,10,21,18r-13,22v-20,6,-32,17,-51,37v0,3,-1,11,2,10",w:265},"¬":{d:"141,-99v47,7,103,-3,149,6v14,24,18,15,10,39v-10,34,-7,31,-26,76v-4,6,-15,8,-16,21v-4,2,-4,1,-13,5v-22,-33,-4,-33,16,-104v-5,-9,-28,-4,-38,-6r-183,4v-14,0,-41,-29,-17,-36v31,-9,82,5,118,-5",w:315},"®":{d:"75,-194v78,-29,116,9,130,84v-2,42,-22,47,-57,67v-74,20,-161,-19,-129,-110v6,-18,29,-34,57,-40xm46,-86v51,36,84,21,129,-15v7,-15,0,-39,-10,-49v-13,-37,-49,-26,-86,-18v-28,7,-49,46,-33,82xm72,-123v-5,-43,68,-57,75,-14v-17,26,-18,17,3,32v2,25,-25,18,-45,7r-4,-4v-1,8,-3,20,-12,24v-10,-3,-21,-34,-17,-45xm112,-135v-10,-1,-20,13,-9,14v6,-6,9,-11,9,-14",w:217},"¯":{d:"63,-295v28,-7,73,10,105,7v11,1,6,8,5,19v-37,21,-72,11,-136,11v-23,0,-31,-14,-27,-36v12,-15,40,0,53,-1",w:183},"°":{d:"106,-268v0,36,-35,38,-51,46v-48,5,-60,-58,-25,-78v33,-11,76,-9,76,32xm38,-257v16,7,39,2,38,-17v-13,-9,-28,-1,-32,11v-5,3,-7,0,-6,6",w:114},"±":{d:"93,-163v-7,46,76,-4,46,47v-14,6,-27,13,-38,8v-24,2,-14,28,-28,44r-14,0v-7,-12,-5,-15,-7,-33v-12,-7,-41,-1,-37,-24v2,-11,23,-17,36,-14r28,-38v4,0,9,4,14,10xm113,-27v-12,18,-58,27,-85,24v-16,2,-22,-23,-13,-36v28,-7,85,-11,98,12",w:151},"´":{d:"52,-284v29,-11,50,-34,62,-14v3,12,-86,54,-94,56v-14,0,-16,-12,-12,-23v11,-5,25,-11,44,-19",w:120},"¶":{d:"121,-237v21,-9,44,-13,63,-1v-1,7,5,6,7,11r-4,190v-2,33,4,39,-15,40v-16,1,-10,-20,-10,-33r4,-161v0,-17,-1,-34,-16,-25v2,10,1,23,1,35v-9,46,-6,75,-15,156v-3,4,-7,5,-12,5v-17,-10,-3,-89,-10,-115v-43,14,-98,10,-101,-29v-4,-53,59,-63,104,-75v3,1,4,2,4,2xm95,-204v2,9,-30,50,1,50v35,0,23,-13,29,-43v0,-1,-2,-7,-4,-15v-12,-1,-14,2,-26,8",w:206},"¸":{d:"74,16v32,2,49,14,55,36v-3,7,-14,31,-29,33v-28,4,-57,11,-88,14v-19,-6,-13,-31,8,-33v20,-1,59,-5,73,-14v-17,-14,-68,8,-53,-37v9,-10,2,-28,24,-30v8,8,13,17,10,31",w:129},"º":{d:"13,-273v1,-31,56,-41,83,-18v36,8,14,48,-9,52v-35,6,-64,-5,-74,-34xm81,-269v-7,-7,-20,-11,-29,-6v5,13,13,11,29,6",w:128},"»":{d:"120,-129v9,-33,48,-10,64,5v9,20,86,52,50,86v-36,11,-66,31,-107,40v-6,-7,-9,-13,-9,-17v-2,-13,50,-46,63,-46v11,-18,-33,-42,-48,-47xm1,-128v10,-33,46,-8,64,6v8,19,86,50,51,85v-40,13,-69,30,-108,40v-6,-7,-8,-12,-8,-16v-2,-14,50,-46,63,-47v7,-13,-9,-20,-19,-30v-10,-9,-20,-15,-30,-17",w:252},"¿":{d:"181,-247v3,1,31,2,29,15v-4,22,-37,27,-41,4v1,-5,7,-20,12,-19xm161,-34v-45,-1,-105,19,-124,51v0,11,18,17,54,17v39,0,82,-13,112,4v-10,35,-58,31,-100,31v-47,0,-80,-10,-99,-31v-10,-56,22,-73,64,-90v8,-3,32,-9,74,-18v21,-15,7,-62,22,-92v-1,-5,-1,-11,4,-12v16,0,24,7,24,22v-8,30,-8,73,-17,111v-3,5,-7,7,-14,7",w:213},"À":{d:"161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm150,-268v14,10,54,14,37,41v-28,-7,-62,-22,-100,-42v-2,-3,-2,-26,5,-23v16,4,42,17,58,24"},"Á":{d:"161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm84,-250v31,-5,83,-53,100,-31v0,5,-11,15,-35,28v-16,5,-51,28,-53,25v-14,1,-16,-11,-12,-22"},"Â":{d:"161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm202,-219v-27,-6,-40,-26,-61,-37v-21,7,-39,46,-65,23v-2,-4,-3,-10,-4,-14v19,-4,43,-32,61,-43v27,6,40,22,62,37v12,8,18,17,18,25v0,6,-3,9,-11,9"},"Ã":{d:"161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm100,-285v26,-19,54,19,69,22v4,0,15,-5,34,-13v23,-9,22,-17,31,-12v3,11,-9,9,-7,21v-26,20,-46,30,-59,30v-3,3,-50,-26,-49,-29v-12,1,-31,35,-51,32v-3,-8,-5,-14,-5,-18v10,-9,16,-17,37,-33"},"Ä":{d:"161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm187,-259v0,8,-4,13,-12,13v-18,0,-21,-20,-16,-34v18,-1,28,2,28,21xm90,-284v7,3,28,11,28,18v0,9,-9,18,-18,17v-17,0,-25,-24,-10,-35"},"Å":{d:"161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm112,-239v-31,-17,-9,-61,29,-56v12,2,22,3,33,12v24,39,-30,62,-62,44xm119,-262v2,14,41,8,41,-4v0,-4,-8,-6,-24,-9v-10,-2,-17,10,-17,13"},"Æ":{d:"335,-259v0,30,-102,12,-122,34v10,21,2,79,16,100v24,-6,59,-13,86,-16v23,-2,32,21,13,26r-103,29v-3,22,-4,38,8,43v28,-5,60,-6,86,-14v5,-1,14,7,14,11v6,16,-90,40,-107,40v-29,0,-39,-19,-32,-46v-2,-4,0,-26,-9,-28v-29,2,-58,6,-88,6v-31,0,-40,74,-82,73v-18,-23,4,-37,12,-50v40,-65,112,-126,165,-207v20,-17,69,-11,112,-13v21,0,31,4,31,12xm123,-111v28,1,44,-2,67,-10v-4,-22,5,-49,-7,-65v-3,6,-65,61,-60,75",w:348},"Ç":{d:"48,-108v-12,70,90,71,159,67r138,-9v9,-1,7,9,7,17v-37,16,-80,27,-103,21v-14,9,-40,3,-67,9v-30,0,-64,1,-100,-10v-6,-1,-10,-4,-10,-8v-32,-12,-46,-31,-63,-56v-16,-61,47,-103,83,-121v82,-42,118,-45,200,-60v21,-4,36,34,11,37v-90,11,-148,31,-225,77v-12,8,-23,20,-30,36xm172,18v29,4,47,14,53,35v-2,7,-14,31,-27,31v-28,7,-55,9,-84,14v-18,-5,-13,-32,7,-32v21,0,55,-5,69,-13v-16,-14,-63,10,-50,-35v9,-10,1,-27,23,-29v7,8,11,16,9,29", +w:331},"È":{d:"49,-160v1,-4,-10,-9,-15,-8v-15,-35,32,-30,57,-31r142,-8v2,1,30,7,40,10v-52,16,-133,17,-190,30v-7,9,-12,24,-15,47v26,10,102,-6,141,3v1,3,1,6,2,10v-36,18,-92,12,-149,21v-11,9,-16,41,-16,51v55,-1,111,-21,168,-13v15,-8,48,1,31,18v-53,16,-130,13,-198,29r-39,-8v-4,-19,17,-53,20,-76v-1,0,-7,-11,-9,-18v18,-7,22,-28,30,-57xm184,-236v6,9,5,13,0,23v-28,-7,-62,-21,-100,-41v-3,-2,-3,-27,5,-23v34,11,60,25,95,41",w:252},"É":{d:"49,-160v1,-4,-10,-9,-15,-8v-15,-35,32,-30,57,-31r142,-8v2,1,30,7,40,10v-52,16,-133,17,-190,30v-7,9,-12,24,-15,47v26,10,102,-6,141,3v1,3,1,6,2,10v-36,18,-92,12,-149,21v-11,9,-16,41,-16,51v55,-1,111,-21,168,-13v15,-8,48,1,31,18v-53,16,-130,13,-198,29r-39,-8v-4,-19,17,-53,20,-76v-1,0,-7,-11,-9,-18v18,-7,22,-28,30,-57xm133,-248v27,-11,48,-32,59,-14v3,11,-79,52,-88,53v-14,1,-16,-11,-12,-21v10,-4,23,-11,41,-18",w:252},"Ê":{d:"49,-160v1,-4,-10,-9,-15,-8v-15,-35,32,-30,57,-31r142,-8v2,1,30,7,40,10v-52,16,-133,17,-190,30v-7,9,-12,24,-15,47v26,10,102,-6,141,3v1,3,1,6,2,10v-36,18,-92,12,-149,21v-11,9,-16,41,-16,51v55,-1,111,-21,168,-13v15,-8,48,1,31,18v-53,16,-130,13,-198,29r-39,-8v-4,-19,17,-53,20,-76v-1,0,-7,-11,-9,-18v18,-7,22,-28,30,-57xm199,-211v-27,-6,-39,-26,-60,-37v-21,7,-40,47,-65,22v-2,-7,-2,-7,-4,-13v18,-5,44,-31,61,-43v27,6,41,22,62,37v12,9,18,17,18,25v0,6,-4,9,-12,9",w:252},"Ë":{d:"49,-160v1,-4,-10,-9,-15,-8v-15,-35,32,-30,57,-31r142,-8v2,1,30,7,40,10v-52,16,-133,17,-190,30v-7,9,-12,24,-15,47v26,10,102,-6,141,3v1,3,1,6,2,10v-36,18,-92,12,-149,21v-11,9,-17,41,-17,51v55,0,112,-21,169,-13v15,-8,48,1,31,18v-53,16,-130,13,-198,29r-39,-8v-3,-21,17,-53,20,-76v-1,0,-7,-11,-9,-18v18,-7,22,-28,30,-57xm191,-236v0,8,-4,13,-12,13v-17,0,-19,-19,-16,-34v18,-1,29,1,28,21xm95,-261v7,3,29,9,28,18v0,7,-9,17,-18,17v-18,0,-26,-25,-10,-35",w:252},"Ì":{d:"33,-5v-9,-6,-9,-12,-9,-36v0,-71,8,-119,22,-144v8,-13,14,-20,19,-20v27,20,-11,87,-10,120r-15,76v-1,1,-4,2,-7,4xm72,-247v7,6,55,15,36,40v-28,-7,-61,-21,-99,-41v-3,-2,-3,-27,5,-23v18,3,41,17,58,24",w:111},"Í":{d:"26,-5v-9,-6,-9,-12,-9,-36v0,-71,7,-119,21,-144v8,-13,14,-20,19,-20v28,19,-7,89,-10,120v-2,21,-8,47,-14,76v-2,1,-2,0,-7,4xm6,-233v31,-6,83,-53,101,-31v2,11,-80,53,-89,53v-14,1,-14,-11,-12,-22",w:104},"Î":{d:"53,-9v-15,7,-16,-3,-16,-32v0,-71,7,-119,21,-144v8,-13,14,-20,19,-20v28,19,-7,89,-10,120v-2,21,-8,47,-14,76xm137,-209v-27,-6,-40,-26,-61,-37v-8,0,-9,4,-13,10v-11,13,-50,37,-56,0v18,-5,43,-32,61,-43v28,5,40,21,62,36v12,9,18,17,18,25v0,6,-4,9,-11,9",w:144},"Ï":{d:"33,-5v-9,-6,-9,-12,-9,-36v0,-71,8,-119,22,-144v8,-13,14,-20,19,-20v27,20,-11,87,-10,120r-15,76v-1,1,-4,2,-7,4xm111,-222v0,8,-4,12,-12,12v-18,0,-19,-19,-16,-33v18,-1,29,1,28,21xm15,-247v8,2,29,9,28,17v0,21,-37,24,-36,1v0,-7,2,-13,8,-18",w:110},"Ñ":{d:"224,-182v1,-17,15,-24,22,-38v20,0,13,10,3,33v-3,36,-25,52,-28,94v-10,24,-30,55,-29,82r-19,7v-32,-8,-36,-70,-58,-111v-2,-23,-7,-27,-19,-54v-28,36,-41,93,-71,133v-9,5,-20,-9,-20,-17r73,-149v9,-24,31,-5,36,7v19,41,31,98,53,139v22,-35,34,-69,50,-118v2,-3,3,-3,7,-8xm203,-257v22,-8,41,-24,65,-26v3,11,-8,9,-7,21v-26,20,-46,31,-59,31v-2,3,-49,-27,-49,-29v-11,0,-32,31,-46,32v-11,-2,-12,-21,-4,-23v4,-6,28,-30,48,-34v17,-4,43,28,52,28",w:219},"Ò":{d:"62,-184v78,-31,249,-50,238,74v-6,65,-102,105,-179,115v-77,-7,-152,-71,-101,-149v2,-5,24,-33,42,-40xm279,-120v14,-38,-47,-64,-85,-61v-20,-9,-41,7,-62,0v-11,7,-54,12,-66,24v0,20,-51,35,-38,66v-1,43,50,67,96,67v44,0,162,-55,155,-96xm161,-262v14,10,52,13,37,41v-28,-7,-62,-21,-100,-41v-3,-3,-3,-26,5,-24v16,5,42,17,58,24",w:273},"Ó":{d:"62,-184v78,-31,249,-50,238,74v-6,65,-102,105,-179,115v-77,-7,-152,-71,-101,-149v2,-5,24,-33,42,-40xm279,-120v14,-38,-47,-64,-85,-61v-20,-9,-41,7,-62,0v-11,7,-54,12,-66,24v0,20,-51,35,-38,66v-1,43,50,67,96,67v44,0,162,-55,155,-96xm142,-250v27,-11,47,-32,59,-14v2,11,-80,53,-89,53v-13,1,-15,-11,-12,-21v10,-5,24,-11,42,-18",w:273},"Ô":{d:"62,-184v78,-31,249,-50,238,74v-6,65,-102,105,-179,115v-77,-7,-152,-71,-101,-149v2,-5,24,-33,42,-40xm279,-120v14,-38,-47,-64,-85,-61v-20,-9,-41,7,-62,0v-11,7,-54,12,-66,24v0,20,-51,35,-38,66v-1,43,50,67,96,67v44,0,162,-55,155,-96xm157,-282v17,18,52,34,54,63v-24,12,-52,-36,-53,-29r-42,34v-23,-4,-6,-31,5,-34v1,1,27,-37,36,-34",w:273},"Õ":{d:"62,-184v78,-31,249,-50,238,74v-6,65,-102,105,-179,115v-77,-7,-152,-71,-101,-149v2,-5,24,-33,42,-40xm279,-120v14,-38,-47,-64,-85,-61v-20,-9,-41,7,-62,0v-11,7,-54,12,-66,24v0,20,-51,35,-38,66v-1,43,50,67,96,67v44,0,162,-55,155,-96xm116,-270v26,-19,54,19,69,22v4,0,15,-5,34,-13v23,-10,22,-16,31,-12v3,11,-8,9,-7,21v-45,28,-47,42,-88,16v-29,-19,-12,-20,-43,2v-8,5,-12,18,-23,15v-13,-3,-12,-20,-4,-23v4,-6,14,-15,31,-28",w:273},"Ö":{d:"62,-184v78,-31,249,-50,238,74v-6,65,-102,105,-179,115v-77,-7,-152,-71,-101,-149v2,-5,24,-33,42,-40xm279,-120v14,-38,-47,-64,-85,-61v-20,-9,-41,7,-62,0v-11,7,-54,12,-66,24v0,20,-51,35,-38,66v-1,43,50,67,96,67v44,0,162,-55,155,-96xm197,-229v0,8,-4,13,-12,13v-17,0,-19,-19,-16,-34v18,-1,29,1,28,21xm101,-254v7,3,28,9,27,18v1,8,-8,17,-17,17v-18,0,-26,-24,-10,-35",w:273},"Ø":{d:"76,-211v41,-13,100,-22,140,-3v26,-19,40,-29,44,-29v10,0,15,7,15,20v0,15,-23,23,-30,35v23,39,29,114,-21,139v-36,19,-102,35,-147,18v-14,-5,-29,29,-46,35v-25,-13,-19,-24,3,-56v-9,-17,-28,-27,-28,-60v0,-38,23,-72,70,-99xm107,-66v55,15,125,-12,123,-70v0,-16,-5,-25,-13,-29r-110,95r0,4xm39,-108v-1,3,17,31,22,27v8,-6,109,-90,123,-106v-15,-11,-43,1,-63,2v-33,10,-80,35,-82,77",w:270},"Ù":{d:"281,-202v6,67,-30,121,-71,152v-3,14,-47,26,-60,39v-41,20,-110,1,-125,-26v-24,-44,-28,-84,-8,-127v12,-26,23,-38,37,-22v-2,2,-3,5,-3,10v-34,26,-30,116,5,134v22,32,86,-1,109,-8v38,-28,104,-64,97,-149v2,-10,7,-8,19,-3xm151,-243v14,10,54,14,37,41v-28,-7,-61,-22,-99,-42v-3,-2,-4,-25,4,-23v16,5,42,17,58,24",w:262},"Ú":{d:"281,-202v6,67,-30,121,-71,152v-3,14,-47,26,-60,39v-41,20,-110,1,-125,-26v-24,-44,-28,-84,-8,-127v12,-26,23,-38,37,-22v-2,2,-3,5,-3,10v-34,26,-30,116,5,134v22,32,86,-1,109,-8v38,-28,104,-64,97,-149v2,-10,7,-8,19,-3xm194,-265v3,-1,11,4,11,6v3,12,-81,52,-89,54v-14,0,-13,-9,-12,-22",w:262},"Û":{d:"281,-202v6,67,-30,121,-71,152v-3,14,-47,26,-60,39v-41,20,-110,1,-125,-26v-24,-44,-28,-84,-8,-127v12,-26,23,-38,37,-22v-2,2,-3,5,-3,10v-34,26,-30,116,5,134v22,32,86,-1,109,-8v38,-28,104,-64,97,-149v2,-10,7,-8,19,-3xm150,-266v24,11,58,27,73,46v0,5,-3,6,-10,6v-28,2,-61,-30,-63,-25v-10,0,-57,40,-69,23v3,-10,-8,-15,8,-19v17,-1,34,-29,61,-31",w:262},"Ü":{d:"281,-202v6,67,-30,121,-71,152v-3,14,-47,26,-60,39v-41,20,-110,1,-125,-26v-24,-44,-28,-84,-8,-127v12,-26,23,-38,37,-22v-2,2,-3,5,-3,10v-34,26,-29,116,5,134v22,32,86,-1,109,-8v38,-28,104,-64,97,-149v2,-10,7,-8,19,-3xm197,-227v0,8,-4,13,-12,13v-18,0,-21,-20,-16,-34v18,-1,28,2,28,21xm101,-252v7,3,27,10,27,18v0,8,-9,18,-18,17v-18,-1,-24,-25,-9,-35",w:262},"ß":{d:"33,10v-29,4,-28,-32,-16,-70v18,-58,17,-137,56,-176v12,-24,46,-58,82,-43v20,8,47,24,47,54v0,30,-62,59,-67,90v33,23,56,33,63,63v-18,21,-22,36,-48,54v-24,17,-27,41,-53,16v-2,-19,7,-35,24,-42v15,-13,26,-22,34,-40v-13,-17,-78,-29,-56,-70v-3,-27,64,-54,66,-86v-8,-25,-41,-4,-52,8v-29,30,-47,83,-51,141v-17,25,-8,71,-29,101"},"à":{d:"118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-10,2,-43,-17,-42,-36v0,-14,7,-40,27,-41v39,-26,92,-36,104,9v0,6,-2,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm99,-137v7,6,56,14,37,40v-28,-7,-62,-21,-100,-41v-2,-3,-2,-26,5,-23v16,4,42,17,58,24",w:173},"á":{d:"118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-10,2,-43,-17,-42,-36v0,-14,7,-40,27,-41v39,-26,92,-36,104,9v0,6,-2,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm32,-117v24,-3,85,-55,101,-32v3,11,-80,53,-89,53v-13,2,-14,-10,-12,-21",w:173},"â":{d:"118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-10,2,-43,-17,-42,-36v0,-14,7,-40,27,-41v39,-26,92,-36,104,9v0,6,-2,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm147,-97v-27,-6,-39,-26,-60,-37v-21,7,-38,46,-65,23v-2,-5,-3,-10,-4,-14v18,-4,43,-31,61,-42v28,5,40,21,62,36v12,8,18,17,18,25v0,6,-4,9,-12,9",w:173},"ã":{d:"118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-10,2,-43,-17,-42,-36v0,-14,7,-40,27,-41v39,-26,92,-36,104,9v0,6,-2,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm114,-136v22,-8,41,-24,64,-26v3,11,-7,10,-7,21v-26,20,-45,30,-58,30v-3,3,-49,-26,-49,-28v-10,-1,-32,35,-51,31v-12,-32,8,-29,32,-51v24,-21,54,20,69,23",w:173},"ä":{d:"118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-32,5,-66,-64,-15,-77v39,-26,92,-36,104,9v0,6,-3,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm142,-119v0,8,-4,13,-12,13v-18,0,-21,-20,-16,-34v18,-1,28,2,28,21xm46,-144v7,3,28,9,27,18v1,8,-9,18,-18,17v-18,-1,-25,-25,-9,-35",w:173},"å":{d:"118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-10,2,-43,-17,-42,-36v0,-14,7,-40,27,-41v39,-26,92,-36,104,9v0,6,-2,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm54,-101v-37,-20,-9,-71,34,-65v13,1,25,3,38,13v27,45,-34,73,-72,52xm61,-128v4,20,48,7,49,-5v0,-5,-9,-7,-28,-10v-12,-2,-21,11,-21,15",w:173},"æ":{d:"145,-44r33,7v2,42,-59,29,-85,16v-6,7,-35,24,-48,15v-19,2,-35,-21,-33,-37v2,-24,5,-19,28,-36v-6,-8,-45,3,-33,-21v21,-22,58,-12,85,-1v6,-5,35,-28,45,-15v20,-4,36,17,36,35v0,23,-4,21,-28,37xm111,-72v12,3,49,-16,19,-17v-5,0,-20,12,-19,17xm74,-50v-14,-4,-48,16,-19,17v4,1,19,-14,19,-17",w:184},"ç":{d:"108,-118v30,-6,56,21,25,33v-24,-6,-39,5,-75,23v-7,4,-12,12,-15,22v31,28,86,3,128,9v3,28,-29,16,-44,28v-53,15,-106,10,-120,-37v0,-48,62,-70,101,-78xm92,18v23,4,45,12,48,32v-2,6,-12,28,-25,28v-24,6,-50,10,-77,13v-16,-4,-11,-28,7,-29v17,-1,51,-4,63,-12v-14,-15,-57,10,-46,-32v9,-8,0,-25,21,-26v6,6,12,14,9,26",w:171},"è":{d:"108,-124v42,-3,70,39,50,73v-22,-1,-70,12,-94,10v-1,1,-2,3,-2,3v0,3,12,7,35,14v18,0,64,7,30,21v-10,14,-31,6,-53,6v-26,-7,-70,-26,-70,-58v0,-54,48,-65,104,-69xm130,-78v-2,-35,-66,-13,-77,3v16,6,62,6,77,-3xm95,-166v7,6,54,14,37,40v-28,-7,-62,-21,-100,-41v-3,-3,-3,-26,5,-24v16,5,42,18,58,25",w:161},"é":{d:"108,-124v42,-3,70,39,50,73v-22,-1,-70,12,-94,10v-1,1,-2,3,-2,3v0,3,12,7,35,14v18,0,64,7,30,21v-10,14,-31,6,-53,6v-26,-7,-70,-26,-70,-58v0,-54,48,-65,104,-69xm130,-78v-2,-35,-66,-13,-77,3v16,6,62,6,77,-3xm76,-169v26,-11,48,-32,59,-14v3,10,-80,53,-89,53v-14,1,-14,-10,-12,-21v15,-7,16,-7,42,-18",w:161},"ê":{d:"108,-124v42,-3,70,39,50,73v-22,-1,-70,12,-94,10v-1,1,-2,3,-2,3v0,3,12,7,35,14v18,0,64,7,30,21v-10,14,-31,6,-53,6v-26,-7,-70,-26,-70,-58v0,-54,48,-65,104,-69xm130,-78v-2,-35,-66,-13,-77,3v16,6,62,6,77,-3xm145,-129v-27,-6,-39,-26,-60,-37v-8,0,-10,4,-14,10v-11,15,-51,34,-56,0v17,-4,44,-32,61,-43v28,5,41,21,63,36v12,8,17,17,17,25v0,6,-3,9,-11,9",w:161},"ë":{d:"108,-124v42,-3,70,39,50,73v-22,-1,-70,12,-94,10r-3,3v0,3,12,7,36,14v18,0,64,7,30,21v-10,14,-31,6,-53,6v-26,-7,-67,-27,-71,-58v7,-52,48,-65,105,-69xm130,-78v-2,-35,-66,-13,-77,3v16,6,62,6,77,-3xm140,-144v0,8,-4,12,-12,12v-18,0,-19,-19,-16,-33v18,-1,29,1,28,21xm44,-169v7,3,28,9,28,17v0,9,-9,18,-18,18v-18,0,-25,-24,-10,-35",w:161},"ì":{d:"57,-98v22,5,13,50,11,95v-7,1,-11,2,-20,-4v1,-7,-12,-18,-10,-24v4,-22,-2,-64,19,-67xm70,-139v14,10,54,14,37,41v-28,-7,-61,-22,-99,-42v-3,-2,-3,-25,5,-23v15,5,41,17,57,24",w:109},"í":{d:"59,-98v20,4,15,53,10,95v-6,1,-11,2,-19,-4v1,-7,-12,-18,-10,-24v4,-22,-4,-65,19,-67xm50,-139v27,-11,49,-32,59,-14v3,11,-80,53,-89,53v-14,1,-14,-12,-11,-22v15,-7,14,-6,41,-17",w:105},"î":{d:"72,-98v20,5,12,51,10,95v-6,2,-13,1,-20,-4v1,-8,-12,-18,-10,-24v4,-22,-3,-65,20,-67xm134,-94v-26,-7,-39,-25,-60,-37v-7,0,-9,4,-13,10v-14,15,-51,34,-56,-1v18,-4,45,-33,61,-43v27,6,40,22,62,37v12,8,18,17,18,25v0,6,-4,9,-12,9",w:143},"ï":{d:"55,-97v19,5,15,53,10,95v-17,5,-26,-14,-30,-28v6,-20,-3,-65,20,-67xm110,-118v0,8,-4,13,-12,13v-17,0,-19,-19,-16,-34v18,-1,29,1,28,21xm14,-143v6,3,28,8,28,17v0,9,-9,18,-18,18v-18,0,-25,-24,-10,-35",w:107},"ñ":{d:"115,-129v34,6,59,50,59,105v0,31,-15,24,-30,17v-15,-29,-5,-42,-20,-81v-35,-13,-68,52,-88,61v-20,-4,-38,-36,-19,-59v0,-12,3,-14,10,-28v11,-8,18,11,27,12xm117,-166v22,-7,41,-23,64,-26v3,11,-7,10,-7,21v-26,20,-45,30,-58,30v-3,3,-49,-26,-49,-28v-10,-1,-32,35,-51,31v-5,-12,-8,-16,0,-23v4,-6,28,-29,48,-33v17,-3,43,28,53,28",w:171},"ò":{d:"102,-132v50,-20,99,16,99,60v0,54,-60,64,-108,79v-50,-2,-110,-48,-76,-100v22,-17,49,-33,85,-39xm136,-104v-34,0,-91,27,-94,47v16,51,125,16,125,-22v0,-17,-10,-25,-31,-25xm115,-181v14,10,51,13,37,40v-28,-7,-62,-21,-100,-41v-3,-2,-3,-26,5,-23v16,5,42,17,58,24",w:191},"ó":{d:"102,-132v50,-20,99,16,99,60v0,54,-60,64,-108,79v-50,-2,-110,-48,-76,-100v22,-17,49,-33,85,-39xm136,-104v-34,0,-91,27,-94,47v16,51,125,16,125,-22v0,-17,-10,-25,-31,-25xm49,-154v24,-3,85,-55,101,-32v3,11,-80,53,-89,53v-14,0,-13,-8,-12,-21",w:191},"ô":{d:"102,-132v50,-20,99,16,99,60v0,54,-60,64,-108,79v-50,-2,-110,-48,-76,-100v22,-17,49,-33,85,-39xm136,-104v-34,0,-91,27,-94,47v16,51,125,16,125,-22v0,-17,-10,-25,-31,-25xm110,-177v-22,6,-38,45,-65,22v-2,-4,-3,-9,-4,-13v18,-4,43,-32,61,-43v27,6,40,21,62,36v12,9,18,17,18,25v1,11,-15,10,-23,7",w:191},"õ":{d:"102,-132v50,-20,99,16,99,60v0,54,-60,64,-108,79v-50,-2,-110,-48,-76,-100v22,-17,49,-33,85,-39xm136,-104v-34,0,-91,27,-94,47v16,51,125,16,125,-22v0,-17,-10,-25,-31,-25xm58,-199v26,-21,54,18,69,22v4,0,15,-5,34,-13v22,-9,21,-16,31,-13v3,11,-9,9,-7,22v-26,20,-46,30,-59,30v-2,4,-49,-28,-49,-29v-11,0,-32,31,-46,32v-12,-3,-13,-21,-4,-23v4,-6,14,-15,31,-28",w:191},"ö":{d:"102,-132v50,-20,99,16,99,60v0,54,-60,64,-108,79v-50,-2,-110,-48,-76,-100v22,-17,49,-33,85,-39xm136,-104v-34,0,-91,27,-94,47v16,51,125,16,125,-22v0,-17,-10,-25,-31,-25xm161,-160v0,8,-4,13,-12,13v-17,0,-19,-19,-16,-34v18,-1,29,1,28,21xm65,-185v7,3,28,9,28,18v0,7,-9,18,-18,17v-18,1,-25,-24,-10,-35",w:191},"÷":{d:"167,-158v-4,3,-7,9,-10,20v-23,4,-34,-8,-29,-31v14,-6,18,1,39,11xm78,-72v-53,11,-53,12,-69,-15v-1,-12,11,-17,22,-14v71,-13,151,-18,230,-24v11,1,21,16,23,28v-28,20,-90,11,-126,16v-36,5,-62,5,-80,9xm123,-40v19,-17,41,-1,41,17v0,13,-6,19,-17,19v-15,0,-29,-14,-24,-36",w:293},"ø":{d:"76,-136v17,7,33,-8,51,0v9,-6,21,-13,36,-21v23,22,-13,31,3,50v11,13,4,21,14,35v-4,5,-1,14,-4,23v-14,23,-45,41,-84,39v-12,2,-29,28,-41,38v-2,-11,-34,-10,-15,-30v3,-7,5,-11,5,-11v-15,-24,-60,-54,-22,-89v23,-21,25,-32,57,-34xm102,-54v18,1,50,-19,30,-32v-12,7,-22,18,-30,32xm85,-92v-14,3,-26,8,-38,17v2,20,17,13,26,0v6,-8,12,-13,12,-17",w:188},"ù":{d:"196,-129v-1,-4,12,-13,15,-13v6,0,8,7,8,21v0,24,-7,25,-13,45v-7,7,-14,21,-24,29v-9,24,-61,45,-89,45v-63,0,-105,-72,-67,-126v24,-3,19,27,18,46v-1,26,23,42,54,40v38,-3,88,-51,98,-87xm126,-166v7,6,56,14,37,40v-28,-7,-62,-22,-100,-42v-2,-3,-2,-26,5,-23v16,4,42,18,58,25",w:213},"ú":{d:"196,-129v-1,-4,12,-13,15,-13v6,0,8,7,8,21v0,24,-7,25,-13,45v-7,7,-14,21,-24,29v-9,24,-61,45,-89,45v-63,0,-105,-72,-67,-126v24,-3,19,27,18,46v-1,26,23,42,54,40v38,-3,88,-51,98,-87xm106,-174v26,-11,48,-32,59,-14v3,11,-81,53,-89,54v-13,1,-15,-12,-11,-22v15,-7,14,-7,41,-18",w:213},"û":{d:"196,-129v-1,-4,12,-13,15,-13v6,0,8,7,8,21v0,24,-7,25,-13,45v-7,7,-14,21,-24,29v-9,24,-61,45,-89,45v-63,0,-105,-72,-67,-126v24,-3,19,27,18,46v-1,26,23,42,54,40v38,-3,88,-51,98,-87xm172,-143v-27,-6,-39,-26,-60,-37v-8,0,-10,4,-14,10v-11,15,-49,35,-56,0v17,-4,44,-32,61,-43v27,6,41,21,63,36v12,9,17,17,17,25v0,6,-3,9,-11,9",w:213},"ü":{d:"196,-129v-1,-4,12,-13,15,-13v6,0,8,7,8,21v0,24,-7,25,-13,45v-7,7,-14,21,-24,29v-9,24,-61,45,-89,45v-63,0,-105,-72,-67,-126v24,-3,19,27,18,46v-1,26,23,42,54,40v38,-3,88,-51,98,-87xm168,-161v0,8,-3,13,-11,13v-17,0,-20,-19,-17,-34v18,-1,29,1,28,21xm72,-186v7,3,29,9,28,18v0,7,-9,18,-18,17v-18,1,-25,-24,-10,-35",w:213},"ÿ":{d:"118,85v-11,11,-11,38,-22,61v-2,-1,-2,31,-17,27v-11,0,-21,-10,-21,-22v20,-66,23,-61,64,-168v-22,1,-38,16,-58,4v-22,4,-51,-16,-51,-42v-11,-13,-7,-59,7,-58v16,1,21,24,22,51v21,33,66,5,94,-7v4,-3,26,-14,38,-29r17,0v23,44,-23,59,-34,102v-6,9,-13,9,-13,26v-15,6,-12,33,-27,48v0,2,1,4,1,7xm158,-136v0,8,-4,13,-12,13v-18,0,-21,-20,-16,-34v18,-1,29,1,28,21xm62,-161v7,3,28,9,27,18v1,8,-8,17,-17,17v-18,0,-26,-24,-10,-35",w:190},"ı":{d:"43,-103v21,4,16,56,11,100v-7,2,-11,1,-20,-5v0,-7,-13,-18,-11,-25v4,-23,-3,-68,20,-70",w:80},"Œ":{d:"247,-243v71,4,161,-7,245,-8v17,0,27,6,27,17v-8,27,-70,14,-104,23v-3,1,-52,0,-65,7r0,4v16,16,17,29,17,65v32,10,74,-14,99,16v-14,25,-76,17,-127,24v-17,18,-55,32,-75,51v85,0,128,-3,204,-11v15,-2,21,11,20,29v-78,24,-177,12,-270,24v-24,3,-24,-29,-48,-15v-46,7,-70,4,-105,-4v-19,-18,-42,-22,-52,-55v-10,-34,0,-47,12,-78v-18,-59,48,-78,105,-84v17,-18,103,-13,117,-5xm125,-45v76,-9,186,-43,209,-105v-26,-67,-137,-83,-217,-54v3,34,-45,25,-60,58v-41,48,5,108,68,101",w:492},"œ":{d:"185,-54v25,28,107,-17,104,33v-12,12,-60,14,-87,14v0,0,1,1,2,1v-11,1,-39,-9,-50,-17v-28,17,-75,32,-114,7v-22,-14,-34,-11,-34,-41v0,-36,33,-49,48,-75v29,-16,72,-3,95,11v12,-9,48,-27,59,-26v30,0,64,15,65,40v0,7,-6,20,-20,37v-29,1,-44,11,-68,16xm226,-106v-21,-7,-41,-2,-48,13v14,1,42,-7,48,-13xm132,-87v-21,-35,-94,11,-92,24v-2,14,43,21,61,21v25,0,36,-20,31,-45",w:295},"Ÿ":{d:"176,-189v35,20,-25,54,-39,72v-26,34,-57,57,-74,104v-10,15,-4,14,-23,3r0,-10v19,-44,27,-46,50,-81v-9,-5,-24,4,-34,4v-38,0,-54,-50,-44,-87v21,-5,18,19,22,35v4,18,15,27,29,27v41,0,60,-39,113,-67xm153,-222v0,8,-3,12,-11,12v-18,0,-21,-19,-16,-33v18,-1,28,2,27,21xm57,-247v8,2,29,9,28,17v0,21,-37,24,-36,1v0,-7,2,-13,8,-18",w:135},"ƒ":{d:"115,-262v-23,6,-39,63,-38,96v1,3,57,2,54,16v1,22,-45,15,-51,30v3,34,12,68,10,103v14,17,-18,53,-28,63v-48,8,-89,5,-95,-37v20,-5,77,21,83,-18v17,-29,-4,-61,0,-98v0,-5,-3,-10,-7,-17v-33,4,-43,-17,-25,-37v10,-4,27,5,27,-10v0,-43,15,-77,32,-109v12,-7,16,-22,38,-20v11,1,51,35,25,55v-9,1,-16,-17,-25,-17",w:145},"ˆ":{d:"144,-220v-29,0,-41,-27,-63,-39v-8,0,-11,5,-15,11v-17,12,-32,31,-54,13v-2,-5,-3,-9,-4,-14v20,-5,45,-33,64,-45v28,6,43,23,65,38v12,9,19,19,19,27v0,6,-4,9,-12,9",w:165},"ˇ":{d:"39,-286v33,46,63,-4,96,-16v6,0,9,6,9,19v0,24,-49,46,-77,46v-32,0,-52,-28,-59,-48v0,-25,23,-17,31,-1",w:153},"˘":{d:"65,-269v20,-11,45,-31,74,-36v20,30,-42,40,-59,66v-5,6,-11,8,-18,8v-8,-3,-45,-32,-51,-54v5,-24,14,-13,34,1",w:158},"˙":{d:"23,-302v15,-13,32,1,32,18v1,22,-36,29,-39,4v0,0,3,-7,7,-22",w:70},"˚":{d:"23,-225v-43,-24,-11,-85,41,-78v16,2,31,4,46,17v32,54,-41,86,-87,61xm33,-257v2,20,57,11,57,-6v0,-6,-11,-9,-33,-12v-14,-2,-24,13,-24,18",w:123},"˛":{d:"82,-5v-8,12,-16,55,-21,75v0,4,2,7,7,7v6,0,22,-7,50,-20v8,0,12,7,12,20v-2,22,-6,14,-27,30v-15,12,-26,16,-30,16v-47,-8,-59,-14,-56,-75v8,-27,12,-54,25,-77v19,-21,35,15,40,24",w:138},"˜":{d:"47,-300v26,-21,57,19,72,23v4,0,16,-5,36,-14v24,-10,22,-16,32,-13v3,12,-7,11,-7,23v-27,21,-48,32,-62,32v-3,2,-52,-27,-51,-31v-12,-2,-34,40,-54,33v-4,-13,-8,-18,1,-24v5,-7,16,-15,33,-29",w:186},"˝":{d:"91,-249v15,-11,38,-53,57,-29v0,9,0,14,-3,23v-2,3,-20,22,-54,55v-5,5,-10,8,-16,8v-17,2,-6,-22,-7,-31v-1,0,-2,0,-4,1v-17,21,-29,31,-50,27v-5,-18,-3,-15,3,-27v23,-27,40,-46,48,-59v7,-12,31,3,29,9v-1,14,-3,24,-13,31v4,4,9,-1,10,-8",w:151},"–":{d:"6,-66v-8,-72,79,-21,146,-39v37,-10,79,7,111,0v9,8,14,13,14,17v2,26,-72,13,-99,21v-83,4,-124,21,-172,1",w:282},"—":{d:"175,-106v86,-9,201,1,286,-1v11,6,13,11,6,30v-118,15,-246,10,-377,10v-25,0,-73,3,-82,-8r-2,-26v11,-13,32,-9,52,-7v38,3,84,-5,117,2",w:485},"‘":{d:"73,-262v-10,7,-41,39,-38,69v-15,13,-27,-16,-28,-28v-2,-20,51,-83,66,-83v20,0,25,41,0,42",w:95},"’":{d:"74,-300v13,31,-1,99,-44,101v-13,0,-19,-5,-19,-15v6,-10,31,-34,35,-59v2,-11,1,-32,11,-32v6,0,11,2,17,5",w:90},"‚":{d:"25,63v-26,21,-48,-2,-22,-24v14,-12,35,-40,35,-69v3,-2,3,-11,12,-9v35,17,5,88,-25,102",w:97},"“":{d:"66,-261v-21,5,-37,51,-22,77v0,4,-2,6,-7,6v-31,-9,-38,-62,-12,-94v12,-15,21,-28,31,-34v16,-1,19,24,22,34v10,-11,22,-32,43,-23v-2,8,4,16,5,19v-6,11,-51,53,-29,74v-12,21,-30,5,-33,-17v-6,-13,9,-28,2,-42",w:118},"”":{d:"120,-294v12,3,30,26,19,34v2,15,-40,70,-55,66v-40,-10,10,-51,14,-64v3,-3,8,-31,22,-36xm70,-306v14,3,26,34,16,49v-19,30,-31,45,-58,59v-12,-11,-33,-17,-7,-36v13,-19,36,-27,36,-59v0,-5,9,-13,13,-13",w:148},"„":{d:"25,63v-26,21,-48,-2,-22,-24v11,-9,36,-41,35,-69v3,-2,4,-12,12,-9v36,14,5,89,-25,102xm84,64v-24,20,-45,-1,-21,-24v21,-20,32,-35,35,-69v3,-2,3,-11,12,-9v36,17,9,86,-26,102",w:135},"†":{d:"22,-286v15,6,5,-20,19,-19v9,-3,15,21,17,22v6,1,12,3,20,6v3,10,5,16,-9,16v-34,-10,-6,51,-34,52v-20,-7,11,-47,-15,-49v-14,3,-25,-5,-17,-24v7,-2,14,-4,19,-4",w:77},"‡":{d:"102,-284v16,2,42,-2,33,18v-7,15,-42,1,-38,30v3,3,31,1,30,11v4,15,-29,19,-36,24v-2,18,-4,24,-16,29r-25,-26v-25,7,-53,3,-42,-25v4,-10,70,0,51,-22v-17,4,-41,12,-39,-15v-5,-16,39,-18,44,-20v4,-2,7,-10,10,-24v19,-3,23,6,28,20",w:145},"•":{d:"130,-114v0,47,-124,54,-120,-8r6,-31v44,-28,64,-34,104,0v8,6,10,20,10,39",w:139},"…":{d:"244,-24v-1,21,-38,32,-41,3v-2,-19,23,-22,34,-17v0,7,0,15,7,14xm113,-24v0,-22,28,-21,38,-8v5,34,-39,40,-38,8xm35,-2v-10,-2,-36,-17,-18,-29v-1,-15,17,-17,31,-6v7,17,6,33,-13,35",w:258},"‰":{d:"398,-131v58,-1,87,13,72,65v-1,30,-66,63,-99,65v-56,3,-99,-58,-62,-102v2,2,5,2,8,2v20,-16,51,-17,81,-30xm202,-279v33,0,94,-24,95,18v-7,31,-33,27,-54,55v-36,32,-71,74,-112,99v-18,18,-40,34,-51,58v-19,14,-25,37,-56,40v-17,2,-25,-29,-10,-40v15,-11,40,-37,52,-52r87,-72v-51,13,-100,6,-116,-27v1,-5,-6,-30,-9,-36v-3,-5,22,-41,27,-39v29,2,16,34,5,49v0,15,14,23,42,23v42,0,59,-31,28,-38v-17,-4,-53,3,-50,-23v0,-7,1,-12,4,-16v16,-9,36,4,49,5v0,0,23,-4,69,-4xm222,-118v33,-2,55,18,50,57v-29,36,-48,45,-96,50v-27,-5,-56,-17,-58,-51v13,-37,64,-43,104,-56xm335,-61v13,44,101,7,108,-31v-11,-3,-20,-4,-30,-4v-18,-1,-82,18,-78,35xm225,-244v-18,0,-29,-1,-46,3v7,15,6,28,0,43v15,-14,34,-30,46,-46xm164,-53v26,5,59,-10,76,-26v-17,-16,-49,2,-67,14v1,8,-8,6,-9,12",w:485},"‹":{d:"64,-107v9,17,86,17,87,43v0,11,-4,16,-13,16v-36,-11,-70,-22,-109,-31v-19,-4,-18,-14,-9,-36v59,-56,93,-84,101,-84v17,0,19,20,13,29",w:159},"›":{d:"41,-181v26,27,112,44,70,91r-82,60v-20,3,-25,-23,-13,-32r70,-51r-66,-46v-5,-6,-4,-28,5,-29v4,2,9,4,16,7",w:137},"⁄":{d:"193,-305v7,6,17,31,3,41v-10,7,-12,13,-21,25v-79,56,-190,209,-197,260r-18,0v-23,-19,9,-70,15,-85v52,-83,121,-179,218,-241",w:120},"™":{d:"213,-307v28,9,11,49,7,75v-1,4,-4,6,-11,6v-7,1,-11,-14,-11,-34v-14,-6,-34,34,-46,28v-2,0,-10,-9,-24,-27v-10,7,-3,36,-27,31v-15,-24,-3,-27,1,-48v-6,-7,-27,-1,-31,3v-3,14,-7,30,-11,51v-5,10,-29,9,-24,-12v-5,-8,1,-18,3,-35v-13,6,-33,2,-29,-18v20,-17,64,-17,100,-19v28,-1,29,30,45,39v11,-6,35,-32,58,-40",w:239},"∆":{d:"18,-1v-24,-30,8,-48,25,-71v14,-19,34,-28,40,-56v20,-35,29,-14,57,4v9,39,43,62,57,102v0,16,-34,17,-50,14v-28,2,-72,4,-129,7xm139,-47r-22,-52v-12,-5,-12,15,-24,27v-7,6,-14,16,-23,28v23,1,36,-1,69,-3",w:199},"∙":{d:"57,-77v6,18,-7,21,-19,23v-34,6,-25,-40,-9,-43v18,-3,29,8,28,20",w:67},"√":{d:"364,-218v43,-21,80,-51,104,-32v-3,19,-24,21,-44,40v-41,15,-78,53,-136,78r-137,98v-20,16,-79,66,-91,68v-3,1,-25,-11,-24,-13v-4,-28,-43,-61,-30,-85v26,-15,42,19,58,32r295,-188v0,1,2,2,5,2",w:474},"∞":{d:"322,-72v-4,22,-54,41,-76,41v-43,0,-83,-17,-114,-35v-46,19,-125,53,-128,-18v-1,-14,10,-22,13,-35v29,-10,62,-31,97,-4v37,28,47,5,75,-8v40,-19,73,-10,114,1v13,1,18,55,19,58xm228,-69v15,0,62,-12,61,-25v-19,-23,-89,-10,-105,11v0,2,1,4,2,4v28,6,42,10,42,10xm75,-102v-13,2,-41,4,-44,19v0,4,3,7,10,7v21,0,40,-6,54,-17v-9,-6,-16,-9,-20,-9",w:330},"∫":{d:"62,-151v-7,-70,20,-130,63,-150v28,1,39,10,70,23v20,8,6,33,-6,35v-29,-13,-45,-20,-49,-20v-20,-4,-45,51,-43,70v8,60,5,129,5,189v0,62,-27,93,-79,93v-37,-1,-71,-14,-63,-57v21,0,79,34,91,-2v16,-3,14,-64,21,-85v-2,-31,-1,-74,-10,-96",w:156},"≈":{d:"133,-112v21,15,48,-30,78,-17v3,3,5,7,5,9v-8,30,-47,45,-76,45v-19,0,-64,-48,-90,-21r-29,20v-6,-1,-17,-16,-15,-32v24,-17,70,-42,107,-21v4,4,10,9,20,17xm138,-57v28,2,48,-25,76,-26v13,30,-21,42,-40,53v-41,24,-77,-15,-114,-23v-15,14,-46,32,-49,-1v-3,-9,27,-28,54,-30",w:223},"≠":{d:"48,-130v29,11,49,-57,60,-50v25,6,7,27,-1,46v22,5,29,7,21,22v-18,2,-48,-1,-50,15v9,8,53,-7,54,10v-4,22,-46,20,-72,24v-7,13,-18,32,-34,57v-8,6,-15,-3,-13,-14v-1,-9,15,-39,14,-45v-30,5,-24,-17,-13,-25v12,-1,36,4,29,-13v-14,0,-47,6,-36,-12v0,-18,27,-13,41,-15",w:140},"≤":{d:"73,-109v10,15,87,16,87,42v0,11,-5,16,-13,16v-36,-11,-69,-24,-109,-31v-18,-8,-18,-13,-9,-36v59,-56,93,-83,101,-83v16,0,18,17,14,28v-27,24,-42,35,-71,64xm10,-29v35,-12,117,-26,148,-3v1,2,-5,19,-8,18r-124,15v-16,2,-26,-18,-16,-30",w:168},"≥":{d:"115,-174v20,7,53,36,20,57v-19,11,-91,68,-82,59v-18,3,-25,-22,-13,-31v15,-10,14,-10,70,-51r-50,-37v-5,-4,-5,-27,4,-28v16,7,40,17,51,31xm14,-32v33,-10,86,-14,127,-10v12,12,5,23,-11,27v-49,9,-82,13,-99,13v-22,0,-24,-16,-17,-30",w:163},"◊":{d:"76,-158v48,-8,64,11,100,36v28,19,-5,39,-22,54v-15,13,-40,32,-48,49v-17,5,-12,0,-27,-16v-6,-6,-86,-31,-68,-53r2,-9v27,-23,48,-44,63,-61xm93,-65v12,-2,35,-31,41,-38v-5,-10,-16,-14,-34,-24v-12,12,-36,29,-40,44v19,11,30,18,33,18",w:199}}}),"undefined"==typeof Raphael&&"undefined"==typeof Snap)throw new Error("Raphael or Snap.svg is required to be included.");if(_.isEmpty(Diagram.themes))throw new Error("No themes were registered. Please call registerTheme(...).");Diagram.themes.hand=Diagram.themes.snapHand||Diagram.themes.raphaelHand,Diagram.themes.simple=Diagram.themes.snapSimple||Diagram.themes.raphaelSimple,Diagram.prototype.drawSVG=function(container,options){var defaultOptions={theme:"hand"};if(options=_.defaults(options||{},defaultOptions),!(options.theme in Diagram.themes))throw new Error("Unsupported theme: "+options.theme);var div=_.isString(container)?document.getElementById(container):container;if(null===div||!div.tagName)throw new Error("Invalid container: "+container);var Theme=Diagram.themes[options.theme];new Theme(this,options,function(drawing){drawing.draw(div)})},"undefined"!=typeof jQuery&&!function($){$.fn.sequenceDiagram=function(options){return this.each(function(){var $this=$(this),diagram=Diagram.parse($this.text());$this.html(""),diagram.drawSVG(this,options)})}}(jQuery);var root="object"==typeof self&&self.self==self&&self||"object"==typeof global&&global.global==global&&global;"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=Diagram),exports.Diagram=Diagram):root.Diagram=Diagram}(); +//# sourceMappingURL=sequence-diagram.js diff --git a/public/docs/assets/snap.svg-min.js b/public/docs/assets/snap.svg-min.js new file mode 100644 index 0000000..6567d19 --- /dev/null +++ b/public/docs/assets/snap.svg-min.js @@ -0,0 +1,21 @@ +// Snap.svg 0.4.1 +// +// Copyright (c) 2013 – 2015 Adobe Systems Incorporated. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// build: 2015-04-13 + +!function(a){var b,c,d="0.4.2",e="hasOwnProperty",f=/[\.\/]/,g=/\s*,\s*/,h="*",i=function(a,b){return a-b},j={n:{}},k=function(){for(var a=0,b=this.length;b>a;a++)if("undefined"!=typeof this[a])return this[a]},l=function(){for(var a=this.length;--a;)if("undefined"!=typeof this[a])return this[a]},m=function(a,d){a=String(a);var e,f=c,g=Array.prototype.slice.call(arguments,2),h=m.listeners(a),j=0,n=[],o={},p=[],q=b;p.firstDefined=k,p.lastDefined=l,b=a,c=0;for(var r=0,s=h.length;s>r;r++)"zIndex"in h[r]&&(n.push(h[r].zIndex),h[r].zIndex<0&&(o[h[r].zIndex]=h[r]));for(n.sort(i);n[j]<0;)if(e=o[n[j++]],p.push(e.apply(d,g)),c)return c=f,p;for(r=0;s>r;r++)if(e=h[r],"zIndex"in e)if(e.zIndex==n[j]){if(p.push(e.apply(d,g)),c)break;do if(j++,e=o[n[j]],e&&p.push(e.apply(d,g)),c)break;while(e)}else o[e.zIndex]=e;else if(p.push(e.apply(d,g)),c)break;return c=f,b=q,p};m._events=j,m.listeners=function(a){var b,c,d,e,g,i,k,l,m=a.split(f),n=j,o=[n],p=[];for(e=0,g=m.length;g>e;e++){for(l=[],i=0,k=o.length;k>i;i++)for(n=o[i].n,c=[n[m[e]],n[h]],d=2;d--;)b=c[d],b&&(l.push(b),p=p.concat(b.f||[]));o=l}return p},m.on=function(a,b){if(a=String(a),"function"!=typeof b)return function(){};for(var c=a.split(g),d=0,e=c.length;e>d;d++)!function(a){for(var c,d=a.split(f),e=j,g=0,h=d.length;h>g;g++)e=e.n,e=e.hasOwnProperty(d[g])&&e[d[g]]||(e[d[g]]={n:{}});for(e.f=e.f||[],g=0,h=e.f.length;h>g;g++)if(e.f[g]==b){c=!0;break}!c&&e.f.push(b)}(c[d]);return function(a){+a==+a&&(b.zIndex=+a)}},m.f=function(a){var b=[].slice.call(arguments,1);return function(){m.apply(null,[a,null].concat(b).concat([].slice.call(arguments,0)))}},m.stop=function(){c=1},m.nt=function(a){return a?new RegExp("(?:\\.|\\/|^)"+a+"(?:\\.|\\/|$)").test(b):b},m.nts=function(){return b.split(f)},m.off=m.unbind=function(a,b){if(!a)return void(m._events=j={n:{}});var c=a.split(g);if(c.length>1)for(var d=0,i=c.length;i>d;d++)m.off(c[d],b);else{c=a.split(f);var k,l,n,d,i,o,p,q=[j];for(d=0,i=c.length;i>d;d++)for(o=0;od;d++)for(k=q[d];k.n;){if(b){if(k.f){for(o=0,p=k.f.length;p>o;o++)if(k.f[o]==b){k.f.splice(o,1);break}!k.f.length&&delete k.f}for(l in k.n)if(k.n[e](l)&&k.n[l].f){var r=k.n[l].f;for(o=0,p=r.length;p>o;o++)if(r[o]==b){r.splice(o,1);break}!r.length&&delete k.n[l].f}}else{delete k.f;for(l in k.n)k.n[e](l)&&k.n[l].f&&delete k.n[l].f}k=k.n}}},m.once=function(a,b){var c=function(){return m.unbind(a,c),b.apply(this,arguments)};return m.on(a,c)},m.version=d,m.toString=function(){return"You are running Eve "+d},"undefined"!=typeof module&&module.exports?module.exports=m:"function"==typeof define&&define.amd?define("eve",[],function(){return m}):a.eve=m}(this),function(a,b){if("function"==typeof define&&define.amd)define(["eve"],function(c){return b(a,c)});else if("undefined"!=typeof exports){var c=require("eve");module.exports=b(a,c)}else b(a,a.eve)}(window||this,function(a,b){var c=function(b){var c={},d=a.requestAnimationFrame||a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame||a.msRequestAnimationFrame||function(a){setTimeout(a,16)},e=Array.isArray||function(a){return a instanceof Array||"[object Array]"==Object.prototype.toString.call(a)},f=0,g="M"+(+new Date).toString(36),h=function(){return g+(f++).toString(36)},i=Date.now||function(){return+new Date},j=function(a){var b=this;if(null==a)return b.s;var c=b.s-a;b.b+=b.dur*c,b.B+=b.dur*c,b.s=a},k=function(a){var b=this;return null==a?b.spd:void(b.spd=a)},l=function(a){var b=this;return null==a?b.dur:(b.s=b.s*a/b.dur,void(b.dur=a))},m=function(){var a=this;delete c[a.id],a.update(),b("mina.stop."+a.id,a)},n=function(){var a=this;a.pdif||(delete c[a.id],a.update(),a.pdif=a.get()-a.b)},o=function(){var a=this;a.pdif&&(a.b=a.get()-a.pdif,delete a.pdif,c[a.id]=a)},p=function(){var a,b=this;if(e(b.start)){a=[];for(var c=0,d=b.start.length;d>c;c++)a[c]=+b.start[c]+(b.end[c]-b.start[c])*b.easing(b.s)}else a=+b.start+(b.end-b.start)*b.easing(b.s);b.set(a)},q=function(){var a=0;for(var e in c)if(c.hasOwnProperty(e)){var f=c[e],g=f.get();a++,f.s=(g-f.b)/(f.dur/f.spd),f.s>=1&&(delete c[e],f.s=1,a--,function(a){setTimeout(function(){b("mina.finish."+a.id,a)})}(f)),f.update()}a&&d(q)},r=function(a,b,e,f,g,i,s){var t={id:h(),start:a,end:b,b:e,s:0,dur:f-e,spd:1,get:g,set:i,easing:s||r.linear,status:j,speed:k,duration:l,stop:m,pause:n,resume:o,update:p};c[t.id]=t;var u,v=0;for(u in c)if(c.hasOwnProperty(u)&&(v++,2==v))break;return 1==v&&d(q),t};return r.time=i,r.getById=function(a){return c[a]||null},r.linear=function(a){return a},r.easeout=function(a){return Math.pow(a,1.7)},r.easein=function(a){return Math.pow(a,.48)},r.easeinout=function(a){if(1==a)return 1;if(0==a)return 0;var b=.48-a/1.04,c=Math.sqrt(.1734+b*b),d=c-b,e=Math.pow(Math.abs(d),1/3)*(0>d?-1:1),f=-c-b,g=Math.pow(Math.abs(f),1/3)*(0>f?-1:1),h=e+g+.5;return 3*(1-h)*h*h+h*h*h},r.backin=function(a){if(1==a)return 1;var b=1.70158;return a*a*((b+1)*a-b)},r.backout=function(a){if(0==a)return 0;a-=1;var b=1.70158;return a*a*((b+1)*a+b)+1},r.elastic=function(a){return a==!!a?a:Math.pow(2,-10*a)*Math.sin(2*(a-.075)*Math.PI/.3)+1},r.bounce=function(a){var b,c=7.5625,d=2.75;return 1/d>a?b=c*a*a:2/d>a?(a-=1.5/d,b=c*a*a+.75):2.5/d>a?(a-=2.25/d,b=c*a*a+.9375):(a-=2.625/d,b=c*a*a+.984375),b},a.mina=r,r}("undefined"==typeof b?function(){}:b),d=function(a){function c(a,b){if(a){if(a.nodeType)return w(a);if(e(a,"array")&&c.set)return c.set.apply(c,a);if(a instanceof s)return a;if(null==b)return a=y.doc.querySelector(String(a)),w(a)}return a=null==a?"100%":a,b=null==b?"100%":b,new v(a,b)}function d(a,b){if(b){if("#text"==a&&(a=y.doc.createTextNode(b.text||b["#text"]||"")),"#comment"==a&&(a=y.doc.createComment(b.text||b["#text"]||"")),"string"==typeof a&&(a=d(a)),"string"==typeof b)return 1==a.nodeType?"xlink:"==b.substring(0,6)?a.getAttributeNS(T,b.substring(6)):"xml:"==b.substring(0,4)?a.getAttributeNS(U,b.substring(4)):a.getAttribute(b):"text"==b?a.nodeValue:null;if(1==a.nodeType){for(var c in b)if(b[z](c)){var e=A(b[c]);e?"xlink:"==c.substring(0,6)?a.setAttributeNS(T,c.substring(6),e):"xml:"==c.substring(0,4)?a.setAttributeNS(U,c.substring(4),e):a.setAttribute(c,e):a.removeAttribute(c)}}else"text"in b&&(a.nodeValue=b.text)}else a=y.doc.createElementNS(U,a);return a}function e(a,b){return b=A.prototype.toLowerCase.call(b),"finite"==b?isFinite(a):"array"==b&&(a instanceof Array||Array.isArray&&Array.isArray(a))?!0:"null"==b&&null===a||b==typeof a&&null!==a||"object"==b&&a===Object(a)||J.call(a).slice(8,-1).toLowerCase()==b}function f(a){if("function"==typeof a||Object(a)!==a)return a;var b=new a.constructor;for(var c in a)a[z](c)&&(b[c]=f(a[c]));return b}function h(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return a.push(a.splice(c,1)[0])}function i(a,b,c){function d(){var e=Array.prototype.slice.call(arguments,0),f=e.join("␀"),g=d.cache=d.cache||{},i=d.count=d.count||[];return g[z](f)?(h(i,f),c?c(g[f]):g[f]):(i.length>=1e3&&delete g[i.shift()],i.push(f),g[f]=a.apply(b,e),c?c(g[f]):g[f])}return d}function j(a,b,c,d,e,f){if(null==e){var g=a-c,h=b-d;return g||h?(180+180*D.atan2(-h,-g)/H+360)%360:0}return j(a,b,e,f)-j(c,d,e,f)}function k(a){return a%360*H/180}function l(a){return 180*a/H%360}function m(a){var b=[];return a=a.replace(/(?:^|\s)(\w+)\(([^)]+)\)/g,function(a,c,d){return d=d.split(/\s*,\s*|\s+/),"rotate"==c&&1==d.length&&d.push(0,0),"scale"==c&&(d.length>2?d=d.slice(0,2):2==d.length&&d.push(0,0),1==d.length&&d.push(d[0],0,0)),b.push("skewX"==c?["m",1,0,D.tan(k(d[0])),1,0,0]:"skewY"==c?["m",1,D.tan(k(d[0])),0,1,0,0]:[c.charAt(0)].concat(d)),a}),b}function n(a,b){var d=ab(a),e=new c.Matrix;if(d)for(var f=0,g=d.length;g>f;f++){var h,i,j,k,l,m=d[f],n=m.length,o=A(m[0]).toLowerCase(),p=m[0]!=o,q=p?e.invert():0;"t"==o&&2==n?e.translate(m[1],0):"t"==o&&3==n?p?(h=q.x(0,0),i=q.y(0,0),j=q.x(m[1],m[2]),k=q.y(m[1],m[2]),e.translate(j-h,k-i)):e.translate(m[1],m[2]):"r"==o?2==n?(l=l||b,e.rotate(m[1],l.x+l.width/2,l.y+l.height/2)):4==n&&(p?(j=q.x(m[2],m[3]),k=q.y(m[2],m[3]),e.rotate(m[1],j,k)):e.rotate(m[1],m[2],m[3])):"s"==o?2==n||3==n?(l=l||b,e.scale(m[1],m[n-1],l.x+l.width/2,l.y+l.height/2)):4==n?p?(j=q.x(m[2],m[3]),k=q.y(m[2],m[3]),e.scale(m[1],m[1],j,k)):e.scale(m[1],m[1],m[2],m[3]):5==n&&(p?(j=q.x(m[3],m[4]),k=q.y(m[3],m[4]),e.scale(m[1],m[2],j,k)):e.scale(m[1],m[2],m[3],m[4])):"m"==o&&7==n&&e.add(m[1],m[2],m[3],m[4],m[5],m[6])}return e}function o(a){var b=a.node.ownerSVGElement&&w(a.node.ownerSVGElement)||a.node.parentNode&&w(a.node.parentNode)||c.select("svg")||c(0,0),d=b.select("defs"),e=null==d?!1:d.node;return e||(e=u("defs",b.node).node),e}function p(a){return a.node.ownerSVGElement&&w(a.node.ownerSVGElement)||c.select("svg")}function q(a,b,c){function e(a){if(null==a)return I;if(a==+a)return a;d(j,{width:a});try{return j.getBBox().width}catch(b){return 0}}function f(a){if(null==a)return I;if(a==+a)return a;d(j,{height:a});try{return j.getBBox().height}catch(b){return 0}}function g(d,e){null==b?i[d]=e(a.attr(d)||0):d==b&&(i=e(null==c?a.attr(d)||0:c))}var h=p(a).node,i={},j=h.querySelector(".svg---mgr");switch(j||(j=d("rect"),d(j,{x:-9e9,y:-9e9,width:10,height:10,"class":"svg---mgr",fill:"none"}),h.appendChild(j)),a.type){case"rect":g("rx",e),g("ry",f);case"image":g("width",e),g("height",f);case"text":g("x",e),g("y",f);break;case"circle":g("cx",e),g("cy",f),g("r",e);break;case"ellipse":g("cx",e),g("cy",f),g("rx",e),g("ry",f);break;case"line":g("x1",e),g("x2",e),g("y1",f),g("y2",f);break;case"marker":g("refX",e),g("markerWidth",e),g("refY",f),g("markerHeight",f);break;case"radialGradient":g("fx",e),g("fy",f);break;case"tspan":g("dx",e),g("dy",f);break;default:g(b,e)}return h.removeChild(j),i}function r(a){e(a,"array")||(a=Array.prototype.slice.call(arguments,0));for(var b=0,c=0,d=this.node;this[b];)delete this[b++];for(b=0;bc;c++){var e={type:a[c].type,attr:a[c].attr()},f=a[c].children();b.push(e),f.length&&x(f,e.childNodes=[])}}c.version="0.4.0",c.toString=function(){return"Snap v"+this.version},c._={};var y={win:a.window,doc:a.window.document};c._.glob=y;{var z="hasOwnProperty",A=String,B=parseFloat,C=parseInt,D=Math,E=D.max,F=D.min,G=D.abs,H=(D.pow,D.PI),I=(D.round,""),J=Object.prototype.toString,K=/^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?%?)\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?%?)\s*\))\s*$/i,L=(c._.separator=/[,\s]+/,/[\s]*,[\s]*/),M={hs:1,rg:1},N=/([a-z])[\s,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\s]*,?[\s]*)+)/gi,O=/([rstm])[\s,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\s]*,?[\s]*)+)/gi,P=/(-?\d*\.?\d*(?:e[\-+]?\\d+)?)[\s]*,?[\s]*/gi,Q=0,R="S"+(+new Date).toString(36),S=function(a){return(a&&a.type?a.type:I)+R+(Q++).toString(36)},T="http://www.w3.org/1999/xlink",U="http://www.w3.org/2000/svg",V={};c.url=function(a){return"url('#"+a+"')"}}c._.$=d,c._.id=S,c.format=function(){var a=/\{([^\}]+)\}/g,b=/(?:(?:^|\.)(.+?)(?=\[|\.|$|\()|\[('|")(.+?)\2\])(\(\))?/g,c=function(a,c,d){var e=d;return c.replace(b,function(a,b,c,d,f){b=b||d,e&&(b in e&&(e=e[b]),"function"==typeof e&&f&&(e=e()))}),e=(null==e||e==d?a:e)+""};return function(b,d){return A(b).replace(a,function(a,b){return c(a,b,d)})}}(),c._.clone=f,c._.cacher=i,c.rad=k,c.deg=l,c.sin=function(a){return D.sin(c.rad(a))},c.tan=function(a){return D.tan(c.rad(a))},c.cos=function(a){return D.cos(c.rad(a))},c.asin=function(a){return c.deg(D.asin(a))},c.acos=function(a){return c.deg(D.acos(a))},c.atan=function(a){return c.deg(D.atan(a))},c.atan2=function(a){return c.deg(D.atan2(a))},c.angle=j,c.len=function(a,b,d,e){return Math.sqrt(c.len2(a,b,d,e))},c.len2=function(a,b,c,d){return(a-c)*(a-c)+(b-d)*(b-d)},c.closestPoint=function(a,b,c){function d(a){var d=a.x-b,e=a.y-c;return d*d+e*e}for(var e,f,g,h,i=a.node,j=i.getTotalLength(),k=j/i.pathSegList.numberOfItems*.125,l=1/0,m=0;j>=m;m+=k)(h=d(g=i.getPointAtLength(m))).5;){var n,o,p,q,r,s;(p=f-k)>=0&&(r=d(n=i.getPointAtLength(p)))f)return b-f;if(f>a-c)return b-f+a}return b},c.getRGB=i(function(a){if(!a||(a=A(a)).indexOf("-")+1)return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:Z};if("none"==a)return{r:-1,g:-1,b:-1,hex:"none",toString:Z};if(!(M[z](a.toLowerCase().substring(0,2))||"#"==a.charAt())&&(a=W(a)),!a)return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:Z};var b,d,f,g,h,i,j=a.match(K);return j?(j[2]&&(f=C(j[2].substring(5),16),d=C(j[2].substring(3,5),16),b=C(j[2].substring(1,3),16)),j[3]&&(f=C((h=j[3].charAt(3))+h,16),d=C((h=j[3].charAt(2))+h,16),b=C((h=j[3].charAt(1))+h,16)),j[4]&&(i=j[4].split(L),b=B(i[0]),"%"==i[0].slice(-1)&&(b*=2.55),d=B(i[1]),"%"==i[1].slice(-1)&&(d*=2.55),f=B(i[2]),"%"==i[2].slice(-1)&&(f*=2.55),"rgba"==j[1].toLowerCase().slice(0,4)&&(g=B(i[3])),i[3]&&"%"==i[3].slice(-1)&&(g/=100)),j[5]?(i=j[5].split(L),b=B(i[0]),"%"==i[0].slice(-1)&&(b/=100),d=B(i[1]),"%"==i[1].slice(-1)&&(d/=100),f=B(i[2]),"%"==i[2].slice(-1)&&(f/=100),("deg"==i[0].slice(-3)||"°"==i[0].slice(-1))&&(b/=360),"hsba"==j[1].toLowerCase().slice(0,4)&&(g=B(i[3])),i[3]&&"%"==i[3].slice(-1)&&(g/=100),c.hsb2rgb(b,d,f,g)):j[6]?(i=j[6].split(L),b=B(i[0]),"%"==i[0].slice(-1)&&(b/=100),d=B(i[1]),"%"==i[1].slice(-1)&&(d/=100),f=B(i[2]),"%"==i[2].slice(-1)&&(f/=100),("deg"==i[0].slice(-3)||"°"==i[0].slice(-1))&&(b/=360),"hsla"==j[1].toLowerCase().slice(0,4)&&(g=B(i[3])),i[3]&&"%"==i[3].slice(-1)&&(g/=100),c.hsl2rgb(b,d,f,g)):(b=F(D.round(b),255),d=F(D.round(d),255),f=F(D.round(f),255),g=F(E(g,0),1),j={r:b,g:d,b:f,toString:Z},j.hex="#"+(16777216|f|d<<8|b<<16).toString(16).slice(1),j.opacity=e(g,"finite")?g:1,j)):{r:-1,g:-1,b:-1,hex:"none",error:1,toString:Z}},c),c.hsb=i(function(a,b,d){return c.hsb2rgb(a,b,d).hex}),c.hsl=i(function(a,b,d){return c.hsl2rgb(a,b,d).hex}),c.rgb=i(function(a,b,c,d){if(e(d,"finite")){var f=D.round;return"rgba("+[f(a),f(b),f(c),+d.toFixed(2)]+")"}return"#"+(16777216|c|b<<8|a<<16).toString(16).slice(1)});var W=function(a){var b=y.doc.getElementsByTagName("head")[0]||y.doc.getElementsByTagName("svg")[0],c="rgb(255, 0, 0)";return(W=i(function(a){if("red"==a.toLowerCase())return c;b.style.color=c,b.style.color=a;var d=y.doc.defaultView.getComputedStyle(b,I).getPropertyValue("color");return d==c?null:d}))(a)},X=function(){return"hsb("+[this.h,this.s,this.b]+")"},Y=function(){return"hsl("+[this.h,this.s,this.l]+")"},Z=function(){return 1==this.opacity||null==this.opacity?this.hex:"rgba("+[this.r,this.g,this.b,this.opacity]+")"},$=function(a,b,d){if(null==b&&e(a,"object")&&"r"in a&&"g"in a&&"b"in a&&(d=a.b,b=a.g,a=a.r),null==b&&e(a,string)){var f=c.getRGB(a);a=f.r,b=f.g,d=f.b}return(a>1||b>1||d>1)&&(a/=255,b/=255,d/=255),[a,b,d]},_=function(a,b,d,f){a=D.round(255*a),b=D.round(255*b),d=D.round(255*d);var g={r:a,g:b,b:d,opacity:e(f,"finite")?f:1,hex:c.rgb(a,b,d),toString:Z};return e(f,"finite")&&(g.opacity=f),g};c.color=function(a){var b;return e(a,"object")&&"h"in a&&"s"in a&&"b"in a?(b=c.hsb2rgb(a),a.r=b.r,a.g=b.g,a.b=b.b,a.opacity=1,a.hex=b.hex):e(a,"object")&&"h"in a&&"s"in a&&"l"in a?(b=c.hsl2rgb(a),a.r=b.r,a.g=b.g,a.b=b.b,a.opacity=1,a.hex=b.hex):(e(a,"string")&&(a=c.getRGB(a)),e(a,"object")&&"r"in a&&"g"in a&&"b"in a&&!("error"in a)?(b=c.rgb2hsl(a),a.h=b.h,a.s=b.s,a.l=b.l,b=c.rgb2hsb(a),a.v=b.b):(a={hex:"none"},a.r=a.g=a.b=a.h=a.s=a.v=a.l=-1,a.error=1)),a.toString=Z,a},c.hsb2rgb=function(a,b,c,d){e(a,"object")&&"h"in a&&"s"in a&&"b"in a&&(c=a.b,b=a.s,d=a.o,a=a.h),a*=360;var f,g,h,i,j;return a=a%360/60,j=c*b,i=j*(1-G(a%2-1)),f=g=h=c-j,a=~~a,f+=[j,i,0,0,i,j][a],g+=[i,j,j,i,0,0][a],h+=[0,0,i,j,j,i][a],_(f,g,h,d)},c.hsl2rgb=function(a,b,c,d){e(a,"object")&&"h"in a&&"s"in a&&"l"in a&&(c=a.l,b=a.s,a=a.h),(a>1||b>1||c>1)&&(a/=360,b/=100,c/=100),a*=360;var f,g,h,i,j;return a=a%360/60,j=2*b*(.5>c?c:1-c),i=j*(1-G(a%2-1)),f=g=h=c-j/2,a=~~a,f+=[j,i,0,0,i,j][a],g+=[i,j,j,i,0,0][a],h+=[0,0,i,j,j,i][a],_(f,g,h,d)},c.rgb2hsb=function(a,b,c){c=$(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g;return f=E(a,b,c),g=f-F(a,b,c),d=0==g?null:f==a?(b-c)/g:f==b?(c-a)/g+2:(a-b)/g+4,d=(d+360)%6*60/360,e=0==g?0:g/f,{h:d,s:e,b:f,toString:X}},c.rgb2hsl=function(a,b,c){c=$(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g,h,i;return g=E(a,b,c),h=F(a,b,c),i=g-h,d=0==i?null:g==a?(b-c)/i:g==b?(c-a)/i+2:(a-b)/i+4,d=(d+360)%6*60/360,f=(g+h)/2,e=0==i?0:.5>f?i/(2*f):i/(2-2*f),{h:d,s:e,l:f,toString:Y}},c.parsePathString=function(a){if(!a)return null;var b=c.path(a);if(b.arr)return c.path.clone(b.arr);var d={a:7,c:6,o:2,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,u:3,z:0},f=[];return e(a,"array")&&e(a[0],"array")&&(f=c.path.clone(a)),f.length||A(a).replace(N,function(a,b,c){var e=[],g=b.toLowerCase();if(c.replace(P,function(a,b){b&&e.push(+b)}),"m"==g&&e.length>2&&(f.push([b].concat(e.splice(0,2))),g="l",b="m"==b?"l":"L"),"o"==g&&1==e.length&&f.push([b,e[0]]),"r"==g)f.push([b].concat(e));else for(;e.length>=d[g]&&(f.push([b].concat(e.splice(0,d[g]))),d[g]););}),f.toString=c.path.toString,b.arr=c.path.clone(f),f};var ab=c.parseTransformString=function(a){if(!a)return null;var b=[];return e(a,"array")&&e(a[0],"array")&&(b=c.path.clone(a)),b.length||A(a).replace(O,function(a,c,d){{var e=[];c.toLowerCase()}d.replace(P,function(a,b){b&&e.push(+b)}),b.push([c].concat(e))}),b.toString=c.path.toString,b};c._.svgTransform2string=m,c._.rgTransform=/^[a-z][\s]*-?\.?\d/i,c._.transform2matrix=n,c._unit2px=q;y.doc.contains||y.doc.compareDocumentPosition?function(a,b){var c=9==a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a==d||!(!d||1!=d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)for(;b;)if(b=b.parentNode,b==a)return!0;return!1};c._.getSomeDefs=o,c._.getSomeSVG=p,c.select=function(a){return a=A(a).replace(/([^\\]):/g,"$1\\:"),w(y.doc.querySelector(a))},c.selectAll=function(a){for(var b=y.doc.querySelectorAll(a),d=(c.set||Array)(),e=0;ei;i++)h[g[i].nodeName]=g[i].nodeValue;return h}if(e(a,"string")){if(!(arguments.length>1))return b("snap.util.getattr."+a,d).firstDefined();var k={};k[a]=c,a=k}for(var l in a)a[z](l)&&b("snap.util.attr."+l,d,a[l]);return d},c.parse=function(a){var b=y.doc.createDocumentFragment(),c=!0,d=y.doc.createElement("div");if(a=A(a),a.match(/^\s*<\s*svg(?:\s|>)/)||(a=""+a+"",c=!1),d.innerHTML=a,a=d.getElementsByTagName("svg")[0])if(c)b=a;else for(;a.firstChild;)b.appendChild(a.firstChild);return new t(b)},c.fragment=function(){for(var a=Array.prototype.slice.call(arguments,0),b=y.doc.createDocumentFragment(),d=0,e=a.length;e>d;d++){var f=a[d];f.node&&f.node.nodeType&&b.appendChild(f.node),f.nodeType&&b.appendChild(f),"string"==typeof f&&b.appendChild(c.parse(f).node)}return new t(b)},c._.make=u,c._.wrap=w,v.prototype.el=function(a,b){var c=u(a,this.node);return b&&c.attr(b),c},s.prototype.children=function(){for(var a=[],b=this.node.childNodes,d=0,e=b.length;e>d;d++)a[d]=c(b[d]);return a},s.prototype.toJSON=function(){var a=[];return x([this],a),a[0]},b.on("snap.util.getattr",function(){var a=b.nt();a=a.substring(a.lastIndexOf(".")+1);var c=a.replace(/[A-Z]/g,function(a){return"-"+a.toLowerCase()});return bb[z](c)?this.node.ownerDocument.defaultView.getComputedStyle(this.node,null).getPropertyValue(c):d(this.node,a)});var bb={"alignment-baseline":0,"baseline-shift":0,clip:0,"clip-path":0,"clip-rule":0,color:0,"color-interpolation":0,"color-interpolation-filters":0,"color-profile":0,"color-rendering":0,cursor:0,direction:0,display:0,"dominant-baseline":0,"enable-background":0,fill:0,"fill-opacity":0,"fill-rule":0,filter:0,"flood-color":0,"flood-opacity":0,font:0,"font-family":0,"font-size":0,"font-size-adjust":0,"font-stretch":0,"font-style":0,"font-variant":0,"font-weight":0,"glyph-orientation-horizontal":0,"glyph-orientation-vertical":0,"image-rendering":0,kerning:0,"letter-spacing":0,"lighting-color":0,marker:0,"marker-end":0,"marker-mid":0,"marker-start":0,mask:0,opacity:0,overflow:0,"pointer-events":0,"shape-rendering":0,"stop-color":0,"stop-opacity":0,stroke:0,"stroke-dasharray":0,"stroke-dashoffset":0,"stroke-linecap":0,"stroke-linejoin":0,"stroke-miterlimit":0,"stroke-opacity":0,"stroke-width":0,"text-anchor":0,"text-decoration":0,"text-rendering":0,"unicode-bidi":0,visibility:0,"word-spacing":0,"writing-mode":0};b.on("snap.util.attr",function(a){var c=b.nt(),e={};c=c.substring(c.lastIndexOf(".")+1),e[c]=a;var f=c.replace(/-(\w)/gi,function(a,b){return b.toUpperCase()}),g=c.replace(/[A-Z]/g,function(a){return"-"+a.toLowerCase()});bb[z](g)?this.node.style[f]=null==a?I:a:d(this.node,e)}),function(){}(v.prototype),c.ajax=function(a,c,d,f){var g=new XMLHttpRequest,h=S();if(g){if(e(c,"function"))f=d,d=c,c=null;else if(e(c,"object")){var i=[];for(var j in c)c.hasOwnProperty(j)&&i.push(encodeURIComponent(j)+"="+encodeURIComponent(c[j]));c=i.join("&")}return g.open(c?"POST":"GET",a,!0),c&&(g.setRequestHeader("X-Requested-With","XMLHttpRequest"),g.setRequestHeader("Content-type","application/x-www-form-urlencoded")),d&&(b.once("snap.ajax."+h+".0",d),b.once("snap.ajax."+h+".200",d),b.once("snap.ajax."+h+".304",d)),g.onreadystatechange=function(){4==g.readyState&&b("snap.ajax."+h+"."+g.status,f,g)},4==g.readyState?g:(g.send(c),g)}},c.load=function(a,b,d){c.ajax(a,function(a){var e=c.parse(a.responseText);d?b.call(d,e):b(e)})};var cb=function(a){var b=a.getBoundingClientRect(),c=a.ownerDocument,d=c.body,e=c.documentElement,f=e.clientTop||d.clientTop||0,h=e.clientLeft||d.clientLeft||0,i=b.top+(g.win.pageYOffset||e.scrollTop||d.scrollTop)-f,j=b.left+(g.win.pageXOffset||e.scrollLeft||d.scrollLeft)-h;return{y:i,x:j}};return c.getElementByPoint=function(a,b){var c=this,d=(c.canvas,y.doc.elementFromPoint(a,b));if(y.win.opera&&"svg"==d.tagName){var e=cb(d),f=d.createSVGRect();f.x=a-e.x,f.y=b-e.y,f.width=f.height=1;var g=d.getIntersectionList(f,null);g.length&&(d=g[g.length-1])}return d?w(d):null},c.plugin=function(a){a(c,s,v,y,t)},y.win.Snap=c,c}(a||this);return d.plugin(function(d,e,f,g,h){function i(a,b){if(null==b){var c=!0;if(b=a.node.getAttribute("linearGradient"==a.type||"radialGradient"==a.type?"gradientTransform":"pattern"==a.type?"patternTransform":"transform"),!b)return new d.Matrix;b=d._.svgTransform2string(b)}else b=d._.rgTransform.test(b)?o(b).replace(/\.{3}|\u2026/g,a._.transform||""):d._.svgTransform2string(b),n(b,"array")&&(b=d.path?d.path.toString.call(b):o(b)),a._.transform=b;var e=d._.transform2matrix(b,a.getBBox(1));return c?e:void(a.matrix=e)}function j(a){function b(a,b){var c=q(a.node,b);c=c&&c.match(f),c=c&&c[2],c&&"#"==c.charAt()&&(c=c.substring(1),c&&(h[c]=(h[c]||[]).concat(function(c){var d={};d[b]=URL(c),q(a.node,d)})))}function c(a){var b=q(a.node,"xlink:href");b&&"#"==b.charAt()&&(b=b.substring(1),b&&(h[b]=(h[b]||[]).concat(function(b){a.attr("xlink:href","#"+b)})))}for(var d,e=a.selectAll("*"),f=/^\s*url\(("|'|)(.*)\1\)\s*$/,g=[],h={},i=0,j=e.length;j>i;i++){d=e[i],b(d,"fill"),b(d,"stroke"),b(d,"filter"),b(d,"mask"),b(d,"clip-path"),c(d);var k=q(d.node,"id");k&&(q(d.node,{id:d.id}),g.push({old:k,id:d.id}))}for(i=0,j=g.length;j>i;i++){var l=h[g[i].old];if(l)for(var m=0,n=l.length;n>m;m++)l[m](g[i].id)}}function k(a,b,c){return function(d){var e=d.slice(a,b);return 1==e.length&&(e=e[0]),c?c(e):e}}function l(a){return function(){var b=a?"<"+this.type:"",c=this.node.attributes,d=this.node.childNodes;if(a)for(var e=0,f=c.length;f>e;e++)b+=" "+c[e].name+'="'+c[e].value.replace(/"/g,'\\"')+'"';if(d.length){for(a&&(b+=">"),e=0,f=d.length;f>e;e++)3==d[e].nodeType?b+=d[e].nodeValue:1==d[e].nodeType&&(b+=u(d[e]).toString());a&&(b+="")}else a&&(b+="/>");return b}}var m=e.prototype,n=d.is,o=String,p=d._unit2px,q=d._.$,r=d._.make,s=d._.getSomeDefs,t="hasOwnProperty",u=d._.wrap;m.getBBox=function(a){if(!d.Matrix||!d.path)return this.node.getBBox();var b=this,c=new d.Matrix;if(b.removed)return d._.box();for(;"use"==b.type;)if(a||(c=c.add(b.transform().localMatrix.translate(b.attr("x")||0,b.attr("y")||0))),b.original)b=b.original;else{var e=b.attr("xlink:href");b=b.original=b.node.ownerDocument.getElementById(e.substring(e.indexOf("#")+1))}var f=b._,g=d.path.get[b.type]||d.path.get.deflt;try{return a?(f.bboxwt=g?d.path.getBBox(b.realPath=g(b)):d._.box(b.node.getBBox()),d._.box(f.bboxwt)):(b.realPath=g(b),b.matrix=b.transform().localMatrix,f.bbox=d.path.getBBox(d.path.map(b.realPath,c.add(b.matrix))),d._.box(f.bbox))}catch(h){return d._.box()}};var v=function(){return this.string};m.transform=function(a){var b=this._;if(null==a){for(var c,e=this,f=new d.Matrix(this.node.getCTM()),g=i(this),h=[g],j=new d.Matrix,k=g.toTransformString(),l=o(g)==o(this.matrix)?o(b.transform):k;"svg"!=e.type&&(e=e.parent());)h.push(i(e));for(c=h.length;c--;)j.add(h[c]);return{string:l,globalMatrix:f,totalMatrix:j,localMatrix:g,diffMatrix:f.clone().add(g.invert()),global:f.toTransformString(),total:j.toTransformString(),local:k,toString:v}}return a instanceof d.Matrix?(this.matrix=a,this._.transform=a.toTransformString()):i(this,a),this.node&&("linearGradient"==this.type||"radialGradient"==this.type?q(this.node,{gradientTransform:this.matrix}):"pattern"==this.type?q(this.node,{patternTransform:this.matrix}):q(this.node,{transform:this.matrix})),this},m.parent=function(){return u(this.node.parentNode)},m.append=m.add=function(a){if(a){if("set"==a.type){var b=this;return a.forEach(function(a){b.add(a)}),this}a=u(a),this.node.appendChild(a.node),a.paper=this.paper}return this},m.appendTo=function(a){return a&&(a=u(a),a.append(this)),this},m.prepend=function(a){if(a){if("set"==a.type){var b,c=this;return a.forEach(function(a){b?b.after(a):c.prepend(a),b=a}),this}a=u(a);var d=a.parent();this.node.insertBefore(a.node,this.node.firstChild),this.add&&this.add(),a.paper=this.paper,this.parent()&&this.parent().add(),d&&d.add()}return this},m.prependTo=function(a){return a=u(a),a.prepend(this),this},m.before=function(a){if("set"==a.type){var b=this;return a.forEach(function(a){var c=a.parent();b.node.parentNode.insertBefore(a.node,b.node),c&&c.add()}),this.parent().add(),this}a=u(a);var c=a.parent();return this.node.parentNode.insertBefore(a.node,this.node),this.parent()&&this.parent().add(),c&&c.add(),a.paper=this.paper,this},m.after=function(a){a=u(a);var b=a.parent();return this.node.nextSibling?this.node.parentNode.insertBefore(a.node,this.node.nextSibling):this.node.parentNode.appendChild(a.node),this.parent()&&this.parent().add(),b&&b.add(),a.paper=this.paper,this},m.insertBefore=function(a){a=u(a);var b=this.parent();return a.node.parentNode.insertBefore(this.node,a.node),this.paper=a.paper,b&&b.add(),a.parent()&&a.parent().add(),this},m.insertAfter=function(a){a=u(a);var b=this.parent();return a.node.parentNode.insertBefore(this.node,a.node.nextSibling),this.paper=a.paper,b&&b.add(),a.parent()&&a.parent().add(),this},m.remove=function(){var a=this.parent();return this.node.parentNode&&this.node.parentNode.removeChild(this.node),delete this.paper,this.removed=!0,a&&a.add(),this},m.select=function(a){return u(this.node.querySelector(a))},m.selectAll=function(a){for(var b=this.node.querySelectorAll(a),c=(d.set||Array)(),e=0;eb;b++)a[b].stop();return this},m.animate=function(a,d,e,f){"function"!=typeof e||e.length||(f=e,e=c.linear),a instanceof w&&(f=a.callback,e=a.easing,d=a.dur,a=a.attr);var g,h,i,j,l=[],m=[],p={},q=this;for(var r in a)if(a[t](r)){q.equal?(j=q.equal(r,o(a[r])),g=j.from,h=j.to,i=j.f):(g=+q.attr(r),h=+a[r]);var s=n(g,"array")?g.length:1;p[r]=k(l.length,l.length+s,i),l=l.concat(g),m=m.concat(h)}var u=c.time(),v=c(l,m,u,u+d,c.time,function(a){var b={};for(var c in p)p[t](c)&&(b[c]=p[c](a));q.attr(b)},e);return q.anims[v.id]=v,v._attrs=a,v._callback=f,b("snap.animcreated."+q.id,v),b.once("mina.finish."+v.id,function(){delete q.anims[v.id],f&&f.call(q)}),b.once("mina.stop."+v.id,function(){delete q.anims[v.id]}),q};var x={};m.data=function(a,c){var e=x[this.id]=x[this.id]||{};if(0==arguments.length)return b("snap.data.get."+this.id,this,e,null),e; +if(1==arguments.length){if(d.is(a,"object")){for(var f in a)a[t](f)&&this.data(f,a[f]);return this}return b("snap.data.get."+this.id,this,e[a],a),e[a]}return e[a]=c,b("snap.data.set."+this.id,this,c,a),this},m.removeData=function(a){return null==a?x[this.id]={}:x[this.id]&&delete x[this.id][a],this},m.outerSVG=m.toString=l(1),m.innerSVG=l(),m.toDataURL=function(){if(a&&a.btoa){var b=this.getBBox(),c=d.format('{contents}',{x:+b.x.toFixed(3),y:+b.y.toFixed(3),width:+b.width.toFixed(3),height:+b.height.toFixed(3),contents:this.outerSVG()});return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(c)))}},h.prototype.select=m.select,h.prototype.selectAll=m.selectAll}),d.plugin(function(a){function b(a,b,d,e,f,g){return null==b&&"[object SVGMatrix]"==c.call(a)?(this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.e=a.e,void(this.f=a.f)):void(null!=a?(this.a=+a,this.b=+b,this.c=+d,this.d=+e,this.e=+f,this.f=+g):(this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0))}var c=Object.prototype.toString,d=String,e=Math,f="";!function(c){function g(a){return a[0]*a[0]+a[1]*a[1]}function h(a){var b=e.sqrt(g(a));a[0]&&(a[0]/=b),a[1]&&(a[1]/=b)}c.add=function(a,c,d,e,f,g){var h,i,j,k,l=[[],[],[]],m=[[this.a,this.c,this.e],[this.b,this.d,this.f],[0,0,1]],n=[[a,d,f],[c,e,g],[0,0,1]];for(a&&a instanceof b&&(n=[[a.a,a.c,a.e],[a.b,a.d,a.f],[0,0,1]]),h=0;3>h;h++)for(i=0;3>i;i++){for(k=0,j=0;3>j;j++)k+=m[h][j]*n[j][i];l[h][i]=k}return this.a=l[0][0],this.b=l[1][0],this.c=l[0][1],this.d=l[1][1],this.e=l[0][2],this.f=l[1][2],this},c.invert=function(){var a=this,c=a.a*a.d-a.b*a.c;return new b(a.d/c,-a.b/c,-a.c/c,a.a/c,(a.c*a.f-a.d*a.e)/c,(a.b*a.e-a.a*a.f)/c)},c.clone=function(){return new b(this.a,this.b,this.c,this.d,this.e,this.f)},c.translate=function(a,b){return this.add(1,0,0,1,a,b)},c.scale=function(a,b,c,d){return null==b&&(b=a),(c||d)&&this.add(1,0,0,1,c,d),this.add(a,0,0,b,0,0),(c||d)&&this.add(1,0,0,1,-c,-d),this},c.rotate=function(b,c,d){b=a.rad(b),c=c||0,d=d||0;var f=+e.cos(b).toFixed(9),g=+e.sin(b).toFixed(9);return this.add(f,g,-g,f,c,d),this.add(1,0,0,1,-c,-d)},c.x=function(a,b){return a*this.a+b*this.c+this.e},c.y=function(a,b){return a*this.b+b*this.d+this.f},c.get=function(a){return+this[d.fromCharCode(97+a)].toFixed(4)},c.toString=function(){return"matrix("+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)].join()+")"},c.offset=function(){return[this.e.toFixed(4),this.f.toFixed(4)]},c.determinant=function(){return this.a*this.d-this.b*this.c},c.split=function(){var b={};b.dx=this.e,b.dy=this.f;var c=[[this.a,this.c],[this.b,this.d]];b.scalex=e.sqrt(g(c[0])),h(c[0]),b.shear=c[0][0]*c[1][0]+c[0][1]*c[1][1],c[1]=[c[1][0]-c[0][0]*b.shear,c[1][1]-c[0][1]*b.shear],b.scaley=e.sqrt(g(c[1])),h(c[1]),b.shear/=b.scaley,this.determinant()<0&&(b.scalex=-b.scalex);var d=-c[0][1],f=c[1][1];return 0>f?(b.rotate=a.deg(e.acos(f)),0>d&&(b.rotate=360-b.rotate)):b.rotate=a.deg(e.asin(d)),b.isSimple=!(+b.shear.toFixed(9)||b.scalex.toFixed(9)!=b.scaley.toFixed(9)&&b.rotate),b.isSuperSimple=!+b.shear.toFixed(9)&&b.scalex.toFixed(9)==b.scaley.toFixed(9)&&!b.rotate,b.noRotation=!+b.shear.toFixed(9)&&!b.rotate,b},c.toTransformString=function(a){var b=a||this.split();return+b.shear.toFixed(9)?"m"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)]:(b.scalex=+b.scalex.toFixed(4),b.scaley=+b.scaley.toFixed(4),b.rotate=+b.rotate.toFixed(4),(b.dx||b.dy?"t"+[+b.dx.toFixed(4),+b.dy.toFixed(4)]:f)+(1!=b.scalex||1!=b.scaley?"s"+[b.scalex,b.scaley,0,0]:f)+(b.rotate?"r"+[+b.rotate.toFixed(4),0,0]:f))}}(b.prototype),a.Matrix=b,a.matrix=function(a,c,d,e,f,g){return new b(a,c,d,e,f,g)}}),d.plugin(function(a,c,d,e,f){function g(d){return function(e){if(b.stop(),e instanceof f&&1==e.node.childNodes.length&&("radialGradient"==e.node.firstChild.tagName||"linearGradient"==e.node.firstChild.tagName||"pattern"==e.node.firstChild.tagName)&&(e=e.node.firstChild,n(this).appendChild(e),e=l(e)),e instanceof c)if("radialGradient"==e.type||"linearGradient"==e.type||"pattern"==e.type){e.node.id||p(e.node,{id:e.id});var g=q(e.node.id)}else g=e.attr(d);else if(g=a.color(e),g.error){var h=a(n(this).ownerSVGElement).gradient(e);h?(h.node.id||p(h.node,{id:h.id}),g=q(h.node.id)):g=e}else g=r(g);var i={};i[d]=g,p(this.node,i),this.node.style[d]=t}}function h(a){b.stop(),a==+a&&(a+="px"),this.node.style.fontSize=a}function i(a){for(var b=[],c=a.childNodes,d=0,e=c.length;e>d;d++){var f=c[d];3==f.nodeType&&b.push(f.nodeValue),"tspan"==f.tagName&&b.push(1==f.childNodes.length&&3==f.firstChild.nodeType?f.firstChild.nodeValue:i(f))}return b}function j(){return b.stop(),this.node.style.fontSize}var k=a._.make,l=a._.wrap,m=a.is,n=a._.getSomeDefs,o=/^url\(#?([^)]+)\)$/,p=a._.$,q=a.url,r=String,s=a._.separator,t="";b.on("snap.util.attr.mask",function(a){if(a instanceof c||a instanceof f){if(b.stop(),a instanceof f&&1==a.node.childNodes.length&&(a=a.node.firstChild,n(this).appendChild(a),a=l(a)),"mask"==a.type)var d=a;else d=k("mask",n(this)),d.node.appendChild(a.node);!d.node.id&&p(d.node,{id:d.id}),p(this.node,{mask:q(d.id)})}}),function(a){b.on("snap.util.attr.clip",a),b.on("snap.util.attr.clip-path",a),b.on("snap.util.attr.clipPath",a)}(function(a){if(a instanceof c||a instanceof f){if(b.stop(),"clipPath"==a.type)var d=a;else d=k("clipPath",n(this)),d.node.appendChild(a.node),!d.node.id&&p(d.node,{id:d.id});p(this.node,{"clip-path":q(d.node.id||d.id)})}}),b.on("snap.util.attr.fill",g("fill")),b.on("snap.util.attr.stroke",g("stroke"));var u=/^([lr])(?:\(([^)]*)\))?(.*)$/i;b.on("snap.util.grad.parse",function(a){a=r(a);var b=a.match(u);if(!b)return null;var c=b[1],d=b[2],e=b[3];return d=d.split(/\s*,\s*/).map(function(a){return+a==a?+a:a}),1==d.length&&0==d[0]&&(d=[]),e=e.split("-"),e=e.map(function(a){a=a.split(":");var b={color:a[0]};return a[1]&&(b.offset=parseFloat(a[1])),b}),{type:c,params:d,stops:e}}),b.on("snap.util.attr.d",function(c){b.stop(),m(c,"array")&&m(c[0],"array")&&(c=a.path.toString.call(c)),c=r(c),c.match(/[ruo]/i)&&(c=a.path.toAbsolute(c)),p(this.node,{d:c})})(-1),b.on("snap.util.attr.#text",function(a){b.stop(),a=r(a);for(var c=e.doc.createTextNode(a);this.node.firstChild;)this.node.removeChild(this.node.firstChild);this.node.appendChild(c)})(-1),b.on("snap.util.attr.path",function(a){b.stop(),this.attr({d:a})})(-1),b.on("snap.util.attr.class",function(a){b.stop(),this.node.className.baseVal=a})(-1),b.on("snap.util.attr.viewBox",function(a){var c;c=m(a,"object")&&"x"in a?[a.x,a.y,a.width,a.height].join(" "):m(a,"array")?a.join(" "):a,p(this.node,{viewBox:c}),b.stop()})(-1),b.on("snap.util.attr.transform",function(a){this.transform(a),b.stop()})(-1),b.on("snap.util.attr.r",function(a){"rect"==this.type&&(b.stop(),p(this.node,{rx:a,ry:a}))})(-1),b.on("snap.util.attr.textpath",function(a){if(b.stop(),"text"==this.type){var d,e,f;if(!a&&this.textPath){for(e=this.textPath;e.node.firstChild;)this.node.appendChild(e.node.firstChild);return e.remove(),void delete this.textPath}if(m(a,"string")){var g=n(this),h=l(g.parentNode).path(a);g.appendChild(h.node),d=h.id,h.attr({id:d})}else a=l(a),a instanceof c&&(d=a.attr("id"),d||(d=a.id,a.attr({id:d})));if(d)if(e=this.textPath,f=this.node,e)e.attr({"xlink:href":"#"+d});else{for(e=p("textPath",{"xlink:href":"#"+d});f.firstChild;)e.appendChild(f.firstChild);f.appendChild(e),this.textPath=l(e)}}})(-1),b.on("snap.util.attr.text",function(a){if("text"==this.type){for(var c=this.node,d=function(a){var b=p("tspan");if(m(a,"array"))for(var c=0;c1&&(a=Array.prototype.slice.call(arguments,0));var b={};return h(a,"object")&&!h(a,"array")?b=a:null!=a&&(b={points:a}),this.el("polyline",b)},g.polygon=function(a){arguments.length>1&&(a=Array.prototype.slice.call(arguments,0));var b={};return h(a,"object")&&!h(a,"array")?b=a:null!=a&&(b={points:a}),this.el("polygon",b)},function(){function d(){return this.selectAll("stop")}function e(a,b){var d=k("stop"),e={offset:+b+"%"};return a=c.color(a),e["stop-color"]=a.hex,a.opacity<1&&(e["stop-opacity"]=a.opacity),k(d,e),this.node.appendChild(d),this}function f(){if("linearGradient"==this.type){var a=k(this.node,"x1")||0,b=k(this.node,"x2")||1,d=k(this.node,"y1")||0,e=k(this.node,"y2")||0;return c._.box(a,d,math.abs(b-a),math.abs(e-d))}var f=this.node.cx||.5,g=this.node.cy||.5,h=this.node.r||0;return c._.box(f-h,g-h,2*h,2*h)}function h(a,c){function d(a,b){for(var c=(b-l)/(a-m),d=m;a>d;d++)g[d].offset=+(+l+c*(d-m)).toFixed(2);m=a,l=b}var e,f=b("snap.util.grad.parse",null,c).firstDefined();if(!f)return null;f.params.unshift(a),e="l"==f.type.toLowerCase()?i.apply(0,f.params):j.apply(0,f.params),f.type!=f.type.toLowerCase()&&k(e.node,{gradientUnits:"userSpaceOnUse"});var g=f.stops,h=g.length,l=0,m=0;h--;for(var n=0;h>n;n++)"offset"in g[n]&&d(n,g[n].offset);for(g[h].offset=g[h].offset||100,d(h,g[h].offset),n=0;h>=n;n++){var o=g[n];e.addStop(o.color,o.offset)}return e}function i(a,b,g,h,i){var j=c._.make("linearGradient",a);return j.stops=d,j.addStop=e,j.getBBox=f,null!=b&&k(j.node,{x1:b,y1:g,x2:h,y2:i}),j}function j(a,b,g,h,i,j){var l=c._.make("radialGradient",a);return l.stops=d,l.addStop=e,l.getBBox=f,null!=b&&k(l.node,{cx:b,cy:g,r:h}),null!=i&&null!=j&&k(l.node,{fx:i,fy:j}),l}var k=c._.$;g.gradient=function(a){return h(this.defs,a)},g.gradientLinear=function(a,b,c,d){return i(this.defs,a,b,c,d)},g.gradientRadial=function(a,b,c,d,e){return j(this.defs,a,b,c,d,e)},g.toString=function(){var a,b=this.node.ownerDocument,d=b.createDocumentFragment(),e=b.createElement("div"),f=this.node.cloneNode(!0);return d.appendChild(e),e.appendChild(f),c._.$(f,{xmlns:"http://www.w3.org/2000/svg"}),a=e.innerHTML,d.removeChild(d.firstChild),a},g.toDataURL=function(){return a&&a.btoa?"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(this))):void 0},g.clear=function(){for(var a,b=this.node.firstChild;b;)a=b.nextSibling,"defs"!=b.tagName?b.parentNode.removeChild(b):g.clear.call({node:b}),b=a}}()}),d.plugin(function(a,b){function c(a){var b=c.ps=c.ps||{};return b[a]?b[a].sleep=100:b[a]={sleep:100},setTimeout(function(){for(var c in b)b[K](c)&&c!=a&&(b[c].sleep--,!b[c].sleep&&delete b[c])}),b[a]}function d(a,b,c,d){return null==a&&(a=b=c=d=0),null==b&&(b=a.y,c=a.width,d=a.height,a=a.x),{x:a,y:b,width:c,w:c,height:d,h:d,x2:a+c,y2:b+d,cx:a+c/2,cy:b+d/2,r1:N.min(c,d)/2,r2:N.max(c,d)/2,r0:N.sqrt(c*c+d*d)/2,path:w(a,b,c,d),vb:[a,b,c,d].join(" ")}}function e(){return this.join(",").replace(L,"$1")}function f(a){var b=J(a);return b.toString=e,b}function g(a,b,c,d,e,f,g,h,j){return null==j?n(a,b,c,d,e,f,g,h):i(a,b,c,d,e,f,g,h,o(a,b,c,d,e,f,g,h,j))}function h(c,d){function e(a){return+(+a).toFixed(3)}return a._.cacher(function(a,f,h){a instanceof b&&(a=a.attr("d")),a=E(a);for(var j,k,l,m,n,o="",p={},q=0,r=0,s=a.length;s>r;r++){if(l=a[r],"M"==l[0])j=+l[1],k=+l[2];else{if(m=g(j,k,l[1],l[2],l[3],l[4],l[5],l[6]),q+m>f){if(d&&!p.start){if(n=g(j,k,l[1],l[2],l[3],l[4],l[5],l[6],f-q),o+=["C"+e(n.start.x),e(n.start.y),e(n.m.x),e(n.m.y),e(n.x),e(n.y)],h)return o;p.start=o,o=["M"+e(n.x),e(n.y)+"C"+e(n.n.x),e(n.n.y),e(n.end.x),e(n.end.y),e(l[5]),e(l[6])].join(),q+=m,j=+l[5],k=+l[6];continue}if(!c&&!d)return n=g(j,k,l[1],l[2],l[3],l[4],l[5],l[6],f-q)}q+=m,j=+l[5],k=+l[6]}o+=l.shift()+l}return p.end=o,n=c?q:d?p:i(j,k,l[0],l[1],l[2],l[3],l[4],l[5],1)},null,a._.clone)}function i(a,b,c,d,e,f,g,h,i){var j=1-i,k=R(j,3),l=R(j,2),m=i*i,n=m*i,o=k*a+3*l*i*c+3*j*i*i*e+n*g,p=k*b+3*l*i*d+3*j*i*i*f+n*h,q=a+2*i*(c-a)+m*(e-2*c+a),r=b+2*i*(d-b)+m*(f-2*d+b),s=c+2*i*(e-c)+m*(g-2*e+c),t=d+2*i*(f-d)+m*(h-2*f+d),u=j*a+i*c,v=j*b+i*d,w=j*e+i*g,x=j*f+i*h,y=90-180*N.atan2(q-s,r-t)/O;return{x:o,y:p,m:{x:q,y:r},n:{x:s,y:t},start:{x:u,y:v},end:{x:w,y:x},alpha:y}}function j(b,c,e,f,g,h,i,j){a.is(b,"array")||(b=[b,c,e,f,g,h,i,j]);var k=D.apply(null,b);return d(k.min.x,k.min.y,k.max.x-k.min.x,k.max.y-k.min.y)}function k(a,b,c){return b>=a.x&&b<=a.x+a.width&&c>=a.y&&c<=a.y+a.height}function l(a,b){return a=d(a),b=d(b),k(b,a.x,a.y)||k(b,a.x2,a.y)||k(b,a.x,a.y2)||k(b,a.x2,a.y2)||k(a,b.x,b.y)||k(a,b.x2,b.y)||k(a,b.x,b.y2)||k(a,b.x2,b.y2)||(a.xb.x||b.xa.x)&&(a.yb.y||b.ya.y)}function m(a,b,c,d,e){var f=-3*b+9*c-9*d+3*e,g=a*f+6*b-12*c+6*d;return a*g-3*b+3*c}function n(a,b,c,d,e,f,g,h,i){null==i&&(i=1),i=i>1?1:0>i?0:i;for(var j=i/2,k=12,l=[-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816],n=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472],o=0,p=0;k>p;p++){var q=j*l[p]+j,r=m(q,a,c,e,g),s=m(q,b,d,f,h),t=r*r+s*s;o+=n[p]*N.sqrt(t)}return j*o}function o(a,b,c,d,e,f,g,h,i){if(!(0>i||n(a,b,c,d,e,f,g,h)o;)l/=2,m+=(i>j?1:-1)*l,j=n(a,b,c,d,e,f,g,h,m);return m}}function p(a,b,c,d,e,f,g,h){if(!(Q(a,c)Q(e,g)||Q(b,d)Q(f,h))){var i=(a*d-b*c)*(e-g)-(a-c)*(e*h-f*g),j=(a*d-b*c)*(f-h)-(b-d)*(e*h-f*g),k=(a-c)*(f-h)-(b-d)*(e-g);if(k){var l=i/k,m=j/k,n=+l.toFixed(2),o=+m.toFixed(2);if(!(n<+P(a,c).toFixed(2)||n>+Q(a,c).toFixed(2)||n<+P(e,g).toFixed(2)||n>+Q(e,g).toFixed(2)||o<+P(b,d).toFixed(2)||o>+Q(b,d).toFixed(2)||o<+P(f,h).toFixed(2)||o>+Q(f,h).toFixed(2)))return{x:l,y:m}}}}function q(a,b,c){var d=j(a),e=j(b);if(!l(d,e))return c?0:[];for(var f=n.apply(0,a),g=n.apply(0,b),h=~~(f/8),k=~~(g/8),m=[],o=[],q={},r=c?0:[],s=0;h+1>s;s++){var t=i.apply(0,a.concat(s/h));m.push({x:t.x,y:t.y,t:s/h})}for(s=0;k+1>s;s++)t=i.apply(0,b.concat(s/k)),o.push({x:t.x,y:t.y,t:s/k});for(s=0;h>s;s++)for(var u=0;k>u;u++){var v=m[s],w=m[s+1],x=o[u],y=o[u+1],z=S(w.x-v.x)<.001?"y":"x",A=S(y.x-x.x)<.001?"y":"x",B=p(v.x,v.y,w.x,w.y,x.x,x.y,y.x,y.y);if(B){if(q[B.x.toFixed(4)]==B.y.toFixed(4))continue;q[B.x.toFixed(4)]=B.y.toFixed(4);var C=v.t+S((B[z]-v[z])/(w[z]-v[z]))*(w.t-v.t),D=x.t+S((B[A]-x[A])/(y[A]-x[A]))*(y.t-x.t);C>=0&&1>=C&&D>=0&&1>=D&&(c?r++:r.push({x:B.x,y:B.y,t1:C,t2:D}))}}return r}function r(a,b){return t(a,b)}function s(a,b){return t(a,b,1)}function t(a,b,c){a=E(a),b=E(b);for(var d,e,f,g,h,i,j,k,l,m,n=c?0:[],o=0,p=a.length;p>o;o++){var r=a[o];if("M"==r[0])d=h=r[1],e=i=r[2];else{"C"==r[0]?(l=[d,e].concat(r.slice(1)),d=l[6],e=l[7]):(l=[d,e,d,e,h,i,h,i],d=h,e=i);for(var s=0,t=b.length;t>s;s++){var u=b[s];if("M"==u[0])f=j=u[1],g=k=u[2];else{"C"==u[0]?(m=[f,g].concat(u.slice(1)),f=m[6],g=m[7]):(m=[f,g,f,g,j,k,j,k],f=j,g=k);var v=q(l,m,c);if(c)n+=v;else{for(var w=0,x=v.length;x>w;w++)v[w].segment1=o,v[w].segment2=s,v[w].bez1=l,v[w].bez2=m;n=n.concat(v)}}}}}return n}function u(a,b,c){var d=v(a);return k(d,b,c)&&t(a,[["M",b,c],["H",d.x2+10]],1)%2==1}function v(a){var b=c(a);if(b.bbox)return J(b.bbox);if(!a)return d();a=E(a);for(var e,f=0,g=0,h=[],i=[],j=0,k=a.length;k>j;j++)if(e=a[j],"M"==e[0])f=e[1],g=e[2],h.push(f),i.push(g);else{var l=D(f,g,e[1],e[2],e[3],e[4],e[5],e[6]);h=h.concat(l.min.x,l.max.x),i=i.concat(l.min.y,l.max.y),f=e[5],g=e[6]}var m=P.apply(0,h),n=P.apply(0,i),o=Q.apply(0,h),p=Q.apply(0,i),q=d(m,n,o-m,p-n);return b.bbox=J(q),q}function w(a,b,c,d,f){if(f)return[["M",+a+ +f,b],["l",c-2*f,0],["a",f,f,0,0,1,f,f],["l",0,d-2*f],["a",f,f,0,0,1,-f,f],["l",2*f-c,0],["a",f,f,0,0,1,-f,-f],["l",0,2*f-d],["a",f,f,0,0,1,f,-f],["z"]];var g=[["M",a,b],["l",c,0],["l",0,d],["l",-c,0],["z"]];return g.toString=e,g}function x(a,b,c,d,f){if(null==f&&null==d&&(d=c),a=+a,b=+b,c=+c,d=+d,null!=f)var g=Math.PI/180,h=a+c*Math.cos(-d*g),i=a+c*Math.cos(-f*g),j=b+c*Math.sin(-d*g),k=b+c*Math.sin(-f*g),l=[["M",h,j],["A",c,c,0,+(f-d>180),0,i,k]];else l=[["M",a,b],["m",0,-d],["a",c,d,0,1,1,0,2*d],["a",c,d,0,1,1,0,-2*d],["z"]];return l.toString=e,l}function y(b){var d=c(b),g=String.prototype.toLowerCase;if(d.rel)return f(d.rel);a.is(b,"array")&&a.is(b&&b[0],"array")||(b=a.parsePathString(b));var h=[],i=0,j=0,k=0,l=0,m=0;"M"==b[0][0]&&(i=b[0][1],j=b[0][2],k=i,l=j,m++,h.push(["M",i,j]));for(var n=m,o=b.length;o>n;n++){var p=h[n]=[],q=b[n];if(q[0]!=g.call(q[0]))switch(p[0]=g.call(q[0]),p[0]){case"a":p[1]=q[1],p[2]=q[2],p[3]=q[3],p[4]=q[4],p[5]=q[5],p[6]=+(q[6]-i).toFixed(3),p[7]=+(q[7]-j).toFixed(3);break;case"v":p[1]=+(q[1]-j).toFixed(3);break;case"m":k=q[1],l=q[2];default:for(var r=1,s=q.length;s>r;r++)p[r]=+(q[r]-(r%2?i:j)).toFixed(3)}else{p=h[n]=[],"m"==q[0]&&(k=q[1]+i,l=q[2]+j);for(var t=0,u=q.length;u>t;t++)h[n][t]=q[t]}var v=h[n].length;switch(h[n][0]){case"z":i=k,j=l;break;case"h":i+=+h[n][v-1];break;case"v":j+=+h[n][v-1];break;default:i+=+h[n][v-2],j+=+h[n][v-1]}}return h.toString=e,d.rel=f(h),h}function z(b){var d=c(b);if(d.abs)return f(d.abs);if(I(b,"array")&&I(b&&b[0],"array")||(b=a.parsePathString(b)),!b||!b.length)return[["M",0,0]];var g,h=[],i=0,j=0,k=0,l=0,m=0;"M"==b[0][0]&&(i=+b[0][1],j=+b[0][2],k=i,l=j,m++,h[0]=["M",i,j]);for(var n,o,p=3==b.length&&"M"==b[0][0]&&"R"==b[1][0].toUpperCase()&&"Z"==b[2][0].toUpperCase(),q=m,r=b.length;r>q;q++){if(h.push(n=[]),o=b[q],g=o[0],g!=g.toUpperCase())switch(n[0]=g.toUpperCase(),n[0]){case"A":n[1]=o[1],n[2]=o[2],n[3]=o[3],n[4]=o[4],n[5]=o[5],n[6]=+o[6]+i,n[7]=+o[7]+j;break;case"V":n[1]=+o[1]+j;break;case"H":n[1]=+o[1]+i;break;case"R":for(var s=[i,j].concat(o.slice(1)),t=2,u=s.length;u>t;t++)s[t]=+s[t]+i,s[++t]=+s[t]+j;h.pop(),h=h.concat(G(s,p));break;case"O":h.pop(),s=x(i,j,o[1],o[2]),s.push(s[0]),h=h.concat(s);break;case"U":h.pop(),h=h.concat(x(i,j,o[1],o[2],o[3])),n=["U"].concat(h[h.length-1].slice(-2));break;case"M":k=+o[1]+i,l=+o[2]+j;default:for(t=1,u=o.length;u>t;t++)n[t]=+o[t]+(t%2?i:j)}else if("R"==g)s=[i,j].concat(o.slice(1)),h.pop(),h=h.concat(G(s,p)),n=["R"].concat(o.slice(-2));else if("O"==g)h.pop(),s=x(i,j,o[1],o[2]),s.push(s[0]),h=h.concat(s);else if("U"==g)h.pop(),h=h.concat(x(i,j,o[1],o[2],o[3])),n=["U"].concat(h[h.length-1].slice(-2));else for(var v=0,w=o.length;w>v;v++)n[v]=o[v];if(g=g.toUpperCase(),"O"!=g)switch(n[0]){case"Z":i=+k,j=+l;break;case"H":i=n[1];break;case"V":j=n[1];break;case"M":k=n[n.length-2],l=n[n.length-1];default:i=n[n.length-2],j=n[n.length-1]}}return h.toString=e,d.abs=f(h),h}function A(a,b,c,d){return[a,b,c,d,c,d]}function B(a,b,c,d,e,f){var g=1/3,h=2/3;return[g*a+h*c,g*b+h*d,g*e+h*c,g*f+h*d,e,f]}function C(b,c,d,e,f,g,h,i,j,k){var l,m=120*O/180,n=O/180*(+f||0),o=[],p=a._.cacher(function(a,b,c){var d=a*N.cos(c)-b*N.sin(c),e=a*N.sin(c)+b*N.cos(c);return{x:d,y:e}});if(k)y=k[0],z=k[1],w=k[2],x=k[3];else{l=p(b,c,-n),b=l.x,c=l.y,l=p(i,j,-n),i=l.x,j=l.y;var q=(N.cos(O/180*f),N.sin(O/180*f),(b-i)/2),r=(c-j)/2,s=q*q/(d*d)+r*r/(e*e);s>1&&(s=N.sqrt(s),d=s*d,e=s*e);var t=d*d,u=e*e,v=(g==h?-1:1)*N.sqrt(S((t*u-t*r*r-u*q*q)/(t*r*r+u*q*q))),w=v*d*r/e+(b+i)/2,x=v*-e*q/d+(c+j)/2,y=N.asin(((c-x)/e).toFixed(9)),z=N.asin(((j-x)/e).toFixed(9));y=w>b?O-y:y,z=w>i?O-z:z,0>y&&(y=2*O+y),0>z&&(z=2*O+z),h&&y>z&&(y-=2*O),!h&&z>y&&(z-=2*O)}var A=z-y;if(S(A)>m){var B=z,D=i,E=j;z=y+m*(h&&z>y?1:-1),i=w+d*N.cos(z),j=x+e*N.sin(z),o=C(i,j,d,e,f,0,h,D,E,[z,B,w,x])}A=z-y;var F=N.cos(y),G=N.sin(y),H=N.cos(z),I=N.sin(z),J=N.tan(A/4),K=4/3*d*J,L=4/3*e*J,M=[b,c],P=[b+K*G,c-L*F],Q=[i+K*I,j-L*H],R=[i,j];if(P[0]=2*M[0]-P[0],P[1]=2*M[1]-P[1],k)return[P,Q,R].concat(o);o=[P,Q,R].concat(o).join().split(",");for(var T=[],U=0,V=o.length;V>U;U++)T[U]=U%2?p(o[U-1],o[U],n).y:p(o[U],o[U+1],n).x;return T}function D(a,b,c,d,e,f,g,h){for(var i,j,k,l,m,n,o,p,q=[],r=[[],[]],s=0;2>s;++s)if(0==s?(j=6*a-12*c+6*e,i=-3*a+9*c-9*e+3*g,k=3*c-3*a):(j=6*b-12*d+6*f,i=-3*b+9*d-9*f+3*h,k=3*d-3*b),S(i)<1e-12){if(S(j)<1e-12)continue;l=-k/j,l>0&&1>l&&q.push(l)}else o=j*j-4*k*i,p=N.sqrt(o),0>o||(m=(-j+p)/(2*i),m>0&&1>m&&q.push(m),n=(-j-p)/(2*i),n>0&&1>n&&q.push(n));for(var t,u=q.length,v=u;u--;)l=q[u],t=1-l,r[0][u]=t*t*t*a+3*t*t*l*c+3*t*l*l*e+l*l*l*g,r[1][u]=t*t*t*b+3*t*t*l*d+3*t*l*l*f+l*l*l*h;return r[0][v]=a,r[1][v]=b,r[0][v+1]=g,r[1][v+1]=h,r[0].length=r[1].length=v+2,{min:{x:P.apply(0,r[0]),y:P.apply(0,r[1])},max:{x:Q.apply(0,r[0]),y:Q.apply(0,r[1])}}}function E(a,b){var d=!b&&c(a);if(!b&&d.curve)return f(d.curve);for(var e=z(a),g=b&&z(b),h={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},i={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},j=(function(a,b,c){var d,e;if(!a)return["C",b.x,b.y,b.x,b.y,b.x,b.y];switch(!(a[0]in{T:1,Q:1})&&(b.qx=b.qy=null),a[0]){case"M":b.X=a[1],b.Y=a[2];break;case"A":a=["C"].concat(C.apply(0,[b.x,b.y].concat(a.slice(1))));break;case"S":"C"==c||"S"==c?(d=2*b.x-b.bx,e=2*b.y-b.by):(d=b.x,e=b.y),a=["C",d,e].concat(a.slice(1));break;case"T":"Q"==c||"T"==c?(b.qx=2*b.x-b.qx,b.qy=2*b.y-b.qy):(b.qx=b.x,b.qy=b.y),a=["C"].concat(B(b.x,b.y,b.qx,b.qy,a[1],a[2]));break;case"Q":b.qx=a[1],b.qy=a[2],a=["C"].concat(B(b.x,b.y,a[1],a[2],a[3],a[4]));break;case"L":a=["C"].concat(A(b.x,b.y,a[1],a[2]));break;case"H":a=["C"].concat(A(b.x,b.y,a[1],b.y));break;case"V":a=["C"].concat(A(b.x,b.y,b.x,a[1]));break;case"Z":a=["C"].concat(A(b.x,b.y,b.X,b.Y))}return a}),k=function(a,b){if(a[b].length>7){a[b].shift();for(var c=a[b];c.length;)m[b]="A",g&&(n[b]="A"),a.splice(b++,0,["C"].concat(c.splice(0,6)));a.splice(b,1),r=Q(e.length,g&&g.length||0)}},l=function(a,b,c,d,f){a&&b&&"M"==a[f][0]&&"M"!=b[f][0]&&(b.splice(f,0,["M",d.x,d.y]),c.bx=0,c.by=0,c.x=a[f][1],c.y=a[f][2],r=Q(e.length,g&&g.length||0))},m=[],n=[],o="",p="",q=0,r=Q(e.length,g&&g.length||0);r>q;q++){e[q]&&(o=e[q][0]),"C"!=o&&(m[q]=o,q&&(p=m[q-1])),e[q]=j(e[q],h,p),"A"!=m[q]&&"C"==o&&(m[q]="C"),k(e,q),g&&(g[q]&&(o=g[q][0]),"C"!=o&&(n[q]=o,q&&(p=n[q-1])),g[q]=j(g[q],i,p),"A"!=n[q]&&"C"==o&&(n[q]="C"),k(g,q)),l(e,g,h,i,q),l(g,e,i,h,q);var s=e[q],t=g&&g[q],u=s.length,v=g&&t.length;h.x=s[u-2],h.y=s[u-1],h.bx=M(s[u-4])||h.x,h.by=M(s[u-3])||h.y,i.bx=g&&(M(t[v-4])||i.x),i.by=g&&(M(t[v-3])||i.y),i.x=g&&t[v-2],i.y=g&&t[v-1]}return g||(d.curve=f(e)),g?[e,g]:e}function F(a,b){if(!b)return a;var c,d,e,f,g,h,i;for(a=E(a),e=0,g=a.length;g>e;e++)for(i=a[e],f=1,h=i.length;h>f;f+=2)c=b.x(i[f],i[f+1]),d=b.y(i[f],i[f+1]),i[f]=c,i[f+1]=d;return a}function G(a,b){for(var c=[],d=0,e=a.length;e-2*!b>d;d+=2){var f=[{x:+a[d-2],y:+a[d-1]},{x:+a[d],y:+a[d+1]},{x:+a[d+2],y:+a[d+3]},{x:+a[d+4],y:+a[d+5]}];b?d?e-4==d?f[3]={x:+a[0],y:+a[1]}:e-2==d&&(f[2]={x:+a[0],y:+a[1]},f[3]={x:+a[2],y:+a[3]}):f[0]={x:+a[e-2],y:+a[e-1]}:e-4==d?f[3]=f[2]:d||(f[0]={x:+a[d],y:+a[d+1]}),c.push(["C",(-f[0].x+6*f[1].x+f[2].x)/6,(-f[0].y+6*f[1].y+f[2].y)/6,(f[1].x+6*f[2].x-f[3].x)/6,(f[1].y+6*f[2].y-f[3].y)/6,f[2].x,f[2].y])}return c}var H=b.prototype,I=a.is,J=a._.clone,K="hasOwnProperty",L=/,?([a-z]),?/gi,M=parseFloat,N=Math,O=N.PI,P=N.min,Q=N.max,R=N.pow,S=N.abs,T=h(1),U=h(),V=h(0,1),W=a._unit2px,X={path:function(a){return a.attr("path")},circle:function(a){var b=W(a);return x(b.cx,b.cy,b.r)},ellipse:function(a){var b=W(a);return x(b.cx||0,b.cy||0,b.rx,b.ry)},rect:function(a){var b=W(a);return w(b.x||0,b.y||0,b.width,b.height,b.rx,b.ry)},image:function(a){var b=W(a);return w(b.x||0,b.y||0,b.width,b.height)},line:function(a){return"M"+[a.attr("x1")||0,a.attr("y1")||0,a.attr("x2"),a.attr("y2")]},polyline:function(a){return"M"+a.attr("points")},polygon:function(a){return"M"+a.attr("points")+"z"},deflt:function(a){var b=a.node.getBBox();return w(b.x,b.y,b.width,b.height)}};a.path=c,a.path.getTotalLength=T,a.path.getPointAtLength=U,a.path.getSubpath=function(a,b,c){if(this.getTotalLength(a)-c<1e-6)return V(a,b).end;var d=V(a,c,1);return b?V(d,b).end:d},H.getTotalLength=function(){return this.node.getTotalLength?this.node.getTotalLength():void 0},H.getPointAtLength=function(a){return U(this.attr("d"),a)},H.getSubpath=function(b,c){return a.path.getSubpath(this.attr("d"),b,c)},a._.box=d,a.path.findDotsAtSegment=i,a.path.bezierBBox=j,a.path.isPointInsideBBox=k,a.closest=function(b,c,e,f){for(var g=100,h=d(b-g/2,c-g/2,g,g),i=[],j=e[0].hasOwnProperty("x")?function(a){return{x:e[a].x,y:e[a].y}}:function(a){return{x:e[a],y:f[a]}},l=0;1e6>=g&&!l;){for(var m=0,n=e.length;n>m;m++){var o=j(m);if(k(h,o.x,o.y)){l++,i.push(o);break}}l||(g*=2,h=d(b-g/2,c-g/2,g,g))}if(1e6!=g){var p,q=1/0;for(m=0,n=i.length;n>m;m++){var r=a.len(b,c,i[m].x,i[m].y);q>r&&(q=r,i[m].len=r,p=i[m])}return p}},a.path.isBBoxIntersect=l,a.path.intersection=r,a.path.intersectionNumber=s,a.path.isPointInside=u,a.path.getBBox=v,a.path.get=X,a.path.toRelative=y,a.path.toAbsolute=z,a.path.toCubic=E,a.path.map=F,a.path.toString=e,a.path.clone=f}),d.plugin(function(a){var d=Math.max,e=Math.min,f=function(a){if(this.items=[],this.bindings={},this.length=0,this.type="set",a)for(var b=0,c=a.length;c>b;b++)a[b]&&(this[this.items.length]=this.items[this.items.length]=a[b],this.length++)},g=f.prototype;g.push=function(){for(var a,b,c=0,d=arguments.length;d>c;c++)a=arguments[c],a&&(b=this.items.length,this[b]=this.items[b]=a,this.length++);return this},g.pop=function(){return this.length&&delete this[this.length--],this.items.pop()},g.forEach=function(a,b){for(var c=0,d=this.items.length;d>c;c++)if(a.call(b,this.items[c],c)===!1)return this;return this},g.animate=function(d,e,f,g){"function"!=typeof f||f.length||(g=f,f=c.linear),d instanceof a._.Animation&&(g=d.callback,f=d.easing,e=f.dur,d=d.attr);var h=arguments;if(a.is(d,"array")&&a.is(h[h.length-1],"array"))var i=!0;var j,k=function(){j?this.b=j:j=this.b},l=0,m=this,n=g&&function(){++l==m.length&&g.call(this) +};return this.forEach(function(a,c){b.once("snap.animcreated."+a.id,k),i?h[c]&&a.animate.apply(a,h[c]):a.animate(d,e,f,n)})},g.remove=function(){for(;this.length;)this.pop().remove();return this},g.bind=function(a,b,c){var d={};if("function"==typeof b)this.bindings[a]=b;else{var e=c||a;this.bindings[a]=function(a){d[e]=a,b.attr(d)}}return this},g.attr=function(a){var b={};for(var c in a)this.bindings[c]?this.bindings[c](a[c]):b[c]=a[c];for(var d=0,e=this.items.length;e>d;d++)this.items[d].attr(b);return this},g.clear=function(){for(;this.length;)this.pop()},g.splice=function(a,b){a=0>a?d(this.length+a,0):a,b=d(0,e(this.length-a,b));var c,g=[],h=[],i=[];for(c=2;cc;c++)h.push(this[a+c]);for(;cc?i[c]:g[c-j];for(c=this.items.length=this.length-=b-j;this[c];)delete this[c++];return new f(h)},g.exclude=function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]==a)return this.splice(b,1),!0;return!1},g.insertAfter=function(a){for(var b=this.items.length;b--;)this.items[b].insertAfter(a);return this},g.getBBox=function(){for(var a=[],b=[],c=[],f=[],g=this.items.length;g--;)if(!this.items[g].removed){var h=this.items[g].getBBox();a.push(h.x),b.push(h.y),c.push(h.x+h.width),f.push(h.y+h.height)}return a=e.apply(0,a),b=e.apply(0,b),c=d.apply(0,c),f=d.apply(0,f),{x:a,y:b,x2:c,y2:f,width:c-a,height:f-b,cx:a+(c-a)/2,cy:b+(f-b)/2}},g.clone=function(a){a=new f;for(var b=0,c=this.items.length;c>b;b++)a.push(this.items[b].clone());return a},g.toString=function(){return"Snap‘s set"},g.type="set",a.Set=f,a.set=function(){var a=new f;return arguments.length&&a.push.apply(a,Array.prototype.slice.call(arguments,0)),a}}),d.plugin(function(a,c){function d(a){var b=a[0];switch(b.toLowerCase()){case"t":return[b,0,0];case"m":return[b,1,0,0,1,0,0];case"r":return 4==a.length?[b,0,a[2],a[3]]:[b,0];case"s":return 5==a.length?[b,1,1,a[3],a[4]]:3==a.length?[b,1,1]:[b,1]}}function e(b,c,e){c=p(c).replace(/\.{3}|\u2026/g,b),b=a.parseTransformString(b)||[],c=a.parseTransformString(c)||[];for(var f,g,h,i,l=Math.max(b.length,c.length),m=[],n=[],o=0;l>o;o++){if(h=b[o]||d(c[o]),i=c[o]||d(h),h[0]!=i[0]||"r"==h[0].toLowerCase()&&(h[2]!=i[2]||h[3]!=i[3])||"s"==h[0].toLowerCase()&&(h[3]!=i[3]||h[4]!=i[4])){b=a._.transform2matrix(b,e()),c=a._.transform2matrix(c,e()),m=[["m",b.a,b.b,b.c,b.d,b.e,b.f]],n=[["m",c.a,c.b,c.c,c.d,c.e,c.f]];break}for(m[o]=[],n[o]=[],f=0,g=Math.max(h.length,i.length);g>f;f++)f in h&&(m[o][f]=h[f]),f in i&&(n[o][f]=i[f])}return{from:k(m),to:k(n),f:j(m)}}function f(a){return a}function g(a){return function(b){return+b.toFixed(3)+a}}function h(a){return a.join(" ")}function i(b){return a.rgb(b[0],b[1],b[2])}function j(a){var b,c,d,e,f,g,h=0,i=[];for(b=0,c=a.length;c>b;b++){for(f="[",g=['"'+a[b][0]+'"'],d=1,e=a[b].length;e>d;d++)g[d]="val["+h++ +"]";f+=g+"]",i[b]=f}return Function("val","return Snap.path.toString.call(["+i+"])")}function k(a){for(var b=[],c=0,d=a.length;d>c;c++)for(var e=1,f=a[c].length;f>e;e++)b.push(a[c][e]);return b}function l(a){return isFinite(parseFloat(a))}function m(b,c){return a.is(b,"array")&&a.is(c,"array")?b.toString()==c.toString():!1}var n={},o=/[a-z]+$/i,p=String;n.stroke=n.fill="colour",c.prototype.equal=function(a,c){return b("snap.util.equal",this,a,c).firstDefined()},b.on("snap.util.equal",function(b,c){var d,q,r=p(this.attr(b)||""),s=this;if(l(r)&&l(c))return{from:parseFloat(r),to:parseFloat(c),f:f};if("colour"==n[b])return d=a.color(r),q=a.color(c),{from:[d.r,d.g,d.b,d.opacity],to:[q.r,q.g,q.b,q.opacity],f:i};if("viewBox"==b)return d=this.attr(b).vb.split(" ").map(Number),q=c.split(" ").map(Number),{from:d,to:q,f:h};if("transform"==b||"gradientTransform"==b||"patternTransform"==b)return c instanceof a.Matrix&&(c=c.toTransformString()),a._.rgTransform.test(c)||(c=a._.svgTransform2string(c)),e(r,c,function(){return s.getBBox(1)});if("d"==b||"path"==b)return d=a.path.toCubic(r,c),{from:k(d[0]),to:k(d[1]),f:j(d[0])};if("points"==b)return d=p(r).split(a._.separator),q=p(c).split(a._.separator),{from:d,to:q,f:function(a){return a}};var t=r.match(o),u=p(c).match(o);return t&&m(t,u)?{from:parseFloat(r),to:parseFloat(c),f:g(t)}:{from:this.asPX(b),to:this.asPX(b,c),f:f}})}),d.plugin(function(a,c,d,e){for(var f=c.prototype,g="hasOwnProperty",h=("createTouch"in e.doc),i=["click","dblclick","mousedown","mousemove","mouseout","mouseover","mouseup","touchstart","touchmove","touchend","touchcancel"],j={mousedown:"touchstart",mousemove:"touchmove",mouseup:"touchend"},k=(function(a,b){var c="y"==a?"scrollTop":"scrollLeft",d=b&&b.node?b.node.ownerDocument:e.doc;return d[c in d.documentElement?"documentElement":"body"][c]}),l=function(){return this.originalEvent.preventDefault()},m=function(){return this.originalEvent.stopPropagation()},n=function(a,b,c,d){var e=h&&j[b]?j[b]:b,f=function(e){var f=k("y",d),i=k("x",d);if(h&&j[g](b))for(var n=0,o=e.targetTouches&&e.targetTouches.length;o>n;n++)if(e.targetTouches[n].target==a||a.contains(e.targetTouches[n].target)){var p=e;e=e.targetTouches[n],e.originalEvent=p,e.preventDefault=l,e.stopPropagation=m;break}var q=e.clientX+i,r=e.clientY+f;return c.call(d,e,q,r)};return b!==e&&a.addEventListener(b,f,!1),a.addEventListener(e,f,!1),function(){return b!==e&&a.removeEventListener(b,f,!1),a.removeEventListener(e,f,!1),!0}},o=[],p=function(a){for(var c,d=a.clientX,e=a.clientY,f=k("y"),g=k("x"),i=o.length;i--;){if(c=o[i],h){for(var j,l=a.touches&&a.touches.length;l--;)if(j=a.touches[l],j.identifier==c.el._drag.id||c.el.node.contains(j.target)){d=j.clientX,e=j.clientY,(a.originalEvent?a.originalEvent:a).preventDefault();break}}else a.preventDefault();{var m=c.el.node;m.nextSibling,m.parentNode,m.style.display}d+=g,e+=f,b("snap.drag.move."+c.el.id,c.move_scope||c.el,d-c.el._drag.x,e-c.el._drag.y,d,e,a)}},q=function(c){a.unmousemove(p).unmouseup(q);for(var d,e=o.length;e--;)d=o[e],d.el._drag={},b("snap.drag.end."+d.el.id,d.end_scope||d.start_scope||d.move_scope||d.el,c),b.off("snap.drag.*."+d.el.id);o=[]},r=i.length;r--;)!function(b){a[b]=f[b]=function(c,d){if(a.is(c,"function"))this.events=this.events||[],this.events.push({name:b,f:c,unbind:n(this.node||document,b,c,d||this)});else for(var e=0,f=this.events.length;f>e;e++)if(this.events[e].name==b)try{this.events[e].f.call(this)}catch(g){}return this},a["un"+b]=f["un"+b]=function(a){for(var c=this.events||[],d=c.length;d--;)if(c[d].name==b&&(c[d].f==a||!a))return c[d].unbind(),c.splice(d,1),!c.length&&delete this.events,this;return this}}(i[r]);f.hover=function(a,b,c,d){return this.mouseover(a,c).mouseout(b,d||c)},f.unhover=function(a,b){return this.unmouseover(a).unmouseout(b)};var s=[];f.drag=function(c,d,e,f,g,h){function i(i,j,l){(i.originalEvent||i).preventDefault(),k._drag.x=j,k._drag.y=l,k._drag.id=i.identifier,!o.length&&a.mousemove(p).mouseup(q),o.push({el:k,move_scope:f,start_scope:g,end_scope:h}),d&&b.on("snap.drag.start."+k.id,d),c&&b.on("snap.drag.move."+k.id,c),e&&b.on("snap.drag.end."+k.id,e),b("snap.drag.start."+k.id,g||f||k,j,l,i)}function j(a,c,d){b("snap.draginit."+k.id,k,a,c,d)}var k=this;if(!arguments.length){var l;return k.drag(function(a,b){this.attr({transform:l+(l?"T":"t")+[a,b]})},function(){l=this.transform().local})}return b.on("snap.draginit."+k.id,i),k._drag={},s.push({el:k,start:i,init:j}),k.mousedown(j),k},f.undrag=function(){for(var c=s.length;c--;)s[c].el==this&&(this.unmousedown(s[c].init),s.splice(c,1),b.unbind("snap.drag.*."+this.id),b.unbind("snap.draginit."+this.id));return!s.length&&a.unmousemove(p).unmouseup(q),this}}),d.plugin(function(a,c,d){var e=(c.prototype,d.prototype),f=/^\s*url\((.+)\)/,g=String,h=a._.$;a.filter={},e.filter=function(b){var d=this;"svg"!=d.type&&(d=d.paper);var e=a.parse(g(b)),f=a._.id(),i=(d.node.offsetWidth,d.node.offsetHeight,h("filter"));return h(i,{id:f,filterUnits:"userSpaceOnUse"}),i.appendChild(e.node),d.defs.appendChild(i),new c(i)},b.on("snap.util.getattr.filter",function(){b.stop();var c=h(this.node,"filter");if(c){var d=g(c).match(f);return d&&a.select(d[1])}}),b.on("snap.util.attr.filter",function(d){if(d instanceof c&&"filter"==d.type){b.stop();var e=d.node.id;e||(h(d.node,{id:d.id}),e=d.id),h(this.node,{filter:a.url(e)})}d&&"none"!=d||(b.stop(),this.node.removeAttribute("filter"))}),a.filter.blur=function(b,c){null==b&&(b=2);var d=null==c?b:[b,c];return a.format('',{def:d})},a.filter.blur.toString=function(){return this()},a.filter.shadow=function(b,c,d,e,f){return"string"==typeof d&&(e=d,f=e,d=4),"string"!=typeof e&&(f=e,e="#000"),e=e||"#000",null==d&&(d=4),null==f&&(f=1),null==b&&(b=0,c=2),null==c&&(c=b),e=a.color(e),a.format('',{color:e,dx:b,dy:c,blur:d,opacity:f})},a.filter.shadow.toString=function(){return this()},a.filter.grayscale=function(b){return null==b&&(b=1),a.format('',{a:.2126+.7874*(1-b),b:.7152-.7152*(1-b),c:.0722-.0722*(1-b),d:.2126-.2126*(1-b),e:.7152+.2848*(1-b),f:.0722-.0722*(1-b),g:.2126-.2126*(1-b),h:.0722+.9278*(1-b)})},a.filter.grayscale.toString=function(){return this()},a.filter.sepia=function(b){return null==b&&(b=1),a.format('',{a:.393+.607*(1-b),b:.769-.769*(1-b),c:.189-.189*(1-b),d:.349-.349*(1-b),e:.686+.314*(1-b),f:.168-.168*(1-b),g:.272-.272*(1-b),h:.534-.534*(1-b),i:.131+.869*(1-b)})},a.filter.sepia.toString=function(){return this()},a.filter.saturate=function(b){return null==b&&(b=1),a.format('',{amount:1-b})},a.filter.saturate.toString=function(){return this()},a.filter.hueRotate=function(b){return b=b||0,a.format('',{angle:b})},a.filter.hueRotate.toString=function(){return this()},a.filter.invert=function(b){return null==b&&(b=1),a.format('',{amount:b,amount2:1-b})},a.filter.invert.toString=function(){return this()},a.filter.brightness=function(b){return null==b&&(b=1),a.format('',{amount:b})},a.filter.brightness.toString=function(){return this()},a.filter.contrast=function(b){return null==b&&(b=1),a.format('',{amount:b,amount2:.5-b/2})},a.filter.contrast.toString=function(){return this()}}),d.plugin(function(a,b){var c=a._.box,d=a.is,e=/^[^a-z]*([tbmlrc])/i,f=function(){return"T"+this.dx+","+this.dy};b.prototype.getAlign=function(a,b){null==b&&d(a,"string")&&(b=a,a=null),a=a||this.paper;var g=a.getBBox?a.getBBox():c(a),h=this.getBBox(),i={};switch(b=b&&b.match(e),b=b?b[1].toLowerCase():"c"){case"t":i.dx=0,i.dy=g.y-h.y;break;case"b":i.dx=0,i.dy=g.y2-h.y2;break;case"m":i.dx=0,i.dy=g.cy-h.cy;break;case"l":i.dx=g.x-h.x,i.dy=0;break;case"r":i.dx=g.x2-h.x2,i.dy=0;break;default:i.dx=g.cx-h.cx,i.dy=0}return i.toString=f,i},b.prototype.align=function(a,b){return this.transform("..."+this.getAlign(a,b))}}),d}); diff --git a/public/docs/assets/stylesheets/application-palette.a8b3c06d.css b/public/docs/assets/stylesheets/application-palette.a8b3c06d.css new file mode 100644 index 0000000..e07df05 --- /dev/null +++ b/public/docs/assets/stylesheets/application-palette.a8b3c06d.css @@ -0,0 +1 @@ +button[data-md-color-accent],button[data-md-color-primary]{width:6.5rem;margin-bottom:.2rem;padding:1.2rem .4rem .2rem;-webkit-transition:background-color .25s,opacity .25s;transition:background-color .25s,opacity .25s;border-radius:.1rem;color:#fff;font-size:.64rem;text-align:left;cursor:pointer}button[data-md-color-accent]:hover,button[data-md-color-primary]:hover{opacity:.75}button[data-md-color-primary=red]{background-color:#ef5350}[data-md-color-primary=red] .md-typeset a{color:#ef5350}[data-md-color-primary=red] .md-header,[data-md-color-primary=red] .md-hero{background-color:#ef5350}[data-md-color-primary=red] .md-nav__link--active,[data-md-color-primary=red] .md-nav__link:active{color:#ef5350}[data-md-color-primary=red] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=pink]{background-color:#e91e63}[data-md-color-primary=pink] .md-typeset a{color:#e91e63}[data-md-color-primary=pink] .md-header,[data-md-color-primary=pink] .md-hero{background-color:#e91e63}[data-md-color-primary=pink] .md-nav__link--active,[data-md-color-primary=pink] .md-nav__link:active{color:#e91e63}[data-md-color-primary=pink] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=purple]{background-color:#ab47bc}[data-md-color-primary=purple] .md-typeset a{color:#ab47bc}[data-md-color-primary=purple] .md-header,[data-md-color-primary=purple] .md-hero{background-color:#ab47bc}[data-md-color-primary=purple] .md-nav__link--active,[data-md-color-primary=purple] .md-nav__link:active{color:#ab47bc}[data-md-color-primary=purple] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=deep-purple]{background-color:#7e57c2}[data-md-color-primary=deep-purple] .md-typeset a{color:#7e57c2}[data-md-color-primary=deep-purple] .md-header,[data-md-color-primary=deep-purple] .md-hero{background-color:#7e57c2}[data-md-color-primary=deep-purple] .md-nav__link--active,[data-md-color-primary=deep-purple] .md-nav__link:active{color:#7e57c2}[data-md-color-primary=deep-purple] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=indigo]{background-color:#3f51b5}[data-md-color-primary=indigo] .md-typeset a{color:#3f51b5}[data-md-color-primary=indigo] .md-header,[data-md-color-primary=indigo] .md-hero{background-color:#3f51b5}[data-md-color-primary=indigo] .md-nav__link--active,[data-md-color-primary=indigo] .md-nav__link:active{color:#3f51b5}[data-md-color-primary=indigo] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=blue]{background-color:#2196f3}[data-md-color-primary=blue] .md-typeset a{color:#2196f3}[data-md-color-primary=blue] .md-header,[data-md-color-primary=blue] .md-hero{background-color:#2196f3}[data-md-color-primary=blue] .md-nav__link--active,[data-md-color-primary=blue] .md-nav__link:active{color:#2196f3}[data-md-color-primary=blue] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=light-blue]{background-color:#03a9f4}[data-md-color-primary=light-blue] .md-typeset a{color:#03a9f4}[data-md-color-primary=light-blue] .md-header,[data-md-color-primary=light-blue] .md-hero{background-color:#03a9f4}[data-md-color-primary=light-blue] .md-nav__link--active,[data-md-color-primary=light-blue] .md-nav__link:active{color:#03a9f4}[data-md-color-primary=light-blue] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=cyan]{background-color:#00bcd4}[data-md-color-primary=cyan] .md-typeset a{color:#00bcd4}[data-md-color-primary=cyan] .md-header,[data-md-color-primary=cyan] .md-hero{background-color:#00bcd4}[data-md-color-primary=cyan] .md-nav__link--active,[data-md-color-primary=cyan] .md-nav__link:active{color:#00bcd4}[data-md-color-primary=cyan] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=teal]{background-color:#009688}[data-md-color-primary=teal] .md-typeset a{color:#009688}[data-md-color-primary=teal] .md-header,[data-md-color-primary=teal] .md-hero{background-color:#009688}[data-md-color-primary=teal] .md-nav__link--active,[data-md-color-primary=teal] .md-nav__link:active{color:#009688}[data-md-color-primary=teal] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=green]{background-color:#4caf50}[data-md-color-primary=green] .md-typeset a{color:#4caf50}[data-md-color-primary=green] .md-header,[data-md-color-primary=green] .md-hero{background-color:#4caf50}[data-md-color-primary=green] .md-nav__link--active,[data-md-color-primary=green] .md-nav__link:active{color:#4caf50}[data-md-color-primary=green] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=light-green]{background-color:#7cb342}[data-md-color-primary=light-green] .md-typeset a{color:#7cb342}[data-md-color-primary=light-green] .md-header,[data-md-color-primary=light-green] .md-hero{background-color:#7cb342}[data-md-color-primary=light-green] .md-nav__link--active,[data-md-color-primary=light-green] .md-nav__link:active{color:#7cb342}[data-md-color-primary=light-green] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=lime]{background-color:#c0ca33}[data-md-color-primary=lime] .md-typeset a{color:#c0ca33}[data-md-color-primary=lime] .md-header,[data-md-color-primary=lime] .md-hero{background-color:#c0ca33}[data-md-color-primary=lime] .md-nav__link--active,[data-md-color-primary=lime] .md-nav__link:active{color:#c0ca33}[data-md-color-primary=lime] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=yellow]{background-color:#f9a825}[data-md-color-primary=yellow] .md-typeset a{color:#f9a825}[data-md-color-primary=yellow] .md-header,[data-md-color-primary=yellow] .md-hero{background-color:#f9a825}[data-md-color-primary=yellow] .md-nav__link--active,[data-md-color-primary=yellow] .md-nav__link:active{color:#f9a825}[data-md-color-primary=yellow] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=amber]{background-color:#ffa000}[data-md-color-primary=amber] .md-typeset a{color:#ffa000}[data-md-color-primary=amber] .md-header,[data-md-color-primary=amber] .md-hero{background-color:#ffa000}[data-md-color-primary=amber] .md-nav__link--active,[data-md-color-primary=amber] .md-nav__link:active{color:#ffa000}[data-md-color-primary=amber] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=orange]{background-color:#fb8c00}[data-md-color-primary=orange] .md-typeset a{color:#fb8c00}[data-md-color-primary=orange] .md-header,[data-md-color-primary=orange] .md-hero{background-color:#fb8c00}[data-md-color-primary=orange] .md-nav__link--active,[data-md-color-primary=orange] .md-nav__link:active{color:#fb8c00}[data-md-color-primary=orange] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=deep-orange]{background-color:#ff7043}[data-md-color-primary=deep-orange] .md-typeset a{color:#ff7043}[data-md-color-primary=deep-orange] .md-header,[data-md-color-primary=deep-orange] .md-hero{background-color:#ff7043}[data-md-color-primary=deep-orange] .md-nav__link--active,[data-md-color-primary=deep-orange] .md-nav__link:active{color:#ff7043}[data-md-color-primary=deep-orange] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=brown]{background-color:#795548}[data-md-color-primary=brown] .md-typeset a{color:#795548}[data-md-color-primary=brown] .md-header,[data-md-color-primary=brown] .md-hero{background-color:#795548}[data-md-color-primary=brown] .md-nav__link--active,[data-md-color-primary=brown] .md-nav__link:active{color:#795548}[data-md-color-primary=brown] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=grey]{background-color:#757575}[data-md-color-primary=grey] .md-typeset a{color:#757575}[data-md-color-primary=grey] .md-header,[data-md-color-primary=grey] .md-hero{background-color:#757575}[data-md-color-primary=grey] .md-nav__link--active,[data-md-color-primary=grey] .md-nav__link:active{color:#757575}[data-md-color-primary=grey] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=blue-grey]{background-color:#546e7a}[data-md-color-primary=blue-grey] .md-typeset a{color:#546e7a}[data-md-color-primary=blue-grey] .md-header,[data-md-color-primary=blue-grey] .md-hero{background-color:#546e7a}[data-md-color-primary=blue-grey] .md-nav__link--active,[data-md-color-primary=blue-grey] .md-nav__link:active{color:#546e7a}[data-md-color-primary=blue-grey] .md-nav__item--nested>.md-nav__link{color:inherit}button[data-md-color-primary=white]{box-shadow:inset 0 0 .05rem rgba(0,0,0,.54)}[data-md-color-primary=white] .md-header,[data-md-color-primary=white] .md-hero,button[data-md-color-primary=white]{background-color:#fff;color:rgba(0,0,0,.87)}[data-md-color-primary=white] .md-hero--expand{border-bottom:.05rem solid rgba(0,0,0,.07)}[data-md-color-primary=black] .md-header,[data-md-color-primary=black] .md-hero,button[data-md-color-primary=black]{background-color:#000}button[data-md-color-accent=red]{background-color:#ff1744}[data-md-color-accent=red] .md-typeset a:active,[data-md-color-accent=red] .md-typeset a:hover{color:#ff1744}[data-md-color-accent=red] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover,[data-md-color-accent=red] .md-typeset pre code::-webkit-scrollbar-thumb:hover{background-color:#ff1744}[data-md-color-accent=red] .md-nav__link:focus,[data-md-color-accent=red] .md-nav__link:hover,[data-md-color-accent=red] .md-typeset .footnote li:hover .footnote-backref:hover,[data-md-color-accent=red] .md-typeset .footnote li:target .footnote-backref,[data-md-color-accent=red] .md-typeset .md-clipboard:active:before,[data-md-color-accent=red] .md-typeset .md-clipboard:hover:before,[data-md-color-accent=red] .md-typeset [id] .headerlink:focus,[data-md-color-accent=red] .md-typeset [id]:hover .headerlink:hover,[data-md-color-accent=red] .md-typeset [id]:target .headerlink{color:#ff1744}[data-md-color-accent=red] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#ff1744}[data-md-color-accent=red] .md-search-result__link:hover,[data-md-color-accent=red] .md-search-result__link[data-md-state=active]{background-color:rgba(255,23,68,.1)}[data-md-color-accent=red] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#ff1744}[data-md-color-accent=red] .md-source-file:hover:before{background-color:#ff1744}button[data-md-color-accent=pink]{background-color:#f50057}[data-md-color-accent=pink] .md-typeset a:active,[data-md-color-accent=pink] .md-typeset a:hover{color:#f50057}[data-md-color-accent=pink] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover,[data-md-color-accent=pink] .md-typeset pre code::-webkit-scrollbar-thumb:hover{background-color:#f50057}[data-md-color-accent=pink] .md-nav__link:focus,[data-md-color-accent=pink] .md-nav__link:hover,[data-md-color-accent=pink] .md-typeset .footnote li:hover .footnote-backref:hover,[data-md-color-accent=pink] .md-typeset .footnote li:target .footnote-backref,[data-md-color-accent=pink] .md-typeset .md-clipboard:active:before,[data-md-color-accent=pink] .md-typeset .md-clipboard:hover:before,[data-md-color-accent=pink] .md-typeset [id] .headerlink:focus,[data-md-color-accent=pink] .md-typeset [id]:hover .headerlink:hover,[data-md-color-accent=pink] .md-typeset [id]:target .headerlink{color:#f50057}[data-md-color-accent=pink] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#f50057}[data-md-color-accent=pink] .md-search-result__link:hover,[data-md-color-accent=pink] .md-search-result__link[data-md-state=active]{background-color:rgba(245,0,87,.1)}[data-md-color-accent=pink] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#f50057}[data-md-color-accent=pink] .md-source-file:hover:before{background-color:#f50057}button[data-md-color-accent=purple]{background-color:#e040fb}[data-md-color-accent=purple] .md-typeset a:active,[data-md-color-accent=purple] .md-typeset a:hover{color:#e040fb}[data-md-color-accent=purple] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover,[data-md-color-accent=purple] .md-typeset pre code::-webkit-scrollbar-thumb:hover{background-color:#e040fb}[data-md-color-accent=purple] .md-nav__link:focus,[data-md-color-accent=purple] .md-nav__link:hover,[data-md-color-accent=purple] .md-typeset .footnote li:hover .footnote-backref:hover,[data-md-color-accent=purple] .md-typeset .footnote li:target .footnote-backref,[data-md-color-accent=purple] .md-typeset .md-clipboard:active:before,[data-md-color-accent=purple] .md-typeset .md-clipboard:hover:before,[data-md-color-accent=purple] .md-typeset [id] .headerlink:focus,[data-md-color-accent=purple] .md-typeset [id]:hover .headerlink:hover,[data-md-color-accent=purple] .md-typeset [id]:target .headerlink{color:#e040fb}[data-md-color-accent=purple] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#e040fb}[data-md-color-accent=purple] .md-search-result__link:hover,[data-md-color-accent=purple] .md-search-result__link[data-md-state=active]{background-color:rgba(224,64,251,.1)}[data-md-color-accent=purple] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#e040fb}[data-md-color-accent=purple] .md-source-file:hover:before{background-color:#e040fb}button[data-md-color-accent=deep-purple]{background-color:#7c4dff}[data-md-color-accent=deep-purple] .md-typeset a:active,[data-md-color-accent=deep-purple] .md-typeset a:hover{color:#7c4dff}[data-md-color-accent=deep-purple] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover,[data-md-color-accent=deep-purple] .md-typeset pre code::-webkit-scrollbar-thumb:hover{background-color:#7c4dff}[data-md-color-accent=deep-purple] .md-nav__link:focus,[data-md-color-accent=deep-purple] .md-nav__link:hover,[data-md-color-accent=deep-purple] .md-typeset .footnote li:hover .footnote-backref:hover,[data-md-color-accent=deep-purple] .md-typeset .footnote li:target .footnote-backref,[data-md-color-accent=deep-purple] .md-typeset .md-clipboard:active:before,[data-md-color-accent=deep-purple] .md-typeset .md-clipboard:hover:before,[data-md-color-accent=deep-purple] .md-typeset [id] .headerlink:focus,[data-md-color-accent=deep-purple] .md-typeset [id]:hover .headerlink:hover,[data-md-color-accent=deep-purple] .md-typeset [id]:target .headerlink{color:#7c4dff}[data-md-color-accent=deep-purple] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#7c4dff}[data-md-color-accent=deep-purple] .md-search-result__link:hover,[data-md-color-accent=deep-purple] .md-search-result__link[data-md-state=active]{background-color:rgba(124,77,255,.1)}[data-md-color-accent=deep-purple] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#7c4dff}[data-md-color-accent=deep-purple] .md-source-file:hover:before{background-color:#7c4dff}button[data-md-color-accent=indigo]{background-color:#536dfe}[data-md-color-accent=indigo] .md-typeset a:active,[data-md-color-accent=indigo] .md-typeset a:hover{color:#536dfe}[data-md-color-accent=indigo] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover,[data-md-color-accent=indigo] .md-typeset pre code::-webkit-scrollbar-thumb:hover{background-color:#536dfe}[data-md-color-accent=indigo] .md-nav__link:focus,[data-md-color-accent=indigo] .md-nav__link:hover,[data-md-color-accent=indigo] .md-typeset .footnote li:hover .footnote-backref:hover,[data-md-color-accent=indigo] .md-typeset .footnote li:target .footnote-backref,[data-md-color-accent=indigo] .md-typeset .md-clipboard:active:before,[data-md-color-accent=indigo] .md-typeset .md-clipboard:hover:before,[data-md-color-accent=indigo] .md-typeset [id] .headerlink:focus,[data-md-color-accent=indigo] .md-typeset [id]:hover .headerlink:hover,[data-md-color-accent=indigo] .md-typeset [id]:target .headerlink{color:#536dfe}[data-md-color-accent=indigo] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#536dfe}[data-md-color-accent=indigo] .md-search-result__link:hover,[data-md-color-accent=indigo] .md-search-result__link[data-md-state=active]{background-color:rgba(83,109,254,.1)}[data-md-color-accent=indigo] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#536dfe}[data-md-color-accent=indigo] .md-source-file:hover:before{background-color:#536dfe}button[data-md-color-accent=blue]{background-color:#448aff}[data-md-color-accent=blue] .md-typeset a:active,[data-md-color-accent=blue] .md-typeset a:hover{color:#448aff}[data-md-color-accent=blue] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover,[data-md-color-accent=blue] .md-typeset pre code::-webkit-scrollbar-thumb:hover{background-color:#448aff}[data-md-color-accent=blue] .md-nav__link:focus,[data-md-color-accent=blue] .md-nav__link:hover,[data-md-color-accent=blue] .md-typeset .footnote li:hover .footnote-backref:hover,[data-md-color-accent=blue] .md-typeset .footnote li:target .footnote-backref,[data-md-color-accent=blue] .md-typeset .md-clipboard:active:before,[data-md-color-accent=blue] .md-typeset .md-clipboard:hover:before,[data-md-color-accent=blue] .md-typeset [id] .headerlink:focus,[data-md-color-accent=blue] .md-typeset [id]:hover .headerlink:hover,[data-md-color-accent=blue] .md-typeset [id]:target .headerlink{color:#448aff}[data-md-color-accent=blue] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#448aff}[data-md-color-accent=blue] .md-search-result__link:hover,[data-md-color-accent=blue] .md-search-result__link[data-md-state=active]{background-color:rgba(68,138,255,.1)}[data-md-color-accent=blue] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#448aff}[data-md-color-accent=blue] .md-source-file:hover:before{background-color:#448aff}button[data-md-color-accent=light-blue]{background-color:#0091ea}[data-md-color-accent=light-blue] .md-typeset a:active,[data-md-color-accent=light-blue] .md-typeset a:hover{color:#0091ea}[data-md-color-accent=light-blue] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover,[data-md-color-accent=light-blue] .md-typeset pre code::-webkit-scrollbar-thumb:hover{background-color:#0091ea}[data-md-color-accent=light-blue] .md-nav__link:focus,[data-md-color-accent=light-blue] .md-nav__link:hover,[data-md-color-accent=light-blue] .md-typeset .footnote li:hover .footnote-backref:hover,[data-md-color-accent=light-blue] .md-typeset .footnote li:target .footnote-backref,[data-md-color-accent=light-blue] .md-typeset .md-clipboard:active:before,[data-md-color-accent=light-blue] .md-typeset .md-clipboard:hover:before,[data-md-color-accent=light-blue] .md-typeset [id] .headerlink:focus,[data-md-color-accent=light-blue] .md-typeset [id]:hover .headerlink:hover,[data-md-color-accent=light-blue] .md-typeset [id]:target .headerlink{color:#0091ea}[data-md-color-accent=light-blue] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#0091ea}[data-md-color-accent=light-blue] .md-search-result__link:hover,[data-md-color-accent=light-blue] .md-search-result__link[data-md-state=active]{background-color:rgba(0,145,234,.1)}[data-md-color-accent=light-blue] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#0091ea}[data-md-color-accent=light-blue] .md-source-file:hover:before{background-color:#0091ea}button[data-md-color-accent=cyan]{background-color:#00b8d4}[data-md-color-accent=cyan] .md-typeset a:active,[data-md-color-accent=cyan] .md-typeset a:hover{color:#00b8d4}[data-md-color-accent=cyan] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover,[data-md-color-accent=cyan] .md-typeset pre code::-webkit-scrollbar-thumb:hover{background-color:#00b8d4}[data-md-color-accent=cyan] .md-nav__link:focus,[data-md-color-accent=cyan] .md-nav__link:hover,[data-md-color-accent=cyan] .md-typeset .footnote li:hover .footnote-backref:hover,[data-md-color-accent=cyan] .md-typeset .footnote li:target .footnote-backref,[data-md-color-accent=cyan] .md-typeset .md-clipboard:active:before,[data-md-color-accent=cyan] .md-typeset .md-clipboard:hover:before,[data-md-color-accent=cyan] .md-typeset [id] .headerlink:focus,[data-md-color-accent=cyan] .md-typeset [id]:hover .headerlink:hover,[data-md-color-accent=cyan] .md-typeset [id]:target .headerlink{color:#00b8d4}[data-md-color-accent=cyan] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#00b8d4}[data-md-color-accent=cyan] .md-search-result__link:hover,[data-md-color-accent=cyan] .md-search-result__link[data-md-state=active]{background-color:rgba(0,184,212,.1)}[data-md-color-accent=cyan] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#00b8d4}[data-md-color-accent=cyan] .md-source-file:hover:before{background-color:#00b8d4}button[data-md-color-accent=teal]{background-color:#00bfa5}[data-md-color-accent=teal] .md-typeset a:active,[data-md-color-accent=teal] .md-typeset a:hover{color:#00bfa5}[data-md-color-accent=teal] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover,[data-md-color-accent=teal] .md-typeset pre code::-webkit-scrollbar-thumb:hover{background-color:#00bfa5}[data-md-color-accent=teal] .md-nav__link:focus,[data-md-color-accent=teal] .md-nav__link:hover,[data-md-color-accent=teal] .md-typeset .footnote li:hover .footnote-backref:hover,[data-md-color-accent=teal] .md-typeset .footnote li:target .footnote-backref,[data-md-color-accent=teal] .md-typeset .md-clipboard:active:before,[data-md-color-accent=teal] .md-typeset .md-clipboard:hover:before,[data-md-color-accent=teal] .md-typeset [id] .headerlink:focus,[data-md-color-accent=teal] .md-typeset [id]:hover .headerlink:hover,[data-md-color-accent=teal] .md-typeset [id]:target .headerlink{color:#00bfa5}[data-md-color-accent=teal] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#00bfa5}[data-md-color-accent=teal] .md-search-result__link:hover,[data-md-color-accent=teal] .md-search-result__link[data-md-state=active]{background-color:rgba(0,191,165,.1)}[data-md-color-accent=teal] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#00bfa5}[data-md-color-accent=teal] .md-source-file:hover:before{background-color:#00bfa5}button[data-md-color-accent=green]{background-color:#00c853}[data-md-color-accent=green] .md-typeset a:active,[data-md-color-accent=green] .md-typeset a:hover{color:#00c853}[data-md-color-accent=green] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover,[data-md-color-accent=green] .md-typeset pre code::-webkit-scrollbar-thumb:hover{background-color:#00c853}[data-md-color-accent=green] .md-nav__link:focus,[data-md-color-accent=green] .md-nav__link:hover,[data-md-color-accent=green] .md-typeset .footnote li:hover .footnote-backref:hover,[data-md-color-accent=green] .md-typeset .footnote li:target .footnote-backref,[data-md-color-accent=green] .md-typeset .md-clipboard:active:before,[data-md-color-accent=green] .md-typeset .md-clipboard:hover:before,[data-md-color-accent=green] .md-typeset [id] .headerlink:focus,[data-md-color-accent=green] .md-typeset [id]:hover .headerlink:hover,[data-md-color-accent=green] .md-typeset [id]:target .headerlink{color:#00c853}[data-md-color-accent=green] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#00c853}[data-md-color-accent=green] .md-search-result__link:hover,[data-md-color-accent=green] .md-search-result__link[data-md-state=active]{background-color:rgba(0,200,83,.1)}[data-md-color-accent=green] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#00c853}[data-md-color-accent=green] .md-source-file:hover:before{background-color:#00c853}button[data-md-color-accent=light-green]{background-color:#64dd17}[data-md-color-accent=light-green] .md-typeset a:active,[data-md-color-accent=light-green] .md-typeset a:hover{color:#64dd17}[data-md-color-accent=light-green] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover,[data-md-color-accent=light-green] .md-typeset pre code::-webkit-scrollbar-thumb:hover{background-color:#64dd17}[data-md-color-accent=light-green] .md-nav__link:focus,[data-md-color-accent=light-green] .md-nav__link:hover,[data-md-color-accent=light-green] .md-typeset .footnote li:hover .footnote-backref:hover,[data-md-color-accent=light-green] .md-typeset .footnote li:target .footnote-backref,[data-md-color-accent=light-green] .md-typeset .md-clipboard:active:before,[data-md-color-accent=light-green] .md-typeset .md-clipboard:hover:before,[data-md-color-accent=light-green] .md-typeset [id] .headerlink:focus,[data-md-color-accent=light-green] .md-typeset [id]:hover .headerlink:hover,[data-md-color-accent=light-green] .md-typeset [id]:target .headerlink{color:#64dd17}[data-md-color-accent=light-green] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#64dd17}[data-md-color-accent=light-green] .md-search-result__link:hover,[data-md-color-accent=light-green] .md-search-result__link[data-md-state=active]{background-color:rgba(100,221,23,.1)}[data-md-color-accent=light-green] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#64dd17}[data-md-color-accent=light-green] .md-source-file:hover:before{background-color:#64dd17}button[data-md-color-accent=lime]{background-color:#aeea00}[data-md-color-accent=lime] .md-typeset a:active,[data-md-color-accent=lime] .md-typeset a:hover{color:#aeea00}[data-md-color-accent=lime] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover,[data-md-color-accent=lime] .md-typeset pre code::-webkit-scrollbar-thumb:hover{background-color:#aeea00}[data-md-color-accent=lime] .md-nav__link:focus,[data-md-color-accent=lime] .md-nav__link:hover,[data-md-color-accent=lime] .md-typeset .footnote li:hover .footnote-backref:hover,[data-md-color-accent=lime] .md-typeset .footnote li:target .footnote-backref,[data-md-color-accent=lime] .md-typeset .md-clipboard:active:before,[data-md-color-accent=lime] .md-typeset .md-clipboard:hover:before,[data-md-color-accent=lime] .md-typeset [id] .headerlink:focus,[data-md-color-accent=lime] .md-typeset [id]:hover .headerlink:hover,[data-md-color-accent=lime] .md-typeset [id]:target .headerlink{color:#aeea00}[data-md-color-accent=lime] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#aeea00}[data-md-color-accent=lime] .md-search-result__link:hover,[data-md-color-accent=lime] .md-search-result__link[data-md-state=active]{background-color:rgba(174,234,0,.1)}[data-md-color-accent=lime] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#aeea00}[data-md-color-accent=lime] .md-source-file:hover:before{background-color:#aeea00}button[data-md-color-accent=yellow]{background-color:#ffd600}[data-md-color-accent=yellow] .md-typeset a:active,[data-md-color-accent=yellow] .md-typeset a:hover{color:#ffd600}[data-md-color-accent=yellow] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover,[data-md-color-accent=yellow] .md-typeset pre code::-webkit-scrollbar-thumb:hover{background-color:#ffd600}[data-md-color-accent=yellow] .md-nav__link:focus,[data-md-color-accent=yellow] .md-nav__link:hover,[data-md-color-accent=yellow] .md-typeset .footnote li:hover .footnote-backref:hover,[data-md-color-accent=yellow] .md-typeset .footnote li:target .footnote-backref,[data-md-color-accent=yellow] .md-typeset .md-clipboard:active:before,[data-md-color-accent=yellow] .md-typeset .md-clipboard:hover:before,[data-md-color-accent=yellow] .md-typeset [id] .headerlink:focus,[data-md-color-accent=yellow] .md-typeset [id]:hover .headerlink:hover,[data-md-color-accent=yellow] .md-typeset [id]:target .headerlink{color:#ffd600}[data-md-color-accent=yellow] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#ffd600}[data-md-color-accent=yellow] .md-search-result__link:hover,[data-md-color-accent=yellow] .md-search-result__link[data-md-state=active]{background-color:rgba(255,214,0,.1)}[data-md-color-accent=yellow] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#ffd600}[data-md-color-accent=yellow] .md-source-file:hover:before{background-color:#ffd600}button[data-md-color-accent=amber]{background-color:#ffab00}[data-md-color-accent=amber] .md-typeset a:active,[data-md-color-accent=amber] .md-typeset a:hover{color:#ffab00}[data-md-color-accent=amber] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover,[data-md-color-accent=amber] .md-typeset pre code::-webkit-scrollbar-thumb:hover{background-color:#ffab00}[data-md-color-accent=amber] .md-nav__link:focus,[data-md-color-accent=amber] .md-nav__link:hover,[data-md-color-accent=amber] .md-typeset .footnote li:hover .footnote-backref:hover,[data-md-color-accent=amber] .md-typeset .footnote li:target .footnote-backref,[data-md-color-accent=amber] .md-typeset .md-clipboard:active:before,[data-md-color-accent=amber] .md-typeset .md-clipboard:hover:before,[data-md-color-accent=amber] .md-typeset [id] .headerlink:focus,[data-md-color-accent=amber] .md-typeset [id]:hover .headerlink:hover,[data-md-color-accent=amber] .md-typeset [id]:target .headerlink{color:#ffab00}[data-md-color-accent=amber] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#ffab00}[data-md-color-accent=amber] .md-search-result__link:hover,[data-md-color-accent=amber] .md-search-result__link[data-md-state=active]{background-color:rgba(255,171,0,.1)}[data-md-color-accent=amber] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#ffab00}[data-md-color-accent=amber] .md-source-file:hover:before{background-color:#ffab00}button[data-md-color-accent=orange]{background-color:#ff9100}[data-md-color-accent=orange] .md-typeset a:active,[data-md-color-accent=orange] .md-typeset a:hover{color:#ff9100}[data-md-color-accent=orange] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover,[data-md-color-accent=orange] .md-typeset pre code::-webkit-scrollbar-thumb:hover{background-color:#ff9100}[data-md-color-accent=orange] .md-nav__link:focus,[data-md-color-accent=orange] .md-nav__link:hover,[data-md-color-accent=orange] .md-typeset .footnote li:hover .footnote-backref:hover,[data-md-color-accent=orange] .md-typeset .footnote li:target .footnote-backref,[data-md-color-accent=orange] .md-typeset .md-clipboard:active:before,[data-md-color-accent=orange] .md-typeset .md-clipboard:hover:before,[data-md-color-accent=orange] .md-typeset [id] .headerlink:focus,[data-md-color-accent=orange] .md-typeset [id]:hover .headerlink:hover,[data-md-color-accent=orange] .md-typeset [id]:target .headerlink{color:#ff9100}[data-md-color-accent=orange] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#ff9100}[data-md-color-accent=orange] .md-search-result__link:hover,[data-md-color-accent=orange] .md-search-result__link[data-md-state=active]{background-color:rgba(255,145,0,.1)}[data-md-color-accent=orange] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#ff9100}[data-md-color-accent=orange] .md-source-file:hover:before{background-color:#ff9100}button[data-md-color-accent=deep-orange]{background-color:#ff6e40}[data-md-color-accent=deep-orange] .md-typeset a:active,[data-md-color-accent=deep-orange] .md-typeset a:hover{color:#ff6e40}[data-md-color-accent=deep-orange] .md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover,[data-md-color-accent=deep-orange] .md-typeset pre code::-webkit-scrollbar-thumb:hover{background-color:#ff6e40}[data-md-color-accent=deep-orange] .md-nav__link:focus,[data-md-color-accent=deep-orange] .md-nav__link:hover,[data-md-color-accent=deep-orange] .md-typeset .footnote li:hover .footnote-backref:hover,[data-md-color-accent=deep-orange] .md-typeset .footnote li:target .footnote-backref,[data-md-color-accent=deep-orange] .md-typeset .md-clipboard:active:before,[data-md-color-accent=deep-orange] .md-typeset .md-clipboard:hover:before,[data-md-color-accent=deep-orange] .md-typeset [id] .headerlink:focus,[data-md-color-accent=deep-orange] .md-typeset [id]:hover .headerlink:hover,[data-md-color-accent=deep-orange] .md-typeset [id]:target .headerlink{color:#ff6e40}[data-md-color-accent=deep-orange] .md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#ff6e40}[data-md-color-accent=deep-orange] .md-search-result__link:hover,[data-md-color-accent=deep-orange] .md-search-result__link[data-md-state=active]{background-color:rgba(255,110,64,.1)}[data-md-color-accent=deep-orange] .md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#ff6e40}[data-md-color-accent=deep-orange] .md-source-file:hover:before{background-color:#ff6e40}@media only screen and (max-width:59.9375em){[data-md-color-primary=red] .md-nav__source{background-color:rgba(190,66,64,.9675)}[data-md-color-primary=pink] .md-nav__source{background-color:rgba(185,24,79,.9675)}[data-md-color-primary=purple] .md-nav__source{background-color:rgba(136,57,150,.9675)}[data-md-color-primary=deep-purple] .md-nav__source{background-color:rgba(100,69,154,.9675)}[data-md-color-primary=indigo] .md-nav__source{background-color:rgba(50,64,144,.9675)}[data-md-color-primary=blue] .md-nav__source{background-color:rgba(26,119,193,.9675)}[data-md-color-primary=light-blue] .md-nav__source{background-color:rgba(2,134,194,.9675)}[data-md-color-primary=cyan] .md-nav__source{background-color:rgba(0,150,169,.9675)}[data-md-color-primary=teal] .md-nav__source{background-color:rgba(0,119,108,.9675)}[data-md-color-primary=green] .md-nav__source{background-color:rgba(60,139,64,.9675)}[data-md-color-primary=light-green] .md-nav__source{background-color:rgba(99,142,53,.9675)}[data-md-color-primary=lime] .md-nav__source{background-color:rgba(153,161,41,.9675)}[data-md-color-primary=yellow] .md-nav__source{background-color:rgba(198,134,29,.9675)}[data-md-color-primary=amber] .md-nav__source{background-color:rgba(203,127,0,.9675)}[data-md-color-primary=orange] .md-nav__source{background-color:rgba(200,111,0,.9675)}[data-md-color-primary=deep-orange] .md-nav__source{background-color:rgba(203,89,53,.9675)}[data-md-color-primary=brown] .md-nav__source{background-color:rgba(96,68,57,.9675)}[data-md-color-primary=grey] .md-nav__source{background-color:rgba(93,93,93,.9675)}[data-md-color-primary=blue-grey] .md-nav__source{background-color:rgba(67,88,97,.9675)}[data-md-color-primary=white] .md-nav__source{background-color:rgba(0,0,0,.07);color:rgba(0,0,0,.87)}[data-md-color-primary=black] .md-nav__source{background-color:#404040}}@media only screen and (max-width:76.1875em){html [data-md-color-primary=red] .md-nav--primary .md-nav__title--site{background-color:#ef5350}html [data-md-color-primary=pink] .md-nav--primary .md-nav__title--site{background-color:#e91e63}html [data-md-color-primary=purple] .md-nav--primary .md-nav__title--site{background-color:#ab47bc}html [data-md-color-primary=deep-purple] .md-nav--primary .md-nav__title--site{background-color:#7e57c2}html [data-md-color-primary=indigo] .md-nav--primary .md-nav__title--site{background-color:#3f51b5}html [data-md-color-primary=blue] .md-nav--primary .md-nav__title--site{background-color:#2196f3}html [data-md-color-primary=light-blue] .md-nav--primary .md-nav__title--site{background-color:#03a9f4}html [data-md-color-primary=cyan] .md-nav--primary .md-nav__title--site{background-color:#00bcd4}html [data-md-color-primary=teal] .md-nav--primary .md-nav__title--site{background-color:#009688}html [data-md-color-primary=green] .md-nav--primary .md-nav__title--site{background-color:#4caf50}html [data-md-color-primary=light-green] .md-nav--primary .md-nav__title--site{background-color:#7cb342}html [data-md-color-primary=lime] .md-nav--primary .md-nav__title--site{background-color:#c0ca33}html [data-md-color-primary=yellow] .md-nav--primary .md-nav__title--site{background-color:#f9a825}html [data-md-color-primary=amber] .md-nav--primary .md-nav__title--site{background-color:#ffa000}html [data-md-color-primary=orange] .md-nav--primary .md-nav__title--site{background-color:#fb8c00}html [data-md-color-primary=deep-orange] .md-nav--primary .md-nav__title--site{background-color:#ff7043}html [data-md-color-primary=brown] .md-nav--primary .md-nav__title--site{background-color:#795548}html [data-md-color-primary=grey] .md-nav--primary .md-nav__title--site{background-color:#757575}html [data-md-color-primary=blue-grey] .md-nav--primary .md-nav__title--site{background-color:#546e7a}html [data-md-color-primary=white] .md-nav--primary .md-nav__title--site{background-color:#fff;color:rgba(0,0,0,.87)}[data-md-color-primary=white] .md-hero{border-bottom:.05rem solid rgba(0,0,0,.07)}html [data-md-color-primary=black] .md-nav--primary .md-nav__title--site{background-color:#000}}@media only screen and (min-width:76.25em){[data-md-color-primary=red] .md-tabs{background-color:#ef5350}[data-md-color-primary=pink] .md-tabs{background-color:#e91e63}[data-md-color-primary=purple] .md-tabs{background-color:#ab47bc}[data-md-color-primary=deep-purple] .md-tabs{background-color:#7e57c2}[data-md-color-primary=indigo] .md-tabs{background-color:#3f51b5}[data-md-color-primary=blue] .md-tabs{background-color:#2196f3}[data-md-color-primary=light-blue] .md-tabs{background-color:#03a9f4}[data-md-color-primary=cyan] .md-tabs{background-color:#00bcd4}[data-md-color-primary=teal] .md-tabs{background-color:#009688}[data-md-color-primary=green] .md-tabs{background-color:#4caf50}[data-md-color-primary=light-green] .md-tabs{background-color:#7cb342}[data-md-color-primary=lime] .md-tabs{background-color:#c0ca33}[data-md-color-primary=yellow] .md-tabs{background-color:#f9a825}[data-md-color-primary=amber] .md-tabs{background-color:#ffa000}[data-md-color-primary=orange] .md-tabs{background-color:#fb8c00}[data-md-color-primary=deep-orange] .md-tabs{background-color:#ff7043}[data-md-color-primary=brown] .md-tabs{background-color:#795548}[data-md-color-primary=grey] .md-tabs{background-color:#757575}[data-md-color-primary=blue-grey] .md-tabs{background-color:#546e7a}[data-md-color-primary=white] .md-tabs{border-bottom:.05rem solid rgba(0,0,0,.07);background-color:#fff;color:rgba(0,0,0,.87)}[data-md-color-primary=black] .md-tabs{background-color:#000}}@media only screen and (min-width:60em){[data-md-color-primary=white] .md-search__input{background-color:rgba(0,0,0,.07)}[data-md-color-primary=white] .md-search__input::-webkit-input-placeholder{color:rgba(0,0,0,.54)}[data-md-color-primary=white] .md-search__input::-moz-placeholder{color:rgba(0,0,0,.54)}[data-md-color-primary=white] .md-search__input:-ms-input-placeholder{color:rgba(0,0,0,.54)}[data-md-color-primary=white] .md-search__input::-ms-input-placeholder{color:rgba(0,0,0,.54)}[data-md-color-primary=white] .md-search__input::placeholder{color:rgba(0,0,0,.54)}[data-md-color-primary=black] .md-search__input{background-color:hsla(0,0%,100%,.3)}} \ No newline at end of file diff --git a/public/docs/assets/stylesheets/application.30686662.css b/public/docs/assets/stylesheets/application.30686662.css new file mode 100644 index 0000000..77e8a7e --- /dev/null +++ b/public/docs/assets/stylesheets/application.30686662.css @@ -0,0 +1 @@ +html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;-ms-text-size-adjust:none;text-size-adjust:none}body{margin:0}hr{overflow:visible;box-sizing:content-box}a{-webkit-text-decoration-skip:objects}a,button,input,label{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}small,sub,sup{font-size:80%}sub,sup{position:relative;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}table{border-collapse:separate;border-spacing:0}td,th{font-weight:400;vertical-align:top}button{margin:0;padding:0;border:0;outline-style:none;background:transparent;font-size:inherit}input{border:0;outline:0}.md-clipboard:before,.md-icon,.md-nav__button,.md-nav__link:after,.md-nav__title:before,.md-search-result__article--document:before,.md-source-file:before,.md-typeset .admonition>.admonition-title:before,.md-typeset .admonition>summary:before,.md-typeset .critic.comment:before,.md-typeset .footnote-backref,.md-typeset .task-list-control .task-list-indicator:before,.md-typeset details>.admonition-title:before,.md-typeset details>summary:before,.md-typeset summary:after{font-family:Material Icons;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none;white-space:nowrap;speak:none;word-wrap:normal;direction:ltr}.md-content__icon,.md-footer-nav__button,.md-header-nav__button,.md-nav__button,.md-nav__title:before,.md-search-result__article--document:before{display:inline-block;margin:.2rem;padding:.4rem;font-size:1.2rem;cursor:pointer}.md-icon--arrow-back:before{content:""}.md-icon--arrow-forward:before{content:""}.md-icon--menu:before{content:""}.md-icon--search:before{content:""}[dir=rtl] .md-icon--arrow-back:before{content:""}[dir=rtl] .md-icon--arrow-forward:before{content:""}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body,input{color:rgba(0,0,0,.87);-webkit-font-feature-settings:"kern","liga";font-feature-settings:"kern","liga";font-family:Helvetica Neue,Helvetica,Arial,sans-serif}code,kbd,pre{color:rgba(0,0,0,.87);-webkit-font-feature-settings:"kern";font-feature-settings:"kern";font-family:Courier New,Courier,monospace}.md-typeset{font-size:.8rem;line-height:1.6;-webkit-print-color-adjust:exact}.md-typeset blockquote,.md-typeset ol,.md-typeset p,.md-typeset ul{margin:1em 0}.md-typeset h1{margin:0 0 2rem;color:rgba(0,0,0,.54);font-size:1.5625rem;line-height:1.3}.md-typeset h1,.md-typeset h2{font-weight:300;letter-spacing:-.01em}.md-typeset h2{margin:2rem 0 .8rem;font-size:1.25rem;line-height:1.4}.md-typeset h3{margin:1.6rem 0 .8rem;font-size:1rem;font-weight:400;letter-spacing:-.01em;line-height:1.5}.md-typeset h2+h3{margin-top:.8rem}.md-typeset h4{font-size:.8rem}.md-typeset h4,.md-typeset h5,.md-typeset h6{margin:.8rem 0;font-weight:700;letter-spacing:-.01em}.md-typeset h5,.md-typeset h6{color:rgba(0,0,0,.54);font-size:.64rem}.md-typeset h5{text-transform:uppercase}.md-typeset hr{margin:1.5em 0;border-bottom:.05rem dotted rgba(0,0,0,.26)}.md-typeset a{color:#3f51b5;word-break:break-word}.md-typeset a,.md-typeset a:before{-webkit-transition:color .125s;transition:color .125s}.md-typeset a:active,.md-typeset a:hover{color:#536dfe}.md-typeset code,.md-typeset pre{background-color:hsla(0,0%,92.5%,.5);color:#37474f;font-size:85%;direction:ltr}.md-typeset code{margin:0 .29412em;padding:.07353em 0;border-radius:.1rem;box-shadow:.29412em 0 0 hsla(0,0%,92.5%,.5),-.29412em 0 0 hsla(0,0%,92.5%,.5);word-break:break-word;-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset h1 code,.md-typeset h2 code,.md-typeset h3 code,.md-typeset h4 code,.md-typeset h5 code,.md-typeset h6 code{margin:0;background-color:transparent;box-shadow:none}.md-typeset a>code{margin:inherit;padding:inherit;border-radius:initial;background-color:inherit;color:inherit;box-shadow:none}.md-typeset pre{position:relative;margin:1em 0;border-radius:.1rem;line-height:1.4;-webkit-overflow-scrolling:touch}.md-typeset pre>code{display:block;margin:0;padding:.525rem .6rem;background-color:transparent;font-size:inherit;box-shadow:none;-webkit-box-decoration-break:slice;box-decoration-break:slice;overflow:auto}.md-typeset pre>code::-webkit-scrollbar{width:.2rem;height:.2rem}.md-typeset pre>code::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.26)}.md-typeset pre>code::-webkit-scrollbar-thumb:hover{background-color:#536dfe}.md-typeset kbd{padding:0 .29412em;border-radius:.15rem;border:.05rem solid #c9c9c9;border-bottom-color:#bcbcbc;background-color:#fcfcfc;color:#555;font-size:85%;box-shadow:0 .05rem 0 #b0b0b0;word-break:break-word}.md-typeset mark{margin:0 .25em;padding:.0625em 0;border-radius:.1rem;background-color:rgba(255,235,59,.5);box-shadow:.25em 0 0 rgba(255,235,59,.5),-.25em 0 0 rgba(255,235,59,.5);word-break:break-word;-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset abbr{border-bottom:.05rem dotted rgba(0,0,0,.54);text-decoration:none;cursor:help}.md-typeset small{opacity:.75}.md-typeset sub,.md-typeset sup{margin-left:.07812em}[dir=rtl] .md-typeset sub,[dir=rtl] .md-typeset sup{margin-right:.07812em;margin-left:0}.md-typeset blockquote{padding-left:.6rem;border-left:.2rem solid rgba(0,0,0,.26);color:rgba(0,0,0,.54)}[dir=rtl] .md-typeset blockquote{padding-right:.6rem;padding-left:0;border-right:.2rem solid rgba(0,0,0,.26);border-left:initial}.md-typeset ul{list-style-type:disc}.md-typeset ol,.md-typeset ul{margin-left:.625em;padding:0}[dir=rtl] .md-typeset ol,[dir=rtl] .md-typeset ul{margin-right:.625em;margin-left:0}.md-typeset ol ol,.md-typeset ul ol{list-style-type:lower-alpha}.md-typeset ol ol ol,.md-typeset ul ol ol{list-style-type:lower-roman}.md-typeset ol li,.md-typeset ul li{margin-bottom:.5em;margin-left:1.25em}[dir=rtl] .md-typeset ol li,[dir=rtl] .md-typeset ul li{margin-right:1.25em;margin-left:0}.md-typeset ol li blockquote,.md-typeset ol li p,.md-typeset ul li blockquote,.md-typeset ul li p{margin:.5em 0}.md-typeset ol li:last-child,.md-typeset ul li:last-child{margin-bottom:0}.md-typeset ol li ol,.md-typeset ol li ul,.md-typeset ul li ol,.md-typeset ul li ul{margin:.5em 0 .5em .625em}[dir=rtl] .md-typeset ol li ol,[dir=rtl] .md-typeset ol li ul,[dir=rtl] .md-typeset ul li ol,[dir=rtl] .md-typeset ul li ul{margin-right:.625em;margin-left:0}.md-typeset dd{margin:1em 0 1em 1.875em}[dir=rtl] .md-typeset dd{margin-right:1.875em;margin-left:0}.md-typeset iframe,.md-typeset img,.md-typeset svg{max-width:100%}.md-typeset table:not([class]){box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2);display:inline-block;max-width:100%;border-radius:.1rem;font-size:.64rem;overflow:auto;-webkit-overflow-scrolling:touch}.md-typeset table:not([class])+*{margin-top:1.5em}.md-typeset table:not([class]) td:not([align]),.md-typeset table:not([class]) th:not([align]){text-align:left}[dir=rtl] .md-typeset table:not([class]) td:not([align]),[dir=rtl] .md-typeset table:not([class]) th:not([align]){text-align:right}.md-typeset table:not([class]) th{min-width:5rem;padding:.6rem .8rem;background-color:rgba(0,0,0,.54);color:#fff;vertical-align:top}.md-typeset table:not([class]) td{padding:.6rem .8rem;border-top:.05rem solid rgba(0,0,0,.07);vertical-align:top}.md-typeset table:not([class]) tr{-webkit-transition:background-color .125s;transition:background-color .125s}.md-typeset table:not([class]) tr:hover{background-color:rgba(0,0,0,.035);box-shadow:inset 0 .05rem 0 #fff}.md-typeset table:not([class]) tr:first-child td{border-top:0}.md-typeset table:not([class]) a{word-break:normal}.md-typeset__scrollwrap{margin:1em -.8rem;overflow-x:auto;-webkit-overflow-scrolling:touch}.md-typeset .md-typeset__table{display:inline-block;margin-bottom:.5em;padding:0 .8rem}.md-typeset .md-typeset__table table{display:table;width:100%;margin:0;overflow:hidden}html{font-size:125%;overflow-x:hidden}body,html{height:100%}body{position:relative;font-size:.5rem}hr{display:block;height:.05rem;padding:0;border:0}.md-svg{display:none}.md-grid{max-width:61rem;margin-right:auto;margin-left:auto}.md-container,.md-main{overflow:auto}.md-container{display:table;width:100%;height:100%;padding-top:2.4rem;table-layout:fixed}.md-main{display:table-row;height:100%}.md-main__inner{height:100%;padding-top:1.5rem;padding-bottom:.05rem}.md-toggle{display:none}.md-overlay{position:fixed;top:0;width:0;height:0;-webkit-transition:width 0s .25s,height 0s .25s,opacity .25s;transition:width 0s .25s,height 0s .25s,opacity .25s;background-color:rgba(0,0,0,.54);opacity:0;z-index:3}.md-flex{display:table}.md-flex__cell{display:table-cell;position:relative;vertical-align:top}.md-flex__cell--shrink{width:0}.md-flex__cell--stretch{display:table;width:100%;table-layout:fixed}.md-flex__ellipsis{display:table-cell;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.md-skip{position:fixed;width:.05rem;height:.05rem;margin:.5rem;padding:.3rem .5rem;-webkit-transform:translateY(.4rem);transform:translateY(.4rem);border-radius:.1rem;background-color:rgba(0,0,0,.87);color:#fff;font-size:.64rem;opacity:0;overflow:hidden}.md-skip:focus{width:auto;height:auto;clip:auto;-webkit-transform:translateX(0);transform:translateX(0);-webkit-transition:opacity .175s 75ms,-webkit-transform .25s cubic-bezier(.4,0,.2,1);transition:opacity .175s 75ms,-webkit-transform .25s cubic-bezier(.4,0,.2,1);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .175s 75ms;transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .175s 75ms,-webkit-transform .25s cubic-bezier(.4,0,.2,1);opacity:1;z-index:10}@page{margin:25mm}.md-clipboard{position:absolute;top:.3rem;right:.3rem;width:1.4rem;height:1.4rem;border-radius:.1rem;font-size:.8rem;cursor:pointer;z-index:1;-webkit-backface-visibility:hidden;backface-visibility:hidden}.md-clipboard:before{-webkit-transition:color .25s,opacity .25s;transition:color .25s,opacity .25s;color:rgba(0,0,0,.07);content:"\E14D"}.codehilite:hover .md-clipboard:before,.md-typeset .highlight:hover .md-clipboard:before,pre:hover .md-clipboard:before{color:rgba(0,0,0,.54)}.md-clipboard:focus:before,.md-clipboard:hover:before{color:#536dfe}.md-clipboard__message{display:block;position:absolute;top:0;right:1.7rem;padding:.3rem .5rem;-webkit-transform:translateX(.4rem);transform:translateX(.4rem);-webkit-transition:opacity .175s,-webkit-transform .25s cubic-bezier(.9,.1,.9,0);transition:opacity .175s,-webkit-transform .25s cubic-bezier(.9,.1,.9,0);transition:transform .25s cubic-bezier(.9,.1,.9,0),opacity .175s;transition:transform .25s cubic-bezier(.9,.1,.9,0),opacity .175s,-webkit-transform .25s cubic-bezier(.9,.1,.9,0);border-radius:.1rem;background-color:rgba(0,0,0,.54);color:#fff;font-size:.64rem;white-space:nowrap;opacity:0;pointer-events:none}.md-clipboard__message--active{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transition:opacity .175s 75ms,-webkit-transform .25s cubic-bezier(.4,0,.2,1);transition:opacity .175s 75ms,-webkit-transform .25s cubic-bezier(.4,0,.2,1);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .175s 75ms;transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .175s 75ms,-webkit-transform .25s cubic-bezier(.4,0,.2,1);opacity:1;pointer-events:auto}.md-clipboard__message:before{content:attr(aria-label)}.md-clipboard__message:after{display:block;position:absolute;top:50%;right:-.2rem;width:0;margin-top:-.2rem;border-color:transparent rgba(0,0,0,.54);border-style:solid;border-width:.2rem 0 .2rem .2rem;content:""}.md-content__inner{margin:0 .8rem 1.2rem;padding-top:.6rem}.md-content__inner:before{display:block;height:.4rem;content:""}.md-content__inner>:last-child{margin-bottom:0}.md-content__icon{position:relative;margin:.4rem 0;padding:0;float:right}.md-typeset .md-content__icon{color:rgba(0,0,0,.26)}.md-header{position:fixed;top:0;right:0;left:0;height:2.4rem;-webkit-transition:background-color .25s,color .25s;transition:background-color .25s,color .25s;background-color:#3f51b5;color:#fff;box-shadow:none;z-index:2;-webkit-backface-visibility:hidden;backface-visibility:hidden}.no-js .md-header{-webkit-transition:none;transition:none;box-shadow:none}.md-header[data-md-state=shadow]{-webkit-transition:background-color .25s,color .25s,box-shadow .25s;transition:background-color .25s,color .25s,box-shadow .25s;box-shadow:0 0 .2rem rgba(0,0,0,.1),0 .2rem .4rem rgba(0,0,0,.2)}.md-header-nav{padding:0 .2rem}.md-header-nav__button{position:relative;-webkit-transition:opacity .25s;transition:opacity .25s;z-index:1}.md-header-nav__button:hover{opacity:.7}.md-header-nav__button.md-logo *{display:block}.no-js .md-header-nav__button.md-icon--search{display:none}.md-header-nav__topic{display:block;position:absolute;-webkit-transition:opacity .15s,-webkit-transform .4s cubic-bezier(.1,.7,.1,1);transition:opacity .15s,-webkit-transform .4s cubic-bezier(.1,.7,.1,1);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s,-webkit-transform .4s cubic-bezier(.1,.7,.1,1);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.md-header-nav__topic+.md-header-nav__topic{-webkit-transform:translateX(1.25rem);transform:translateX(1.25rem);-webkit-transition:opacity .15s,-webkit-transform .4s cubic-bezier(1,.7,.1,.1);transition:opacity .15s,-webkit-transform .4s cubic-bezier(1,.7,.1,.1);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s,-webkit-transform .4s cubic-bezier(1,.7,.1,.1);opacity:0;z-index:-1;pointer-events:none}[dir=rtl] .md-header-nav__topic+.md-header-nav__topic{-webkit-transform:translateX(-1.25rem);transform:translateX(-1.25rem)}.no-js .md-header-nav__topic{position:static}.no-js .md-header-nav__topic+.md-header-nav__topic{display:none}.md-header-nav__title{padding:0 1rem;font-size:.9rem;line-height:2.4rem}.md-header-nav__title[data-md-state=active] .md-header-nav__topic{-webkit-transform:translateX(-1.25rem);transform:translateX(-1.25rem);-webkit-transition:opacity .15s,-webkit-transform .4s cubic-bezier(1,.7,.1,.1);transition:opacity .15s,-webkit-transform .4s cubic-bezier(1,.7,.1,.1);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s,-webkit-transform .4s cubic-bezier(1,.7,.1,.1);opacity:0;z-index:-1;pointer-events:none}[dir=rtl] .md-header-nav__title[data-md-state=active] .md-header-nav__topic{-webkit-transform:translateX(1.25rem);transform:translateX(1.25rem)}.md-header-nav__title[data-md-state=active] .md-header-nav__topic+.md-header-nav__topic{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transition:opacity .15s,-webkit-transform .4s cubic-bezier(.1,.7,.1,1);transition:opacity .15s,-webkit-transform .4s cubic-bezier(.1,.7,.1,1);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s,-webkit-transform .4s cubic-bezier(.1,.7,.1,1);opacity:1;z-index:0;pointer-events:auto}.md-header-nav__source{display:none}.md-hero{-webkit-transition:background .25s;transition:background .25s;background-color:#3f51b5;color:#fff;font-size:1rem;overflow:hidden}.md-hero__inner{margin-top:1rem;padding:.8rem .8rem .4rem;-webkit-transition:opacity .25s,-webkit-transform .4s cubic-bezier(.1,.7,.1,1);transition:opacity .25s,-webkit-transform .4s cubic-bezier(.1,.7,.1,1);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .25s;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .25s,-webkit-transform .4s cubic-bezier(.1,.7,.1,1);-webkit-transition-delay:.1s;transition-delay:.1s}[data-md-state=hidden] .md-hero__inner{pointer-events:none;-webkit-transform:translateY(.625rem);transform:translateY(.625rem);-webkit-transition:opacity .1s 0s,-webkit-transform 0s .4s;transition:opacity .1s 0s,-webkit-transform 0s .4s;transition:transform 0s .4s,opacity .1s 0s;transition:transform 0s .4s,opacity .1s 0s,-webkit-transform 0s .4s;opacity:0}.md-hero--expand .md-hero__inner{margin-bottom:1.2rem}.md-footer-nav{background-color:rgba(0,0,0,.87);color:#fff}.md-footer-nav__inner{padding:.2rem;overflow:auto}.md-footer-nav__link{padding-top:1.4rem;padding-bottom:.4rem;-webkit-transition:opacity .25s;transition:opacity .25s}.md-footer-nav__link:hover{opacity:.7}.md-footer-nav__link--prev{width:25%;float:left}[dir=rtl] .md-footer-nav__link--prev{float:right}.md-footer-nav__link--next{width:75%;float:right;text-align:right}[dir=rtl] .md-footer-nav__link--next{float:left;text-align:left}.md-footer-nav__button{-webkit-transition:background .25s;transition:background .25s}.md-footer-nav__title{position:relative;padding:0 1rem;font-size:.9rem;line-height:2.4rem}.md-footer-nav__direction{position:absolute;right:0;left:0;margin-top:-1rem;padding:0 1rem;color:hsla(0,0%,100%,.7);font-size:.75rem}.md-footer-meta{background-color:rgba(0,0,0,.895)}.md-footer-meta__inner{padding:.2rem;overflow:auto}html .md-footer-meta.md-typeset a{color:hsla(0,0%,100%,.7)}html .md-footer-meta.md-typeset a:focus,html .md-footer-meta.md-typeset a:hover{color:#fff}.md-footer-copyright{margin:0 .6rem;padding:.4rem 0;color:hsla(0,0%,100%,.3);font-size:.64rem}.md-footer-copyright__highlight{color:hsla(0,0%,100%,.7)}.md-footer-social{margin:0 .4rem;padding:.2rem 0 .6rem}.md-footer-social__link{display:inline-block;width:1.6rem;height:1.6rem;font-size:.8rem;text-align:center}.md-footer-social__link:before{line-height:1.9}.md-nav{font-size:.7rem;line-height:1.3}.md-nav__title{display:block;padding:0 .6rem;font-weight:700;text-overflow:ellipsis;overflow:hidden}.md-nav__title:before{display:none;content:"\E5C4"}[dir=rtl] .md-nav__title:before{content:"\E5C8"}.md-nav__title .md-nav__button{display:none}.md-nav__list{margin:0;padding:0;list-style:none}.md-nav__item{padding:0 .6rem}.md-nav__item:last-child{padding-bottom:.6rem}.md-nav__item .md-nav__item{padding-right:0}[dir=rtl] .md-nav__item .md-nav__item{padding-right:.6rem;padding-left:0}.md-nav__item .md-nav__item:last-child{padding-bottom:0}.md-nav__button img{width:100%;height:auto}.md-nav__link{display:block;margin-top:.625em;-webkit-transition:color .125s;transition:color .125s;text-overflow:ellipsis;cursor:pointer;overflow:hidden}.md-nav__item--nested>.md-nav__link:after{content:"\E313"}html .md-nav__link[for=__toc],html .md-nav__link[for=__toc]+.md-nav__link:after,html .md-nav__link[for=__toc]~.md-nav{display:none}.md-nav__link[data-md-state=blur]{color:rgba(0,0,0,.54)}.md-nav__link--active,.md-nav__link:active{color:#3f51b5}.md-nav__item--nested>.md-nav__link{color:inherit}.md-nav__link:focus,.md-nav__link:hover{color:#536dfe}.md-nav__source,.no-js .md-search{display:none}.md-search__overlay{opacity:0;z-index:1}.md-search__form{position:relative}.md-search__input{position:relative;padding:0 2.2rem 0 3.6rem;text-overflow:ellipsis;z-index:2}[dir=rtl] .md-search__input{padding:0 3.6rem 0 2.2rem}.md-search__input::-webkit-input-placeholder{-webkit-transition:color .25s cubic-bezier(.1,.7,.1,1);transition:color .25s cubic-bezier(.1,.7,.1,1)}.md-search__input::-moz-placeholder{-webkit-transition:color .25s cubic-bezier(.1,.7,.1,1);transition:color .25s cubic-bezier(.1,.7,.1,1)}.md-search__input:-ms-input-placeholder{-webkit-transition:color .25s cubic-bezier(.1,.7,.1,1);transition:color .25s cubic-bezier(.1,.7,.1,1)}.md-search__input::-ms-input-placeholder{-webkit-transition:color .25s cubic-bezier(.1,.7,.1,1);transition:color .25s cubic-bezier(.1,.7,.1,1)}.md-search__input::placeholder{-webkit-transition:color .25s cubic-bezier(.1,.7,.1,1);transition:color .25s cubic-bezier(.1,.7,.1,1)}.md-search__input::-webkit-input-placeholder,.md-search__input~.md-search__icon{color:rgba(0,0,0,.54)}.md-search__input::-moz-placeholder,.md-search__input~.md-search__icon{color:rgba(0,0,0,.54)}.md-search__input:-ms-input-placeholder,.md-search__input~.md-search__icon{color:rgba(0,0,0,.54)}.md-search__input::-ms-input-placeholder,.md-search__input~.md-search__icon{color:rgba(0,0,0,.54)}.md-search__input::placeholder,.md-search__input~.md-search__icon{color:rgba(0,0,0,.54)}.md-search__input::-ms-clear{display:none}.md-search__icon{position:absolute;-webkit-transition:color .25s cubic-bezier(.1,.7,.1,1),opacity .25s;transition:color .25s cubic-bezier(.1,.7,.1,1),opacity .25s;font-size:1.2rem;cursor:pointer;z-index:2}.md-search__icon:hover{opacity:.7}.md-search__icon[for=__search]{top:.3rem;left:.5rem}[dir=rtl] .md-search__icon[for=__search]{right:.5rem;left:auto}.md-search__icon[for=__search]:before{content:"\E8B6"}.md-search__icon[type=reset]{top:.3rem;right:.5rem;-webkit-transform:scale(.125);transform:scale(.125);-webkit-transition:opacity .15s,-webkit-transform .15s cubic-bezier(.1,.7,.1,1);transition:opacity .15s,-webkit-transform .15s cubic-bezier(.1,.7,.1,1);transition:transform .15s cubic-bezier(.1,.7,.1,1),opacity .15s;transition:transform .15s cubic-bezier(.1,.7,.1,1),opacity .15s,-webkit-transform .15s cubic-bezier(.1,.7,.1,1);opacity:0}[dir=rtl] .md-search__icon[type=reset]{right:auto;left:.5rem}[data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__icon[type=reset]{-webkit-transform:scale(1);transform:scale(1);opacity:1}[data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__icon[type=reset]:hover{opacity:.7}.md-search__output{position:absolute;width:100%;border-radius:0 0 .1rem .1rem;overflow:hidden;z-index:1}.md-search__scrollwrap{height:100%;background-color:#fff;box-shadow:inset 0 .05rem 0 rgba(0,0,0,.07);overflow-y:auto;-webkit-overflow-scrolling:touch}.md-search-result{color:rgba(0,0,0,.87);word-break:break-word}.md-search-result__meta{padding:0 .8rem;background-color:rgba(0,0,0,.07);color:rgba(0,0,0,.54);font-size:.64rem;line-height:1.8rem}.md-search-result__list{margin:0;padding:0;border-top:.05rem solid rgba(0,0,0,.07);list-style:none}.md-search-result__item{box-shadow:0 -.05rem 0 rgba(0,0,0,.07)}.md-search-result__link{display:block;-webkit-transition:background .25s;transition:background .25s;outline:0;overflow:hidden}.md-search-result__link:hover,.md-search-result__link[data-md-state=active]{background-color:rgba(83,109,254,.1)}.md-search-result__link:hover .md-search-result__article:before,.md-search-result__link[data-md-state=active] .md-search-result__article:before{opacity:.7}.md-search-result__link:last-child .md-search-result__teaser{margin-bottom:.6rem}.md-search-result__article{position:relative;padding:0 .8rem;overflow:auto}.md-search-result__article--document:before{position:absolute;left:0;margin:.1rem;-webkit-transition:opacity .25s;transition:opacity .25s;color:rgba(0,0,0,.54);content:"\E880"}[dir=rtl] .md-search-result__article--document:before{right:0;left:auto}.md-search-result__article--document .md-search-result__title{margin:.55rem 0;font-size:.8rem;font-weight:400;line-height:1.4}.md-search-result__title{margin:.5em 0;font-size:.64rem;font-weight:700;line-height:1.4}.md-search-result__teaser{display:-webkit-box;max-height:1.65rem;margin:.5em 0;color:rgba(0,0,0,.54);font-size:.64rem;line-height:1.4;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.md-search-result em{font-style:normal;font-weight:700;text-decoration:underline}.md-sidebar{position:absolute;width:12.1rem;padding:1.2rem 0;overflow:hidden}.md-sidebar[data-md-state=lock]{position:fixed;top:2.4rem}.md-sidebar--secondary{display:none}.md-sidebar__scrollwrap{max-height:100%;margin:0 .2rem;overflow-y:auto;-webkit-backface-visibility:hidden;backface-visibility:hidden}.md-sidebar__scrollwrap::-webkit-scrollbar{width:.2rem;height:.2rem}.md-sidebar__scrollwrap::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.26)}.md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#536dfe}@-webkit-keyframes md-source__facts--done{0%{height:0}to{height:.65rem}}@keyframes md-source__facts--done{0%{height:0}to{height:.65rem}}@-webkit-keyframes md-source__fact--done{0%{-webkit-transform:translateY(100%);transform:translateY(100%);opacity:0}50%{opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}@keyframes md-source__fact--done{0%{-webkit-transform:translateY(100%);transform:translateY(100%);opacity:0}50%{opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}.md-source{display:block;padding-right:.6rem;-webkit-transition:opacity .25s;transition:opacity .25s;font-size:.65rem;line-height:1.2;white-space:nowrap}[dir=rtl] .md-source{padding-right:0;padding-left:.6rem}.md-source:hover{opacity:.7}.md-source:after,.md-source__icon{display:inline-block;height:2.4rem;content:"";vertical-align:middle}.md-source__icon{width:2.4rem}.md-source__icon svg{width:1.2rem;height:1.2rem;margin-top:.6rem;margin-left:.6rem}[dir=rtl] .md-source__icon svg{margin-right:.6rem;margin-left:0}.md-source__icon+.md-source__repository{margin-left:-2rem;padding-left:2rem}[dir=rtl] .md-source__icon+.md-source__repository{margin-right:-2rem;margin-left:0;padding-right:2rem;padding-left:0}.md-source__repository{display:inline-block;max-width:100%;margin-left:.6rem;font-weight:700;text-overflow:ellipsis;overflow:hidden;vertical-align:middle}.md-source__facts{margin:0;padding:0;font-size:.55rem;font-weight:700;list-style-type:none;opacity:.75;overflow:hidden}[data-md-state=done] .md-source__facts{-webkit-animation:md-source__facts--done .25s ease-in;animation:md-source__facts--done .25s ease-in}.md-source__fact{float:left}[dir=rtl] .md-source__fact{float:right}[data-md-state=done] .md-source__fact{-webkit-animation:md-source__fact--done .4s ease-out;animation:md-source__fact--done .4s ease-out}.md-source__fact:before{margin:0 .1rem;content:"\00B7"}.md-source__fact:first-child:before{display:none}.md-source-file{display:inline-block;margin:1em .5em 1em 0;padding-right:.25rem;border-radius:.1rem;background-color:rgba(0,0,0,.07);font-size:.64rem;list-style-type:none;cursor:pointer;overflow:hidden}.md-source-file:before{display:inline-block;margin-right:.25rem;padding:.25rem;background-color:rgba(0,0,0,.26);color:#fff;font-size:.8rem;content:"\E86F";vertical-align:middle}html .md-source-file{-webkit-transition:background .4s,color .4s,box-shadow .4s cubic-bezier(.4,0,.2,1);transition:background .4s,color .4s,box-shadow .4s cubic-bezier(.4,0,.2,1)}html .md-source-file:before{-webkit-transition:inherit;transition:inherit}html body .md-typeset .md-source-file{color:rgba(0,0,0,.54)}.md-source-file:hover{box-shadow:0 0 8px rgba(0,0,0,.18),0 8px 16px rgba(0,0,0,.36)}.md-source-file:hover:before{background-color:#536dfe}.md-tabs{width:100%;-webkit-transition:background .25s;transition:background .25s;background-color:#3f51b5;color:#fff;overflow:auto}.md-tabs__list{margin:0 0 0 .2rem;padding:0;list-style:none;white-space:nowrap}.md-tabs__item{display:inline-block;height:2.4rem;padding-right:.6rem;padding-left:.6rem}.md-tabs__link{display:block;margin-top:.8rem;-webkit-transition:opacity .25s,-webkit-transform .4s cubic-bezier(.1,.7,.1,1);transition:opacity .25s,-webkit-transform .4s cubic-bezier(.1,.7,.1,1);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .25s;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .25s,-webkit-transform .4s cubic-bezier(.1,.7,.1,1);font-size:.7rem;opacity:.7}.md-tabs__link--active,.md-tabs__link:hover{color:inherit;opacity:1}.md-tabs__item:nth-child(2) .md-tabs__link{-webkit-transition-delay:.02s;transition-delay:.02s}.md-tabs__item:nth-child(3) .md-tabs__link{-webkit-transition-delay:.04s;transition-delay:.04s}.md-tabs__item:nth-child(4) .md-tabs__link{-webkit-transition-delay:.06s;transition-delay:.06s}.md-tabs__item:nth-child(5) .md-tabs__link{-webkit-transition-delay:.08s;transition-delay:.08s}.md-tabs__item:nth-child(6) .md-tabs__link{-webkit-transition-delay:.1s;transition-delay:.1s}.md-tabs__item:nth-child(7) .md-tabs__link{-webkit-transition-delay:.12s;transition-delay:.12s}.md-tabs__item:nth-child(8) .md-tabs__link{-webkit-transition-delay:.14s;transition-delay:.14s}.md-tabs__item:nth-child(9) .md-tabs__link{-webkit-transition-delay:.16s;transition-delay:.16s}.md-tabs__item:nth-child(10) .md-tabs__link{-webkit-transition-delay:.18s;transition-delay:.18s}.md-tabs__item:nth-child(11) .md-tabs__link{-webkit-transition-delay:.2s;transition-delay:.2s}.md-tabs__item:nth-child(12) .md-tabs__link{-webkit-transition-delay:.22s;transition-delay:.22s}.md-tabs__item:nth-child(13) .md-tabs__link{-webkit-transition-delay:.24s;transition-delay:.24s}.md-tabs__item:nth-child(14) .md-tabs__link{-webkit-transition-delay:.26s;transition-delay:.26s}.md-tabs__item:nth-child(15) .md-tabs__link{-webkit-transition-delay:.28s;transition-delay:.28s}.md-tabs__item:nth-child(16) .md-tabs__link{-webkit-transition-delay:.3s;transition-delay:.3s}.md-tabs[data-md-state=hidden]{pointer-events:none}.md-tabs[data-md-state=hidden] .md-tabs__link{-webkit-transform:translateY(50%);transform:translateY(50%);-webkit-transition:color .25s,opacity .1s,-webkit-transform 0s .4s;transition:color .25s,opacity .1s,-webkit-transform 0s .4s;transition:color .25s,transform 0s .4s,opacity .1s;transition:color .25s,transform 0s .4s,opacity .1s,-webkit-transform 0s .4s;opacity:0}.md-typeset .admonition,.md-typeset details{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2);position:relative;margin:1.5625em 0;padding:0 .6rem;border-left:.2rem solid #448aff;border-radius:.1rem;font-size:.64rem;overflow:auto}[dir=rtl] .md-typeset .admonition,[dir=rtl] .md-typeset details{border-right:.2rem solid #448aff;border-left:none}html .md-typeset .admonition>:last-child,html .md-typeset details>:last-child{margin-bottom:.6rem}.md-typeset .admonition .admonition,.md-typeset .admonition details,.md-typeset details .admonition,.md-typeset details details{margin:1em 0}.md-typeset .admonition>.admonition-title,.md-typeset .admonition>summary,.md-typeset details>.admonition-title,.md-typeset details>summary{margin:0 -.6rem;padding:.4rem .6rem .4rem 2rem;border-bottom:.05rem solid rgba(68,138,255,.1);background-color:rgba(68,138,255,.1);font-weight:700}[dir=rtl] .md-typeset .admonition>.admonition-title,[dir=rtl] .md-typeset .admonition>summary,[dir=rtl] .md-typeset details>.admonition-title,[dir=rtl] .md-typeset details>summary{padding:.4rem 2rem .4rem .6rem}.md-typeset .admonition>.admonition-title:last-child,.md-typeset .admonition>summary:last-child,.md-typeset details>.admonition-title:last-child,.md-typeset details>summary:last-child{margin-bottom:0}.md-typeset .admonition>.admonition-title:before,.md-typeset .admonition>summary:before,.md-typeset details>.admonition-title:before,.md-typeset details>summary:before{position:absolute;left:.6rem;color:#448aff;font-size:1rem;content:"\E3C9"}[dir=rtl] .md-typeset .admonition>.admonition-title:before,[dir=rtl] .md-typeset .admonition>summary:before,[dir=rtl] .md-typeset details>.admonition-title:before,[dir=rtl] .md-typeset details>summary:before{right:.6rem;left:auto}.md-typeset .admonition.abstract,.md-typeset .admonition.summary,.md-typeset .admonition.tldr,.md-typeset details.abstract,.md-typeset details.summary,.md-typeset details.tldr{border-left-color:#00b0ff}[dir=rtl] .md-typeset .admonition.abstract,[dir=rtl] .md-typeset .admonition.summary,[dir=rtl] .md-typeset .admonition.tldr,[dir=rtl] .md-typeset details.abstract,[dir=rtl] .md-typeset details.summary,[dir=rtl] .md-typeset details.tldr{border-right-color:#00b0ff}.md-typeset .admonition.abstract>.admonition-title,.md-typeset .admonition.abstract>summary,.md-typeset .admonition.summary>.admonition-title,.md-typeset .admonition.summary>summary,.md-typeset .admonition.tldr>.admonition-title,.md-typeset .admonition.tldr>summary,.md-typeset details.abstract>.admonition-title,.md-typeset details.abstract>summary,.md-typeset details.summary>.admonition-title,.md-typeset details.summary>summary,.md-typeset details.tldr>.admonition-title,.md-typeset details.tldr>summary{border-bottom-color:rgba(0,176,255,.1);background-color:rgba(0,176,255,.1)}.md-typeset .admonition.abstract>.admonition-title:before,.md-typeset .admonition.abstract>summary:before,.md-typeset .admonition.summary>.admonition-title:before,.md-typeset .admonition.summary>summary:before,.md-typeset .admonition.tldr>.admonition-title:before,.md-typeset .admonition.tldr>summary:before,.md-typeset details.abstract>.admonition-title:before,.md-typeset details.abstract>summary:before,.md-typeset details.summary>.admonition-title:before,.md-typeset details.summary>summary:before,.md-typeset details.tldr>.admonition-title:before,.md-typeset details.tldr>summary:before{color:#00b0ff;content:""}.md-typeset .admonition.info,.md-typeset .admonition.todo,.md-typeset details.info,.md-typeset details.todo{border-left-color:#00b8d4}[dir=rtl] .md-typeset .admonition.info,[dir=rtl] .md-typeset .admonition.todo,[dir=rtl] .md-typeset details.info,[dir=rtl] .md-typeset details.todo{border-right-color:#00b8d4}.md-typeset .admonition.info>.admonition-title,.md-typeset .admonition.info>summary,.md-typeset .admonition.todo>.admonition-title,.md-typeset .admonition.todo>summary,.md-typeset details.info>.admonition-title,.md-typeset details.info>summary,.md-typeset details.todo>.admonition-title,.md-typeset details.todo>summary{border-bottom-color:rgba(0,184,212,.1);background-color:rgba(0,184,212,.1)}.md-typeset .admonition.info>.admonition-title:before,.md-typeset .admonition.info>summary:before,.md-typeset .admonition.todo>.admonition-title:before,.md-typeset .admonition.todo>summary:before,.md-typeset details.info>.admonition-title:before,.md-typeset details.info>summary:before,.md-typeset details.todo>.admonition-title:before,.md-typeset details.todo>summary:before{color:#00b8d4;content:""}.md-typeset .admonition.hint,.md-typeset .admonition.important,.md-typeset .admonition.tip,.md-typeset details.hint,.md-typeset details.important,.md-typeset details.tip{border-left-color:#00bfa5}[dir=rtl] .md-typeset .admonition.hint,[dir=rtl] .md-typeset .admonition.important,[dir=rtl] .md-typeset .admonition.tip,[dir=rtl] .md-typeset details.hint,[dir=rtl] .md-typeset details.important,[dir=rtl] .md-typeset details.tip{border-right-color:#00bfa5}.md-typeset .admonition.hint>.admonition-title,.md-typeset .admonition.hint>summary,.md-typeset .admonition.important>.admonition-title,.md-typeset .admonition.important>summary,.md-typeset .admonition.tip>.admonition-title,.md-typeset .admonition.tip>summary,.md-typeset details.hint>.admonition-title,.md-typeset details.hint>summary,.md-typeset details.important>.admonition-title,.md-typeset details.important>summary,.md-typeset details.tip>.admonition-title,.md-typeset details.tip>summary{border-bottom-color:rgba(0,191,165,.1);background-color:rgba(0,191,165,.1)}.md-typeset .admonition.hint>.admonition-title:before,.md-typeset .admonition.hint>summary:before,.md-typeset .admonition.important>.admonition-title:before,.md-typeset .admonition.important>summary:before,.md-typeset .admonition.tip>.admonition-title:before,.md-typeset .admonition.tip>summary:before,.md-typeset details.hint>.admonition-title:before,.md-typeset details.hint>summary:before,.md-typeset details.important>.admonition-title:before,.md-typeset details.important>summary:before,.md-typeset details.tip>.admonition-title:before,.md-typeset details.tip>summary:before{color:#00bfa5;content:""}.md-typeset .admonition.check,.md-typeset .admonition.done,.md-typeset .admonition.success,.md-typeset details.check,.md-typeset details.done,.md-typeset details.success{border-left-color:#00c853}[dir=rtl] .md-typeset .admonition.check,[dir=rtl] .md-typeset .admonition.done,[dir=rtl] .md-typeset .admonition.success,[dir=rtl] .md-typeset details.check,[dir=rtl] .md-typeset details.done,[dir=rtl] .md-typeset details.success{border-right-color:#00c853}.md-typeset .admonition.check>.admonition-title,.md-typeset .admonition.check>summary,.md-typeset .admonition.done>.admonition-title,.md-typeset .admonition.done>summary,.md-typeset .admonition.success>.admonition-title,.md-typeset .admonition.success>summary,.md-typeset details.check>.admonition-title,.md-typeset details.check>summary,.md-typeset details.done>.admonition-title,.md-typeset details.done>summary,.md-typeset details.success>.admonition-title,.md-typeset details.success>summary{border-bottom-color:rgba(0,200,83,.1);background-color:rgba(0,200,83,.1)}.md-typeset .admonition.check>.admonition-title:before,.md-typeset .admonition.check>summary:before,.md-typeset .admonition.done>.admonition-title:before,.md-typeset .admonition.done>summary:before,.md-typeset .admonition.success>.admonition-title:before,.md-typeset .admonition.success>summary:before,.md-typeset details.check>.admonition-title:before,.md-typeset details.check>summary:before,.md-typeset details.done>.admonition-title:before,.md-typeset details.done>summary:before,.md-typeset details.success>.admonition-title:before,.md-typeset details.success>summary:before{color:#00c853;content:""}.md-typeset .admonition.faq,.md-typeset .admonition.help,.md-typeset .admonition.question,.md-typeset details.faq,.md-typeset details.help,.md-typeset details.question{border-left-color:#64dd17}[dir=rtl] .md-typeset .admonition.faq,[dir=rtl] .md-typeset .admonition.help,[dir=rtl] .md-typeset .admonition.question,[dir=rtl] .md-typeset details.faq,[dir=rtl] .md-typeset details.help,[dir=rtl] .md-typeset details.question{border-right-color:#64dd17}.md-typeset .admonition.faq>.admonition-title,.md-typeset .admonition.faq>summary,.md-typeset .admonition.help>.admonition-title,.md-typeset .admonition.help>summary,.md-typeset .admonition.question>.admonition-title,.md-typeset .admonition.question>summary,.md-typeset details.faq>.admonition-title,.md-typeset details.faq>summary,.md-typeset details.help>.admonition-title,.md-typeset details.help>summary,.md-typeset details.question>.admonition-title,.md-typeset details.question>summary{border-bottom-color:rgba(100,221,23,.1);background-color:rgba(100,221,23,.1)}.md-typeset .admonition.faq>.admonition-title:before,.md-typeset .admonition.faq>summary:before,.md-typeset .admonition.help>.admonition-title:before,.md-typeset .admonition.help>summary:before,.md-typeset .admonition.question>.admonition-title:before,.md-typeset .admonition.question>summary:before,.md-typeset details.faq>.admonition-title:before,.md-typeset details.faq>summary:before,.md-typeset details.help>.admonition-title:before,.md-typeset details.help>summary:before,.md-typeset details.question>.admonition-title:before,.md-typeset details.question>summary:before{color:#64dd17;content:""}.md-typeset .admonition.attention,.md-typeset .admonition.caution,.md-typeset .admonition.warning,.md-typeset details.attention,.md-typeset details.caution,.md-typeset details.warning{border-left-color:#ff9100}[dir=rtl] .md-typeset .admonition.attention,[dir=rtl] .md-typeset .admonition.caution,[dir=rtl] .md-typeset .admonition.warning,[dir=rtl] .md-typeset details.attention,[dir=rtl] .md-typeset details.caution,[dir=rtl] .md-typeset details.warning{border-right-color:#ff9100}.md-typeset .admonition.attention>.admonition-title,.md-typeset .admonition.attention>summary,.md-typeset .admonition.caution>.admonition-title,.md-typeset .admonition.caution>summary,.md-typeset .admonition.warning>.admonition-title,.md-typeset .admonition.warning>summary,.md-typeset details.attention>.admonition-title,.md-typeset details.attention>summary,.md-typeset details.caution>.admonition-title,.md-typeset details.caution>summary,.md-typeset details.warning>.admonition-title,.md-typeset details.warning>summary{border-bottom-color:rgba(255,145,0,.1);background-color:rgba(255,145,0,.1)}.md-typeset .admonition.attention>.admonition-title:before,.md-typeset .admonition.attention>summary:before,.md-typeset .admonition.caution>.admonition-title:before,.md-typeset .admonition.caution>summary:before,.md-typeset .admonition.warning>.admonition-title:before,.md-typeset .admonition.warning>summary:before,.md-typeset details.attention>.admonition-title:before,.md-typeset details.attention>summary:before,.md-typeset details.caution>.admonition-title:before,.md-typeset details.caution>summary:before,.md-typeset details.warning>.admonition-title:before,.md-typeset details.warning>summary:before{color:#ff9100;content:""}.md-typeset .admonition.fail,.md-typeset .admonition.failure,.md-typeset .admonition.missing,.md-typeset details.fail,.md-typeset details.failure,.md-typeset details.missing{border-left-color:#ff5252}[dir=rtl] .md-typeset .admonition.fail,[dir=rtl] .md-typeset .admonition.failure,[dir=rtl] .md-typeset .admonition.missing,[dir=rtl] .md-typeset details.fail,[dir=rtl] .md-typeset details.failure,[dir=rtl] .md-typeset details.missing{border-right-color:#ff5252}.md-typeset .admonition.fail>.admonition-title,.md-typeset .admonition.fail>summary,.md-typeset .admonition.failure>.admonition-title,.md-typeset .admonition.failure>summary,.md-typeset .admonition.missing>.admonition-title,.md-typeset .admonition.missing>summary,.md-typeset details.fail>.admonition-title,.md-typeset details.fail>summary,.md-typeset details.failure>.admonition-title,.md-typeset details.failure>summary,.md-typeset details.missing>.admonition-title,.md-typeset details.missing>summary{border-bottom-color:rgba(255,82,82,.1);background-color:rgba(255,82,82,.1)}.md-typeset .admonition.fail>.admonition-title:before,.md-typeset .admonition.fail>summary:before,.md-typeset .admonition.failure>.admonition-title:before,.md-typeset .admonition.failure>summary:before,.md-typeset .admonition.missing>.admonition-title:before,.md-typeset .admonition.missing>summary:before,.md-typeset details.fail>.admonition-title:before,.md-typeset details.fail>summary:before,.md-typeset details.failure>.admonition-title:before,.md-typeset details.failure>summary:before,.md-typeset details.missing>.admonition-title:before,.md-typeset details.missing>summary:before{color:#ff5252;content:""}.md-typeset .admonition.danger,.md-typeset .admonition.error,.md-typeset details.danger,.md-typeset details.error{border-left-color:#ff1744}[dir=rtl] .md-typeset .admonition.danger,[dir=rtl] .md-typeset .admonition.error,[dir=rtl] .md-typeset details.danger,[dir=rtl] .md-typeset details.error{border-right-color:#ff1744}.md-typeset .admonition.danger>.admonition-title,.md-typeset .admonition.danger>summary,.md-typeset .admonition.error>.admonition-title,.md-typeset .admonition.error>summary,.md-typeset details.danger>.admonition-title,.md-typeset details.danger>summary,.md-typeset details.error>.admonition-title,.md-typeset details.error>summary{border-bottom-color:rgba(255,23,68,.1);background-color:rgba(255,23,68,.1)}.md-typeset .admonition.danger>.admonition-title:before,.md-typeset .admonition.danger>summary:before,.md-typeset .admonition.error>.admonition-title:before,.md-typeset .admonition.error>summary:before,.md-typeset details.danger>.admonition-title:before,.md-typeset details.danger>summary:before,.md-typeset details.error>.admonition-title:before,.md-typeset details.error>summary:before{color:#ff1744;content:""}.md-typeset .admonition.bug,.md-typeset details.bug{border-left-color:#f50057}[dir=rtl] .md-typeset .admonition.bug,[dir=rtl] .md-typeset details.bug{border-right-color:#f50057}.md-typeset .admonition.bug>.admonition-title,.md-typeset .admonition.bug>summary,.md-typeset details.bug>.admonition-title,.md-typeset details.bug>summary{border-bottom-color:rgba(245,0,87,.1);background-color:rgba(245,0,87,.1)}.md-typeset .admonition.bug>.admonition-title:before,.md-typeset .admonition.bug>summary:before,.md-typeset details.bug>.admonition-title:before,.md-typeset details.bug>summary:before{color:#f50057;content:""}.md-typeset .admonition.example,.md-typeset details.example{border-left-color:#651fff}[dir=rtl] .md-typeset .admonition.example,[dir=rtl] .md-typeset details.example{border-right-color:#651fff}.md-typeset .admonition.example>.admonition-title,.md-typeset .admonition.example>summary,.md-typeset details.example>.admonition-title,.md-typeset details.example>summary{border-bottom-color:rgba(101,31,255,.1);background-color:rgba(101,31,255,.1)}.md-typeset .admonition.example>.admonition-title:before,.md-typeset .admonition.example>summary:before,.md-typeset details.example>.admonition-title:before,.md-typeset details.example>summary:before{color:#651fff;content:""}.md-typeset .admonition.cite,.md-typeset .admonition.quote,.md-typeset details.cite,.md-typeset details.quote{border-left-color:#9e9e9e}[dir=rtl] .md-typeset .admonition.cite,[dir=rtl] .md-typeset .admonition.quote,[dir=rtl] .md-typeset details.cite,[dir=rtl] .md-typeset details.quote{border-right-color:#9e9e9e}.md-typeset .admonition.cite>.admonition-title,.md-typeset .admonition.cite>summary,.md-typeset .admonition.quote>.admonition-title,.md-typeset .admonition.quote>summary,.md-typeset details.cite>.admonition-title,.md-typeset details.cite>summary,.md-typeset details.quote>.admonition-title,.md-typeset details.quote>summary{border-bottom-color:hsla(0,0%,62%,.1);background-color:hsla(0,0%,62%,.1)}.md-typeset .admonition.cite>.admonition-title:before,.md-typeset .admonition.cite>summary:before,.md-typeset .admonition.quote>.admonition-title:before,.md-typeset .admonition.quote>summary:before,.md-typeset details.cite>.admonition-title:before,.md-typeset details.cite>summary:before,.md-typeset details.quote>.admonition-title:before,.md-typeset details.quote>summary:before{color:#9e9e9e;content:""}.codehilite .o,.codehilite .ow,.md-typeset .highlight .o,.md-typeset .highlight .ow{color:inherit}.codehilite .ge,.md-typeset .highlight .ge{color:#000}.codehilite .gr,.md-typeset .highlight .gr{color:#a00}.codehilite .gh,.md-typeset .highlight .gh{color:#999}.codehilite .go,.md-typeset .highlight .go{color:#888}.codehilite .gp,.md-typeset .highlight .gp{color:#555}.codehilite .gs,.md-typeset .highlight .gs{color:inherit}.codehilite .gu,.md-typeset .highlight .gu{color:#aaa}.codehilite .gt,.md-typeset .highlight .gt{color:#a00}.codehilite .gd,.md-typeset .highlight .gd{background-color:#fdd}.codehilite .gi,.md-typeset .highlight .gi{background-color:#dfd}.codehilite .k,.md-typeset .highlight .k{color:#3b78e7}.codehilite .kc,.md-typeset .highlight .kc{color:#a71d5d}.codehilite .kd,.codehilite .kn,.md-typeset .highlight .kd,.md-typeset .highlight .kn{color:#3b78e7}.codehilite .kp,.md-typeset .highlight .kp{color:#a71d5d}.codehilite .kr,.codehilite .kt,.md-typeset .highlight .kr,.md-typeset .highlight .kt{color:#3e61a2}.codehilite .c,.codehilite .cm,.md-typeset .highlight .c,.md-typeset .highlight .cm{color:#999}.codehilite .cp,.md-typeset .highlight .cp{color:#666}.codehilite .c1,.codehilite .ch,.codehilite .cs,.md-typeset .highlight .c1,.md-typeset .highlight .ch,.md-typeset .highlight .cs{color:#999}.codehilite .na,.codehilite .nb,.md-typeset .highlight .na,.md-typeset .highlight .nb{color:#c2185b}.codehilite .bp,.md-typeset .highlight .bp{color:#3e61a2}.codehilite .nc,.md-typeset .highlight .nc{color:#c2185b}.codehilite .no,.md-typeset .highlight .no{color:#3e61a2}.codehilite .nd,.codehilite .ni,.md-typeset .highlight .nd,.md-typeset .highlight .ni{color:#666}.codehilite .ne,.codehilite .nf,.md-typeset .highlight .ne,.md-typeset .highlight .nf{color:#c2185b}.codehilite .nl,.md-typeset .highlight .nl{color:#3b5179}.codehilite .nn,.md-typeset .highlight .nn{color:#ec407a}.codehilite .nt,.md-typeset .highlight .nt{color:#3b78e7}.codehilite .nv,.codehilite .vc,.codehilite .vg,.codehilite .vi,.md-typeset .highlight .nv,.md-typeset .highlight .vc,.md-typeset .highlight .vg,.md-typeset .highlight .vi{color:#3e61a2}.codehilite .nx,.md-typeset .highlight .nx{color:#ec407a}.codehilite .il,.codehilite .m,.codehilite .mf,.codehilite .mh,.codehilite .mi,.codehilite .mo,.md-typeset .highlight .il,.md-typeset .highlight .m,.md-typeset .highlight .mf,.md-typeset .highlight .mh,.md-typeset .highlight .mi,.md-typeset .highlight .mo{color:#e74c3c}.codehilite .s,.codehilite .sb,.codehilite .sc,.md-typeset .highlight .s,.md-typeset .highlight .sb,.md-typeset .highlight .sc{color:#0d904f}.codehilite .sd,.md-typeset .highlight .sd{color:#999}.codehilite .s2,.md-typeset .highlight .s2{color:#0d904f}.codehilite .se,.codehilite .sh,.codehilite .si,.codehilite .sx,.md-typeset .highlight .se,.md-typeset .highlight .sh,.md-typeset .highlight .si,.md-typeset .highlight .sx{color:#183691}.codehilite .sr,.md-typeset .highlight .sr{color:#009926}.codehilite .s1,.codehilite .ss,.md-typeset .highlight .s1,.md-typeset .highlight .ss{color:#0d904f}.codehilite .err,.md-typeset .highlight .err{color:#a61717}.codehilite .w,.md-typeset .highlight .w{color:transparent}.codehilite .hll,.md-typeset .highlight .hll{display:block;margin:0 -.6rem;padding:0 .6rem;background-color:rgba(255,235,59,.5)}.md-typeset .codehilite,.md-typeset .highlight{position:relative;margin:1em 0;padding:0;border-radius:.1rem;background-color:hsla(0,0%,92.5%,.5);color:#37474f;line-height:1.4;-webkit-overflow-scrolling:touch}.md-typeset .codehilite code,.md-typeset .codehilite pre,.md-typeset .highlight code,.md-typeset .highlight pre{display:block;margin:0;padding:.525rem .6rem;background-color:transparent;overflow:auto;vertical-align:top}.md-typeset .codehilite code::-webkit-scrollbar,.md-typeset .codehilite pre::-webkit-scrollbar,.md-typeset .highlight code::-webkit-scrollbar,.md-typeset .highlight pre::-webkit-scrollbar{width:.2rem;height:.2rem}.md-typeset .codehilite code::-webkit-scrollbar-thumb,.md-typeset .codehilite pre::-webkit-scrollbar-thumb,.md-typeset .highlight code::-webkit-scrollbar-thumb,.md-typeset .highlight pre::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.26)}.md-typeset .codehilite code::-webkit-scrollbar-thumb:hover,.md-typeset .codehilite pre::-webkit-scrollbar-thumb:hover,.md-typeset .highlight code::-webkit-scrollbar-thumb:hover,.md-typeset .highlight pre::-webkit-scrollbar-thumb:hover{background-color:#536dfe}.md-typeset pre.codehilite,.md-typeset pre.highlight{overflow:visible}.md-typeset pre.codehilite code,.md-typeset pre.highlight code{display:block;padding:.525rem .6rem;overflow:auto}.md-typeset .codehilitetable,.md-typeset .highlighttable{display:block;margin:1em 0;border-radius:.2em;font-size:.8rem;overflow:hidden}.md-typeset .codehilitetable tbody,.md-typeset .codehilitetable td,.md-typeset .highlighttable tbody,.md-typeset .highlighttable td{display:block;padding:0}.md-typeset .codehilitetable tr,.md-typeset .highlighttable tr{display:-webkit-box;display:flex}.md-typeset .codehilitetable .codehilite,.md-typeset .codehilitetable .highlight,.md-typeset .codehilitetable .linenodiv,.md-typeset .highlighttable .codehilite,.md-typeset .highlighttable .highlight,.md-typeset .highlighttable .linenodiv{margin:0;border-radius:0}.md-typeset .codehilitetable .linenodiv,.md-typeset .highlighttable .linenodiv{padding:.525rem .6rem}.md-typeset .codehilitetable .linenos,.md-typeset .highlighttable .linenos{background-color:rgba(0,0,0,.07);color:rgba(0,0,0,.26);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.md-typeset .codehilitetable .linenos pre,.md-typeset .highlighttable .linenos pre{margin:0;padding:0;background-color:transparent;color:inherit;text-align:right}.md-typeset .codehilitetable .code,.md-typeset .highlighttable .code{-webkit-box-flex:1;flex:1;overflow:hidden}.md-typeset>.codehilitetable,.md-typeset>.highlighttable{box-shadow:none}.md-typeset [id^="fnref:"]{display:inline-block}.md-typeset [id^="fnref:"]:target{margin-top:-3.8rem;padding-top:3.8rem;pointer-events:none}.md-typeset [id^="fn:"]:before{display:none;height:0;content:""}.md-typeset [id^="fn:"]:target:before{display:block;margin-top:-3.5rem;padding-top:3.5rem;pointer-events:none}.md-typeset .footnote{color:rgba(0,0,0,.54);font-size:.64rem}.md-typeset .footnote ol{margin-left:0}.md-typeset .footnote li{-webkit-transition:color .25s;transition:color .25s}.md-typeset .footnote li:target{color:rgba(0,0,0,.87)}.md-typeset .footnote li :first-child{margin-top:0}.md-typeset .footnote li:hover .footnote-backref,.md-typeset .footnote li:target .footnote-backref{-webkit-transform:translateX(0);transform:translateX(0);opacity:1}.md-typeset .footnote li:hover .footnote-backref:hover,.md-typeset .footnote li:target .footnote-backref{color:#536dfe}.md-typeset .footnote-ref{display:inline-block;pointer-events:auto}.md-typeset .footnote-ref:before{display:inline;margin:0 .2em;border-left:.05rem solid rgba(0,0,0,.26);font-size:1.25em;content:"";vertical-align:-.25rem}.md-typeset .footnote-backref{display:inline-block;-webkit-transform:translateX(.25rem);transform:translateX(.25rem);-webkit-transition:color .25s,opacity .125s .125s,-webkit-transform .25s .125s;transition:color .25s,opacity .125s .125s,-webkit-transform .25s .125s;transition:transform .25s .125s,color .25s,opacity .125s .125s;transition:transform .25s .125s,color .25s,opacity .125s .125s,-webkit-transform .25s .125s;color:rgba(0,0,0,.26);font-size:0;opacity:0;vertical-align:text-bottom}[dir=rtl] .md-typeset .footnote-backref{-webkit-transform:translateX(-.25rem);transform:translateX(-.25rem)}.md-typeset .footnote-backref:before{display:inline-block;font-size:.8rem;content:"\E31B"}[dir=rtl] .md-typeset .footnote-backref:before{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.md-typeset .headerlink{display:inline-block;margin-left:.5rem;-webkit-transform:translateY(.25rem);transform:translateY(.25rem);-webkit-transition:color .25s,opacity .125s .25s,-webkit-transform .25s .25s;transition:color .25s,opacity .125s .25s,-webkit-transform .25s .25s;transition:transform .25s .25s,color .25s,opacity .125s .25s;transition:transform .25s .25s,color .25s,opacity .125s .25s,-webkit-transform .25s .25s;opacity:0}[dir=rtl] .md-typeset .headerlink{margin-right:.5rem;margin-left:0}html body .md-typeset .headerlink{color:rgba(0,0,0,.26)}.md-typeset h1[id]:before{display:block;margin-top:-9px;padding-top:9px;content:""}.md-typeset h1[id]:target:before{margin-top:-3.45rem;padding-top:3.45rem}.md-typeset h1[id] .headerlink:focus,.md-typeset h1[id]:hover .headerlink,.md-typeset h1[id]:target .headerlink{-webkit-transform:translate(0);transform:translate(0);opacity:1}.md-typeset h1[id] .headerlink:focus,.md-typeset h1[id]:hover .headerlink:hover,.md-typeset h1[id]:target .headerlink{color:#536dfe}.md-typeset h2[id]:before{display:block;margin-top:-8px;padding-top:8px;content:""}.md-typeset h2[id]:target:before{margin-top:-3.4rem;padding-top:3.4rem}.md-typeset h2[id] .headerlink:focus,.md-typeset h2[id]:hover .headerlink,.md-typeset h2[id]:target .headerlink{-webkit-transform:translate(0);transform:translate(0);opacity:1}.md-typeset h2[id] .headerlink:focus,.md-typeset h2[id]:hover .headerlink:hover,.md-typeset h2[id]:target .headerlink{color:#536dfe}.md-typeset h3[id]:before{display:block;margin-top:-9px;padding-top:9px;content:""}.md-typeset h3[id]:target:before{margin-top:-3.45rem;padding-top:3.45rem}.md-typeset h3[id] .headerlink:focus,.md-typeset h3[id]:hover .headerlink,.md-typeset h3[id]:target .headerlink{-webkit-transform:translate(0);transform:translate(0);opacity:1}.md-typeset h3[id] .headerlink:focus,.md-typeset h3[id]:hover .headerlink:hover,.md-typeset h3[id]:target .headerlink{color:#536dfe}.md-typeset h4[id]:before{display:block;margin-top:-9px;padding-top:9px;content:""}.md-typeset h4[id]:target:before{margin-top:-3.45rem;padding-top:3.45rem}.md-typeset h4[id] .headerlink:focus,.md-typeset h4[id]:hover .headerlink,.md-typeset h4[id]:target .headerlink{-webkit-transform:translate(0);transform:translate(0);opacity:1}.md-typeset h4[id] .headerlink:focus,.md-typeset h4[id]:hover .headerlink:hover,.md-typeset h4[id]:target .headerlink{color:#536dfe}.md-typeset h5[id]:before{display:block;margin-top:-11px;padding-top:11px;content:""}.md-typeset h5[id]:target:before{margin-top:-3.55rem;padding-top:3.55rem}.md-typeset h5[id] .headerlink:focus,.md-typeset h5[id]:hover .headerlink,.md-typeset h5[id]:target .headerlink{-webkit-transform:translate(0);transform:translate(0);opacity:1}.md-typeset h5[id] .headerlink:focus,.md-typeset h5[id]:hover .headerlink:hover,.md-typeset h5[id]:target .headerlink{color:#536dfe}.md-typeset h6[id]:before{display:block;margin-top:-11px;padding-top:11px;content:""}.md-typeset h6[id]:target:before{margin-top:-3.55rem;padding-top:3.55rem}.md-typeset h6[id] .headerlink:focus,.md-typeset h6[id]:hover .headerlink,.md-typeset h6[id]:target .headerlink{-webkit-transform:translate(0);transform:translate(0);opacity:1}.md-typeset h6[id] .headerlink:focus,.md-typeset h6[id]:hover .headerlink:hover,.md-typeset h6[id]:target .headerlink{color:#536dfe}.md-typeset .MJXc-display{margin:.75em 0;padding:.75em 0;overflow:auto;-webkit-overflow-scrolling:touch}.md-typeset .MathJax_CHTML{outline:0}.md-typeset .critic.comment,.md-typeset del.critic,.md-typeset ins.critic{margin:0 .25em;padding:.0625em 0;border-radius:.1rem;-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset del.critic{background-color:#fdd;box-shadow:.25em 0 0 #fdd,-.25em 0 0 #fdd}.md-typeset ins.critic{background-color:#dfd;box-shadow:.25em 0 0 #dfd,-.25em 0 0 #dfd}.md-typeset .critic.comment{background-color:hsla(0,0%,92.5%,.5);color:#37474f;box-shadow:.25em 0 0 hsla(0,0%,92.5%,.5),-.25em 0 0 hsla(0,0%,92.5%,.5)}.md-typeset .critic.comment:before{padding-right:.125em;color:rgba(0,0,0,.26);content:"\E0B7";vertical-align:-.125em}.md-typeset .critic.block{display:block;margin:1em 0;padding-right:.8rem;padding-left:.8rem;box-shadow:none}.md-typeset .critic.block :first-child{margin-top:.5em}.md-typeset .critic.block :last-child{margin-bottom:.5em}.md-typeset details{display:block;padding-top:0}.md-typeset details[open]>summary:after{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.md-typeset details:not([open]){padding-bottom:0}.md-typeset details:not([open])>summary{border-bottom:none}.md-typeset details summary{padding-right:2rem}[dir=rtl] .md-typeset details summary{padding-left:2rem}.no-details .md-typeset details:not([open])>*{display:none}.no-details .md-typeset details:not([open]) summary{display:block}.md-typeset summary{display:block;outline:none;cursor:pointer}.md-typeset summary::-webkit-details-marker{display:none}.md-typeset summary:after{position:absolute;top:.4rem;right:.6rem;color:rgba(0,0,0,.26);font-size:1rem;content:"\E313"}[dir=rtl] .md-typeset summary:after{right:auto;left:.6rem}.md-typeset .emojione{width:1rem;vertical-align:text-top}.md-typeset code.codehilite,.md-typeset code.highlight{margin:0 .29412em;padding:.07353em 0}.md-typeset .superfences-content{display:none;-webkit-box-ordinal-group:100;order:99;width:100%;background-color:#fff}.md-typeset .superfences-content>*{margin:0;border-radius:0}.md-typeset .superfences-tabs{display:-webkit-box;display:flex;position:relative;flex-wrap:wrap;margin:1em 0;border:.05rem solid rgba(0,0,0,.07);border-radius:.2em}.md-typeset .superfences-tabs>input{display:none}.md-typeset .superfences-tabs>input:checked+label{font-weight:700}.md-typeset .superfences-tabs>input:checked+label+.superfences-content{display:block}.md-typeset .superfences-tabs>label{width:auto;padding:.6rem;-webkit-transition:color .125s;transition:color .125s;font-size:.64rem;cursor:pointer}html .md-typeset .superfences-tabs>label:hover{color:#536dfe}.md-typeset .task-list-item{position:relative;list-style-type:none}.md-typeset .task-list-item [type=checkbox]{position:absolute;top:.45em;left:-2em}[dir=rtl] .md-typeset .task-list-item [type=checkbox]{right:-2em;left:auto}.md-typeset .task-list-control .task-list-indicator:before{position:absolute;top:.15em;left:-1.25em;color:rgba(0,0,0,.26);font-size:1.25em;content:"\E835";vertical-align:-.25em}[dir=rtl] .md-typeset .task-list-control .task-list-indicator:before{right:-1.25em;left:auto}.md-typeset .task-list-control [type=checkbox]:checked+.task-list-indicator:before{content:"\E834"}.md-typeset .task-list-control [type=checkbox]{opacity:0;z-index:-1}@media print{.md-typeset a:after{color:rgba(0,0,0,.54);content:" [" attr(href) "]"}.md-typeset code,.md-typeset pre{white-space:pre-wrap}.md-typeset code{box-shadow:none;-webkit-box-decoration-break:initial;box-decoration-break:slice}.md-clipboard,.md-content__icon,.md-footer,.md-header,.md-sidebar,.md-tabs,.md-typeset .headerlink{display:none}}@media only screen and (max-width:44.9375em){.md-typeset pre{margin:1em -.8rem;border-radius:0}.md-typeset pre>code{padding:.525rem .8rem}.md-footer-nav__link--prev .md-footer-nav__title{display:none}.md-search-result__teaser{max-height:2.5rem;-webkit-line-clamp:3}.codehilite .hll,.md-typeset .highlight .hll{margin:0 -.8rem;padding:0 .8rem}.md-typeset>.codehilite,.md-typeset>.highlight{margin:1em -.8rem;border-radius:0}.md-typeset>.codehilite code,.md-typeset>.codehilite pre,.md-typeset>.highlight code,.md-typeset>.highlight pre{padding:.525rem .8rem}.md-typeset>.codehilitetable,.md-typeset>.highlighttable{margin:1em -.8rem;border-radius:0}.md-typeset>.codehilitetable .codehilite>code,.md-typeset>.codehilitetable .codehilite>pre,.md-typeset>.codehilitetable .highlight>code,.md-typeset>.codehilitetable .highlight>pre,.md-typeset>.codehilitetable .linenodiv,.md-typeset>.highlighttable .codehilite>code,.md-typeset>.highlighttable .codehilite>pre,.md-typeset>.highlighttable .highlight>code,.md-typeset>.highlighttable .highlight>pre,.md-typeset>.highlighttable .linenodiv{padding:.5rem .8rem}.md-typeset>p>.MJXc-display{margin:.75em -.8rem;padding:.25em .8rem}.md-typeset>.superfences-tabs{margin:1em -.8rem;border:0;border-top:.05rem solid rgba(0,0,0,.07);border-radius:0}.md-typeset>.superfences-tabs code,.md-typeset>.superfences-tabs pre{padding:.525rem .8rem}}@media only screen and (min-width:100em){html{font-size:137.5%}}@media only screen and (min-width:125em){html{font-size:150%}}@media only screen and (max-width:59.9375em){body[data-md-state=lock]{overflow:hidden}.ios body[data-md-state=lock] .md-container{display:none}html .md-nav__link[for=__toc]{display:block;padding-right:2.4rem}html .md-nav__link[for=__toc]:after{color:inherit;content:"\E8DE"}html .md-nav__link[for=__toc]+.md-nav__link{display:none}html .md-nav__link[for=__toc]~.md-nav{display:-webkit-box;display:flex}html [dir=rtl] .md-nav__link{padding-right:.8rem;padding-left:2.4rem}.md-nav__source{display:block;padding:0 .2rem;background-color:rgba(50,64,144,.9675);color:#fff}.md-search__overlay{position:absolute;top:.2rem;left:.2rem;width:1.8rem;height:1.8rem;-webkit-transform-origin:center;transform-origin:center;-webkit-transition:opacity .2s .2s,-webkit-transform .3s .1s;transition:opacity .2s .2s,-webkit-transform .3s .1s;transition:transform .3s .1s,opacity .2s .2s;transition:transform .3s .1s,opacity .2s .2s,-webkit-transform .3s .1s;border-radius:1rem;background-color:#fff;overflow:hidden;pointer-events:none}[dir=rtl] .md-search__overlay{right:.2rem;left:auto}[data-md-toggle=search]:checked~.md-header .md-search__overlay{-webkit-transition:opacity .1s,-webkit-transform .4s;transition:opacity .1s,-webkit-transform .4s;transition:transform .4s,opacity .1s;transition:transform .4s,opacity .1s,-webkit-transform .4s;opacity:1}.md-search__inner{position:fixed;top:0;left:100%;width:100%;height:100%;-webkit-transform:translateX(5%);transform:translateX(5%);-webkit-transition:right 0s .3s,left 0s .3s,opacity .15s .15s,-webkit-transform .15s cubic-bezier(.4,0,.2,1) .15s;transition:right 0s .3s,left 0s .3s,opacity .15s .15s,-webkit-transform .15s cubic-bezier(.4,0,.2,1) .15s;transition:right 0s .3s,left 0s .3s,transform .15s cubic-bezier(.4,0,.2,1) .15s,opacity .15s .15s;transition:right 0s .3s,left 0s .3s,transform .15s cubic-bezier(.4,0,.2,1) .15s,opacity .15s .15s,-webkit-transform .15s cubic-bezier(.4,0,.2,1) .15s;opacity:0;z-index:2}[data-md-toggle=search]:checked~.md-header .md-search__inner{left:0;-webkit-transform:translateX(0);transform:translateX(0);-webkit-transition:right 0s 0s,left 0s 0s,opacity .15s .15s,-webkit-transform .15s cubic-bezier(.1,.7,.1,1) .15s;transition:right 0s 0s,left 0s 0s,opacity .15s .15s,-webkit-transform .15s cubic-bezier(.1,.7,.1,1) .15s;transition:right 0s 0s,left 0s 0s,transform .15s cubic-bezier(.1,.7,.1,1) .15s,opacity .15s .15s;transition:right 0s 0s,left 0s 0s,transform .15s cubic-bezier(.1,.7,.1,1) .15s,opacity .15s .15s,-webkit-transform .15s cubic-bezier(.1,.7,.1,1) .15s;opacity:1}[dir=rtl] [data-md-toggle=search]:checked~.md-header .md-search__inner{right:0;left:auto}html [dir=rtl] .md-search__inner{right:100%;left:auto;-webkit-transform:translateX(-5%);transform:translateX(-5%)}.md-search__input{width:100%;height:2.4rem;font-size:.9rem}.md-search__icon[for=__search]{top:.6rem;left:.8rem}.md-search__icon[for=__search][for=__search]:before{content:"\E5C4"}[dir=rtl] .md-search__icon[for=__search][for=__search]:before{content:"\E5C8"}.md-search__icon[type=reset]{top:.6rem;right:.8rem}.md-search__output{top:2.4rem;bottom:0}.md-search-result__article--document:before{display:none}}@media only screen and (max-width:76.1875em){[data-md-toggle=drawer]:checked~.md-overlay{width:100%;height:100%;-webkit-transition:width 0s,height 0s,opacity .25s;transition:width 0s,height 0s,opacity .25s;opacity:1}.md-header-nav__button.md-icon--home,.md-header-nav__button.md-logo{display:none}.md-hero__inner{margin-top:2.4rem;margin-bottom:1.2rem}.md-nav{background-color:#fff}.md-nav--primary,.md-nav--primary .md-nav{display:-webkit-box;display:flex;position:absolute;top:0;right:0;left:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;height:100%;z-index:1}.md-nav--primary .md-nav__item,.md-nav--primary .md-nav__title{font-size:.8rem;line-height:1.5}html .md-nav--primary .md-nav__title{position:relative;height:5.6rem;padding:3rem .8rem .2rem;background-color:rgba(0,0,0,.07);color:rgba(0,0,0,.54);font-weight:400;line-height:2.4rem;white-space:nowrap;cursor:pointer}html .md-nav--primary .md-nav__title:before{display:block;position:absolute;top:.2rem;left:.2rem;width:2rem;height:2rem;color:rgba(0,0,0,.54)}html .md-nav--primary .md-nav__title~.md-nav__list{background-color:#fff;box-shadow:inset 0 .05rem 0 rgba(0,0,0,.07)}html .md-nav--primary .md-nav__title~.md-nav__list>.md-nav__item:first-child{border-top:0}html .md-nav--primary .md-nav__title--site{position:relative;background-color:#3f51b5;color:#fff}html .md-nav--primary .md-nav__title--site .md-nav__button{display:block;position:absolute;top:.2rem;left:.2rem;width:3.2rem;height:3.2rem;font-size:2.4rem}html .md-nav--primary .md-nav__title--site:before{display:none}html [dir=rtl] .md-nav--primary .md-nav__title--site .md-nav__button,html [dir=rtl] .md-nav--primary .md-nav__title:before{right:.2rem;left:auto}.md-nav--primary .md-nav__list{-webkit-box-flex:1;flex:1;overflow-y:auto}.md-nav--primary .md-nav__item{padding:0;border-top:.05rem solid rgba(0,0,0,.07)}[dir=rtl] .md-nav--primary .md-nav__item{padding:0}.md-nav--primary .md-nav__item--nested>.md-nav__link{padding-right:2.4rem}[dir=rtl] .md-nav--primary .md-nav__item--nested>.md-nav__link{padding-right:.8rem;padding-left:2.4rem}.md-nav--primary .md-nav__item--nested>.md-nav__link:after{content:"\E315"}[dir=rtl] .md-nav--primary .md-nav__item--nested>.md-nav__link:after{content:"\E314"}.md-nav--primary .md-nav__link{position:relative;margin-top:0;padding:.6rem .8rem}.md-nav--primary .md-nav__link:after{position:absolute;top:50%;right:.6rem;margin-top:-.6rem;color:inherit;font-size:1.2rem}[dir=rtl] .md-nav--primary .md-nav__link:after{right:auto;left:.6rem}.md-nav--primary .md-nav--secondary .md-nav__link{position:static}.md-nav--primary .md-nav--secondary .md-nav{position:static;background-color:transparent}.md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-left:1.4rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-right:1.4rem;padding-left:0}.md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-left:2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-right:2rem;padding-left:0}.md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-left:2.6rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-right:2.6rem;padding-left:0}.md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-left:3.2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-right:3.2rem;padding-left:0}.md-nav__toggle~.md-nav{display:-webkit-box;display:flex;-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transition:opacity .125s .05s,-webkit-transform .25s cubic-bezier(.8,0,.6,1);transition:opacity .125s .05s,-webkit-transform .25s cubic-bezier(.8,0,.6,1);transition:transform .25s cubic-bezier(.8,0,.6,1),opacity .125s .05s;transition:transform .25s cubic-bezier(.8,0,.6,1),opacity .125s .05s,-webkit-transform .25s cubic-bezier(.8,0,.6,1);opacity:0}[dir=rtl] .md-nav__toggle~.md-nav{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.no-csstransforms3d .md-nav__toggle~.md-nav{display:none}.md-nav__toggle:checked~.md-nav{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transition:opacity .125s .125s,-webkit-transform .25s cubic-bezier(.4,0,.2,1);transition:opacity .125s .125s,-webkit-transform .25s cubic-bezier(.4,0,.2,1);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .125s .125s;transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .125s .125s,-webkit-transform .25s cubic-bezier(.4,0,.2,1);opacity:1}.no-csstransforms3d .md-nav__toggle:checked~.md-nav{display:-webkit-box;display:flex}.md-sidebar--primary{position:fixed;top:0;left:-12.1rem;width:12.1rem;height:100%;-webkit-transform:translateX(0);transform:translateX(0);-webkit-transition:box-shadow .25s,-webkit-transform .25s cubic-bezier(.4,0,.2,1);transition:box-shadow .25s,-webkit-transform .25s cubic-bezier(.4,0,.2,1);transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s;transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s,-webkit-transform .25s cubic-bezier(.4,0,.2,1);background-color:#fff;z-index:3}[dir=rtl] .md-sidebar--primary{right:-12.1rem;left:auto}.no-csstransforms3d .md-sidebar--primary{display:none}[data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{box-shadow:0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12),0 5px 5px -3px rgba(0,0,0,.4);-webkit-transform:translateX(12.1rem);transform:translateX(12.1rem)}[dir=rtl] [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{-webkit-transform:translateX(-12.1rem);transform:translateX(-12.1rem)}.no-csstransforms3d [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{display:block}.md-sidebar--primary .md-sidebar__scrollwrap{overflow:hidden;position:absolute;top:0;right:0;bottom:0;left:0;margin:0}.md-tabs{display:none}}@media only screen and (min-width:60em){.md-content{margin-right:12.1rem}[dir=rtl] .md-content{margin-right:0;margin-left:12.1rem}.md-header-nav__button.md-icon--search{display:none}.md-header-nav__source{display:block;width:11.7rem;max-width:11.7rem;padding-right:.6rem}[dir=rtl] .md-header-nav__source{padding-right:0;padding-left:.6rem}.md-search{padding:.2rem}.md-search__overlay{position:fixed;top:0;left:0;width:0;height:0;-webkit-transition:width 0s .25s,height 0s .25s,opacity .25s;transition:width 0s .25s,height 0s .25s,opacity .25s;background-color:rgba(0,0,0,.54);cursor:pointer}[dir=rtl] .md-search__overlay{right:0;left:auto}[data-md-toggle=search]:checked~.md-header .md-search__overlay{width:100%;height:100%;-webkit-transition:width 0s,height 0s,opacity .25s;transition:width 0s,height 0s,opacity .25s;opacity:1}.md-search__inner{position:relative;width:11.5rem;margin-right:.8rem;padding:.1rem 0;float:right;-webkit-transition:width .25s cubic-bezier(.1,.7,.1,1);transition:width .25s cubic-bezier(.1,.7,.1,1)}[dir=rtl] .md-search__inner{margin-right:0;margin-left:.8rem;float:left}.md-search__form,.md-search__input{border-radius:.1rem}.md-search__input{width:100%;height:1.8rem;padding-left:2.2rem;-webkit-transition:background-color .25s cubic-bezier(.1,.7,.1,1),color .25s cubic-bezier(.1,.7,.1,1);transition:background-color .25s cubic-bezier(.1,.7,.1,1),color .25s cubic-bezier(.1,.7,.1,1);background-color:rgba(0,0,0,.26);color:inherit;font-size:.8rem}[dir=rtl] .md-search__input{padding-right:2.2rem}.md-search__input+.md-search__icon{color:inherit}.md-search__input::-webkit-input-placeholder{color:hsla(0,0%,100%,.7)}.md-search__input::-moz-placeholder{color:hsla(0,0%,100%,.7)}.md-search__input:-ms-input-placeholder{color:hsla(0,0%,100%,.7)}.md-search__input::-ms-input-placeholder{color:hsla(0,0%,100%,.7)}.md-search__input::placeholder{color:hsla(0,0%,100%,.7)}.md-search__input:hover{background-color:hsla(0,0%,100%,.12)}[data-md-toggle=search]:checked~.md-header .md-search__input{border-radius:.1rem .1rem 0 0;background-color:#fff;color:rgba(0,0,0,.87);text-overflow:clip}[data-md-toggle=search]:checked~.md-header .md-search__input+.md-search__icon,[data-md-toggle=search]:checked~.md-header .md-search__input::-webkit-input-placeholder{color:rgba(0,0,0,.54)}[data-md-toggle=search]:checked~.md-header .md-search__input+.md-search__icon,[data-md-toggle=search]:checked~.md-header .md-search__input::-moz-placeholder{color:rgba(0,0,0,.54)}[data-md-toggle=search]:checked~.md-header .md-search__input+.md-search__icon,[data-md-toggle=search]:checked~.md-header .md-search__input:-ms-input-placeholder{color:rgba(0,0,0,.54)}[data-md-toggle=search]:checked~.md-header .md-search__input+.md-search__icon,[data-md-toggle=search]:checked~.md-header .md-search__input::-ms-input-placeholder{color:rgba(0,0,0,.54)}[data-md-toggle=search]:checked~.md-header .md-search__input+.md-search__icon,[data-md-toggle=search]:checked~.md-header .md-search__input::placeholder{color:rgba(0,0,0,.54)}.md-search__output{top:1.9rem;-webkit-transition:opacity .4s;transition:opacity .4s;opacity:0}[data-md-toggle=search]:checked~.md-header .md-search__output{box-shadow:0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12),0 3px 5px -1px rgba(0,0,0,.4);opacity:1}.md-search__scrollwrap{max-height:0}[data-md-toggle=search]:checked~.md-header .md-search__scrollwrap{max-height:75vh}.md-search__scrollwrap::-webkit-scrollbar{width:.2rem;height:.2rem}.md-search__scrollwrap::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.26)}.md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#536dfe}.md-search-result__meta{padding-left:2.2rem}[dir=rtl] .md-search-result__meta{padding-right:2.2rem;padding-left:0}.md-search-result__article{padding-left:2.2rem}[dir=rtl] .md-search-result__article{padding-right:2.2rem;padding-left:.8rem}.md-sidebar--secondary{display:block;margin-left:100%;-webkit-transform:translate(-100%);transform:translate(-100%)}[dir=rtl] .md-sidebar--secondary{margin-right:100%;margin-left:0;-webkit-transform:translate(100%);transform:translate(100%)}}@media only screen and (min-width:76.25em){.md-content{margin-left:12.1rem}[dir=rtl] .md-content{margin-right:12.1rem}.md-content__inner{margin-right:1.2rem;margin-left:1.2rem}.md-header-nav__button.md-icon--menu{display:none}.md-nav[data-md-state=animate]{-webkit-transition:max-height .25s cubic-bezier(.86,0,.07,1);transition:max-height .25s cubic-bezier(.86,0,.07,1)}.md-nav__toggle~.md-nav{max-height:0;overflow:hidden}.no-js .md-nav__toggle~.md-nav{display:none}.md-nav[data-md-state=expand],.md-nav__toggle:checked~.md-nav{max-height:100%}.no-js .md-nav[data-md-state=expand],.no-js .md-nav__toggle:checked~.md-nav{display:block}.md-nav__item--nested>.md-nav>.md-nav__title{display:none}.md-nav__item--nested>.md-nav__link:after{display:inline-block;-webkit-transform-origin:.45em .45em;transform-origin:.45em .45em;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;vertical-align:-.125em}.js .md-nav__item--nested>.md-nav__link:after{-webkit-transition:-webkit-transform .4s;transition:-webkit-transform .4s;transition:transform .4s;transition:transform .4s,-webkit-transform .4s}.md-nav__item--nested .md-nav__toggle:checked~.md-nav__link:after{-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.md-search__inner{margin-right:1.2rem}[dir=rtl] .md-search__inner{margin-left:1.2rem}.md-search__scrollwrap,[data-md-toggle=search]:checked~.md-header .md-search__inner{width:34.4rem}.md-sidebar--secondary{margin-left:61rem}[dir=rtl] .md-sidebar--secondary{margin-right:61rem;margin-left:0}.md-tabs~.md-main .md-nav--primary>.md-nav__list>.md-nav__item--nested{font-size:0;visibility:hidden}.md-tabs--active~.md-main .md-nav--primary .md-nav__title{display:block;padding:0}.md-tabs--active~.md-main .md-nav--primary .md-nav__title--site{display:none}.no-js .md-tabs--active~.md-main .md-nav--primary .md-nav{display:block}.md-tabs--active~.md-main .md-nav--primary>.md-nav__list>.md-nav__item{font-size:0;visibility:hidden}.md-tabs--active~.md-main .md-nav--primary>.md-nav__list>.md-nav__item--nested{display:none;font-size:.7rem;overflow:auto;visibility:visible}.md-tabs--active~.md-main .md-nav--primary>.md-nav__list>.md-nav__item--nested>.md-nav__link{display:none}.md-tabs--active~.md-main .md-nav--primary>.md-nav__list>.md-nav__item--active{display:block}.md-tabs--active~.md-main .md-nav[data-md-level="1"]{max-height:none;overflow:visible}.md-tabs--active~.md-main .md-nav[data-md-level="1"]>.md-nav__list>.md-nav__item{padding-left:0}.md-tabs--active~.md-main .md-nav[data-md-level="1"] .md-nav .md-nav__title{display:none}}@media only screen and (min-width:45em){.md-footer-nav__link{width:50%}.md-footer-copyright{max-width:75%;float:left}[dir=rtl] .md-footer-copyright{float:right}.md-footer-social{padding:.6rem 0;float:right}[dir=rtl] .md-footer-social{float:left}}@media only screen and (max-width:29.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{-webkit-transform:scale(45);transform:scale(45)}}@media only screen and (min-width:30em) and (max-width:44.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{-webkit-transform:scale(60);transform:scale(60)}}@media only screen and (min-width:45em) and (max-width:59.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{-webkit-transform:scale(75);transform:scale(75)}}@media only screen and (min-width:60em) and (max-width:76.1875em){.md-search__scrollwrap,[data-md-toggle=search]:checked~.md-header .md-search__inner{width:23.4rem}.md-search-result__teaser{max-height:2.5rem;-webkit-line-clamp:3}} \ No newline at end of file diff --git a/public/docs/assets/underscore-min.js b/public/docs/assets/underscore-min.js new file mode 100644 index 0000000..6567d19 --- /dev/null +++ b/public/docs/assets/underscore-min.js @@ -0,0 +1,21 @@ +// Snap.svg 0.4.1 +// +// Copyright (c) 2013 – 2015 Adobe Systems Incorporated. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// build: 2015-04-13 + +!function(a){var b,c,d="0.4.2",e="hasOwnProperty",f=/[\.\/]/,g=/\s*,\s*/,h="*",i=function(a,b){return a-b},j={n:{}},k=function(){for(var a=0,b=this.length;b>a;a++)if("undefined"!=typeof this[a])return this[a]},l=function(){for(var a=this.length;--a;)if("undefined"!=typeof this[a])return this[a]},m=function(a,d){a=String(a);var e,f=c,g=Array.prototype.slice.call(arguments,2),h=m.listeners(a),j=0,n=[],o={},p=[],q=b;p.firstDefined=k,p.lastDefined=l,b=a,c=0;for(var r=0,s=h.length;s>r;r++)"zIndex"in h[r]&&(n.push(h[r].zIndex),h[r].zIndex<0&&(o[h[r].zIndex]=h[r]));for(n.sort(i);n[j]<0;)if(e=o[n[j++]],p.push(e.apply(d,g)),c)return c=f,p;for(r=0;s>r;r++)if(e=h[r],"zIndex"in e)if(e.zIndex==n[j]){if(p.push(e.apply(d,g)),c)break;do if(j++,e=o[n[j]],e&&p.push(e.apply(d,g)),c)break;while(e)}else o[e.zIndex]=e;else if(p.push(e.apply(d,g)),c)break;return c=f,b=q,p};m._events=j,m.listeners=function(a){var b,c,d,e,g,i,k,l,m=a.split(f),n=j,o=[n],p=[];for(e=0,g=m.length;g>e;e++){for(l=[],i=0,k=o.length;k>i;i++)for(n=o[i].n,c=[n[m[e]],n[h]],d=2;d--;)b=c[d],b&&(l.push(b),p=p.concat(b.f||[]));o=l}return p},m.on=function(a,b){if(a=String(a),"function"!=typeof b)return function(){};for(var c=a.split(g),d=0,e=c.length;e>d;d++)!function(a){for(var c,d=a.split(f),e=j,g=0,h=d.length;h>g;g++)e=e.n,e=e.hasOwnProperty(d[g])&&e[d[g]]||(e[d[g]]={n:{}});for(e.f=e.f||[],g=0,h=e.f.length;h>g;g++)if(e.f[g]==b){c=!0;break}!c&&e.f.push(b)}(c[d]);return function(a){+a==+a&&(b.zIndex=+a)}},m.f=function(a){var b=[].slice.call(arguments,1);return function(){m.apply(null,[a,null].concat(b).concat([].slice.call(arguments,0)))}},m.stop=function(){c=1},m.nt=function(a){return a?new RegExp("(?:\\.|\\/|^)"+a+"(?:\\.|\\/|$)").test(b):b},m.nts=function(){return b.split(f)},m.off=m.unbind=function(a,b){if(!a)return void(m._events=j={n:{}});var c=a.split(g);if(c.length>1)for(var d=0,i=c.length;i>d;d++)m.off(c[d],b);else{c=a.split(f);var k,l,n,d,i,o,p,q=[j];for(d=0,i=c.length;i>d;d++)for(o=0;od;d++)for(k=q[d];k.n;){if(b){if(k.f){for(o=0,p=k.f.length;p>o;o++)if(k.f[o]==b){k.f.splice(o,1);break}!k.f.length&&delete k.f}for(l in k.n)if(k.n[e](l)&&k.n[l].f){var r=k.n[l].f;for(o=0,p=r.length;p>o;o++)if(r[o]==b){r.splice(o,1);break}!r.length&&delete k.n[l].f}}else{delete k.f;for(l in k.n)k.n[e](l)&&k.n[l].f&&delete k.n[l].f}k=k.n}}},m.once=function(a,b){var c=function(){return m.unbind(a,c),b.apply(this,arguments)};return m.on(a,c)},m.version=d,m.toString=function(){return"You are running Eve "+d},"undefined"!=typeof module&&module.exports?module.exports=m:"function"==typeof define&&define.amd?define("eve",[],function(){return m}):a.eve=m}(this),function(a,b){if("function"==typeof define&&define.amd)define(["eve"],function(c){return b(a,c)});else if("undefined"!=typeof exports){var c=require("eve");module.exports=b(a,c)}else b(a,a.eve)}(window||this,function(a,b){var c=function(b){var c={},d=a.requestAnimationFrame||a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame||a.msRequestAnimationFrame||function(a){setTimeout(a,16)},e=Array.isArray||function(a){return a instanceof Array||"[object Array]"==Object.prototype.toString.call(a)},f=0,g="M"+(+new Date).toString(36),h=function(){return g+(f++).toString(36)},i=Date.now||function(){return+new Date},j=function(a){var b=this;if(null==a)return b.s;var c=b.s-a;b.b+=b.dur*c,b.B+=b.dur*c,b.s=a},k=function(a){var b=this;return null==a?b.spd:void(b.spd=a)},l=function(a){var b=this;return null==a?b.dur:(b.s=b.s*a/b.dur,void(b.dur=a))},m=function(){var a=this;delete c[a.id],a.update(),b("mina.stop."+a.id,a)},n=function(){var a=this;a.pdif||(delete c[a.id],a.update(),a.pdif=a.get()-a.b)},o=function(){var a=this;a.pdif&&(a.b=a.get()-a.pdif,delete a.pdif,c[a.id]=a)},p=function(){var a,b=this;if(e(b.start)){a=[];for(var c=0,d=b.start.length;d>c;c++)a[c]=+b.start[c]+(b.end[c]-b.start[c])*b.easing(b.s)}else a=+b.start+(b.end-b.start)*b.easing(b.s);b.set(a)},q=function(){var a=0;for(var e in c)if(c.hasOwnProperty(e)){var f=c[e],g=f.get();a++,f.s=(g-f.b)/(f.dur/f.spd),f.s>=1&&(delete c[e],f.s=1,a--,function(a){setTimeout(function(){b("mina.finish."+a.id,a)})}(f)),f.update()}a&&d(q)},r=function(a,b,e,f,g,i,s){var t={id:h(),start:a,end:b,b:e,s:0,dur:f-e,spd:1,get:g,set:i,easing:s||r.linear,status:j,speed:k,duration:l,stop:m,pause:n,resume:o,update:p};c[t.id]=t;var u,v=0;for(u in c)if(c.hasOwnProperty(u)&&(v++,2==v))break;return 1==v&&d(q),t};return r.time=i,r.getById=function(a){return c[a]||null},r.linear=function(a){return a},r.easeout=function(a){return Math.pow(a,1.7)},r.easein=function(a){return Math.pow(a,.48)},r.easeinout=function(a){if(1==a)return 1;if(0==a)return 0;var b=.48-a/1.04,c=Math.sqrt(.1734+b*b),d=c-b,e=Math.pow(Math.abs(d),1/3)*(0>d?-1:1),f=-c-b,g=Math.pow(Math.abs(f),1/3)*(0>f?-1:1),h=e+g+.5;return 3*(1-h)*h*h+h*h*h},r.backin=function(a){if(1==a)return 1;var b=1.70158;return a*a*((b+1)*a-b)},r.backout=function(a){if(0==a)return 0;a-=1;var b=1.70158;return a*a*((b+1)*a+b)+1},r.elastic=function(a){return a==!!a?a:Math.pow(2,-10*a)*Math.sin(2*(a-.075)*Math.PI/.3)+1},r.bounce=function(a){var b,c=7.5625,d=2.75;return 1/d>a?b=c*a*a:2/d>a?(a-=1.5/d,b=c*a*a+.75):2.5/d>a?(a-=2.25/d,b=c*a*a+.9375):(a-=2.625/d,b=c*a*a+.984375),b},a.mina=r,r}("undefined"==typeof b?function(){}:b),d=function(a){function c(a,b){if(a){if(a.nodeType)return w(a);if(e(a,"array")&&c.set)return c.set.apply(c,a);if(a instanceof s)return a;if(null==b)return a=y.doc.querySelector(String(a)),w(a)}return a=null==a?"100%":a,b=null==b?"100%":b,new v(a,b)}function d(a,b){if(b){if("#text"==a&&(a=y.doc.createTextNode(b.text||b["#text"]||"")),"#comment"==a&&(a=y.doc.createComment(b.text||b["#text"]||"")),"string"==typeof a&&(a=d(a)),"string"==typeof b)return 1==a.nodeType?"xlink:"==b.substring(0,6)?a.getAttributeNS(T,b.substring(6)):"xml:"==b.substring(0,4)?a.getAttributeNS(U,b.substring(4)):a.getAttribute(b):"text"==b?a.nodeValue:null;if(1==a.nodeType){for(var c in b)if(b[z](c)){var e=A(b[c]);e?"xlink:"==c.substring(0,6)?a.setAttributeNS(T,c.substring(6),e):"xml:"==c.substring(0,4)?a.setAttributeNS(U,c.substring(4),e):a.setAttribute(c,e):a.removeAttribute(c)}}else"text"in b&&(a.nodeValue=b.text)}else a=y.doc.createElementNS(U,a);return a}function e(a,b){return b=A.prototype.toLowerCase.call(b),"finite"==b?isFinite(a):"array"==b&&(a instanceof Array||Array.isArray&&Array.isArray(a))?!0:"null"==b&&null===a||b==typeof a&&null!==a||"object"==b&&a===Object(a)||J.call(a).slice(8,-1).toLowerCase()==b}function f(a){if("function"==typeof a||Object(a)!==a)return a;var b=new a.constructor;for(var c in a)a[z](c)&&(b[c]=f(a[c]));return b}function h(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return a.push(a.splice(c,1)[0])}function i(a,b,c){function d(){var e=Array.prototype.slice.call(arguments,0),f=e.join("␀"),g=d.cache=d.cache||{},i=d.count=d.count||[];return g[z](f)?(h(i,f),c?c(g[f]):g[f]):(i.length>=1e3&&delete g[i.shift()],i.push(f),g[f]=a.apply(b,e),c?c(g[f]):g[f])}return d}function j(a,b,c,d,e,f){if(null==e){var g=a-c,h=b-d;return g||h?(180+180*D.atan2(-h,-g)/H+360)%360:0}return j(a,b,e,f)-j(c,d,e,f)}function k(a){return a%360*H/180}function l(a){return 180*a/H%360}function m(a){var b=[];return a=a.replace(/(?:^|\s)(\w+)\(([^)]+)\)/g,function(a,c,d){return d=d.split(/\s*,\s*|\s+/),"rotate"==c&&1==d.length&&d.push(0,0),"scale"==c&&(d.length>2?d=d.slice(0,2):2==d.length&&d.push(0,0),1==d.length&&d.push(d[0],0,0)),b.push("skewX"==c?["m",1,0,D.tan(k(d[0])),1,0,0]:"skewY"==c?["m",1,D.tan(k(d[0])),0,1,0,0]:[c.charAt(0)].concat(d)),a}),b}function n(a,b){var d=ab(a),e=new c.Matrix;if(d)for(var f=0,g=d.length;g>f;f++){var h,i,j,k,l,m=d[f],n=m.length,o=A(m[0]).toLowerCase(),p=m[0]!=o,q=p?e.invert():0;"t"==o&&2==n?e.translate(m[1],0):"t"==o&&3==n?p?(h=q.x(0,0),i=q.y(0,0),j=q.x(m[1],m[2]),k=q.y(m[1],m[2]),e.translate(j-h,k-i)):e.translate(m[1],m[2]):"r"==o?2==n?(l=l||b,e.rotate(m[1],l.x+l.width/2,l.y+l.height/2)):4==n&&(p?(j=q.x(m[2],m[3]),k=q.y(m[2],m[3]),e.rotate(m[1],j,k)):e.rotate(m[1],m[2],m[3])):"s"==o?2==n||3==n?(l=l||b,e.scale(m[1],m[n-1],l.x+l.width/2,l.y+l.height/2)):4==n?p?(j=q.x(m[2],m[3]),k=q.y(m[2],m[3]),e.scale(m[1],m[1],j,k)):e.scale(m[1],m[1],m[2],m[3]):5==n&&(p?(j=q.x(m[3],m[4]),k=q.y(m[3],m[4]),e.scale(m[1],m[2],j,k)):e.scale(m[1],m[2],m[3],m[4])):"m"==o&&7==n&&e.add(m[1],m[2],m[3],m[4],m[5],m[6])}return e}function o(a){var b=a.node.ownerSVGElement&&w(a.node.ownerSVGElement)||a.node.parentNode&&w(a.node.parentNode)||c.select("svg")||c(0,0),d=b.select("defs"),e=null==d?!1:d.node;return e||(e=u("defs",b.node).node),e}function p(a){return a.node.ownerSVGElement&&w(a.node.ownerSVGElement)||c.select("svg")}function q(a,b,c){function e(a){if(null==a)return I;if(a==+a)return a;d(j,{width:a});try{return j.getBBox().width}catch(b){return 0}}function f(a){if(null==a)return I;if(a==+a)return a;d(j,{height:a});try{return j.getBBox().height}catch(b){return 0}}function g(d,e){null==b?i[d]=e(a.attr(d)||0):d==b&&(i=e(null==c?a.attr(d)||0:c))}var h=p(a).node,i={},j=h.querySelector(".svg---mgr");switch(j||(j=d("rect"),d(j,{x:-9e9,y:-9e9,width:10,height:10,"class":"svg---mgr",fill:"none"}),h.appendChild(j)),a.type){case"rect":g("rx",e),g("ry",f);case"image":g("width",e),g("height",f);case"text":g("x",e),g("y",f);break;case"circle":g("cx",e),g("cy",f),g("r",e);break;case"ellipse":g("cx",e),g("cy",f),g("rx",e),g("ry",f);break;case"line":g("x1",e),g("x2",e),g("y1",f),g("y2",f);break;case"marker":g("refX",e),g("markerWidth",e),g("refY",f),g("markerHeight",f);break;case"radialGradient":g("fx",e),g("fy",f);break;case"tspan":g("dx",e),g("dy",f);break;default:g(b,e)}return h.removeChild(j),i}function r(a){e(a,"array")||(a=Array.prototype.slice.call(arguments,0));for(var b=0,c=0,d=this.node;this[b];)delete this[b++];for(b=0;bc;c++){var e={type:a[c].type,attr:a[c].attr()},f=a[c].children();b.push(e),f.length&&x(f,e.childNodes=[])}}c.version="0.4.0",c.toString=function(){return"Snap v"+this.version},c._={};var y={win:a.window,doc:a.window.document};c._.glob=y;{var z="hasOwnProperty",A=String,B=parseFloat,C=parseInt,D=Math,E=D.max,F=D.min,G=D.abs,H=(D.pow,D.PI),I=(D.round,""),J=Object.prototype.toString,K=/^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?%?)\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?%?)\s*\))\s*$/i,L=(c._.separator=/[,\s]+/,/[\s]*,[\s]*/),M={hs:1,rg:1},N=/([a-z])[\s,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\s]*,?[\s]*)+)/gi,O=/([rstm])[\s,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\s]*,?[\s]*)+)/gi,P=/(-?\d*\.?\d*(?:e[\-+]?\\d+)?)[\s]*,?[\s]*/gi,Q=0,R="S"+(+new Date).toString(36),S=function(a){return(a&&a.type?a.type:I)+R+(Q++).toString(36)},T="http://www.w3.org/1999/xlink",U="http://www.w3.org/2000/svg",V={};c.url=function(a){return"url('#"+a+"')"}}c._.$=d,c._.id=S,c.format=function(){var a=/\{([^\}]+)\}/g,b=/(?:(?:^|\.)(.+?)(?=\[|\.|$|\()|\[('|")(.+?)\2\])(\(\))?/g,c=function(a,c,d){var e=d;return c.replace(b,function(a,b,c,d,f){b=b||d,e&&(b in e&&(e=e[b]),"function"==typeof e&&f&&(e=e()))}),e=(null==e||e==d?a:e)+""};return function(b,d){return A(b).replace(a,function(a,b){return c(a,b,d)})}}(),c._.clone=f,c._.cacher=i,c.rad=k,c.deg=l,c.sin=function(a){return D.sin(c.rad(a))},c.tan=function(a){return D.tan(c.rad(a))},c.cos=function(a){return D.cos(c.rad(a))},c.asin=function(a){return c.deg(D.asin(a))},c.acos=function(a){return c.deg(D.acos(a))},c.atan=function(a){return c.deg(D.atan(a))},c.atan2=function(a){return c.deg(D.atan2(a))},c.angle=j,c.len=function(a,b,d,e){return Math.sqrt(c.len2(a,b,d,e))},c.len2=function(a,b,c,d){return(a-c)*(a-c)+(b-d)*(b-d)},c.closestPoint=function(a,b,c){function d(a){var d=a.x-b,e=a.y-c;return d*d+e*e}for(var e,f,g,h,i=a.node,j=i.getTotalLength(),k=j/i.pathSegList.numberOfItems*.125,l=1/0,m=0;j>=m;m+=k)(h=d(g=i.getPointAtLength(m))).5;){var n,o,p,q,r,s;(p=f-k)>=0&&(r=d(n=i.getPointAtLength(p)))f)return b-f;if(f>a-c)return b-f+a}return b},c.getRGB=i(function(a){if(!a||(a=A(a)).indexOf("-")+1)return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:Z};if("none"==a)return{r:-1,g:-1,b:-1,hex:"none",toString:Z};if(!(M[z](a.toLowerCase().substring(0,2))||"#"==a.charAt())&&(a=W(a)),!a)return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:Z};var b,d,f,g,h,i,j=a.match(K);return j?(j[2]&&(f=C(j[2].substring(5),16),d=C(j[2].substring(3,5),16),b=C(j[2].substring(1,3),16)),j[3]&&(f=C((h=j[3].charAt(3))+h,16),d=C((h=j[3].charAt(2))+h,16),b=C((h=j[3].charAt(1))+h,16)),j[4]&&(i=j[4].split(L),b=B(i[0]),"%"==i[0].slice(-1)&&(b*=2.55),d=B(i[1]),"%"==i[1].slice(-1)&&(d*=2.55),f=B(i[2]),"%"==i[2].slice(-1)&&(f*=2.55),"rgba"==j[1].toLowerCase().slice(0,4)&&(g=B(i[3])),i[3]&&"%"==i[3].slice(-1)&&(g/=100)),j[5]?(i=j[5].split(L),b=B(i[0]),"%"==i[0].slice(-1)&&(b/=100),d=B(i[1]),"%"==i[1].slice(-1)&&(d/=100),f=B(i[2]),"%"==i[2].slice(-1)&&(f/=100),("deg"==i[0].slice(-3)||"°"==i[0].slice(-1))&&(b/=360),"hsba"==j[1].toLowerCase().slice(0,4)&&(g=B(i[3])),i[3]&&"%"==i[3].slice(-1)&&(g/=100),c.hsb2rgb(b,d,f,g)):j[6]?(i=j[6].split(L),b=B(i[0]),"%"==i[0].slice(-1)&&(b/=100),d=B(i[1]),"%"==i[1].slice(-1)&&(d/=100),f=B(i[2]),"%"==i[2].slice(-1)&&(f/=100),("deg"==i[0].slice(-3)||"°"==i[0].slice(-1))&&(b/=360),"hsla"==j[1].toLowerCase().slice(0,4)&&(g=B(i[3])),i[3]&&"%"==i[3].slice(-1)&&(g/=100),c.hsl2rgb(b,d,f,g)):(b=F(D.round(b),255),d=F(D.round(d),255),f=F(D.round(f),255),g=F(E(g,0),1),j={r:b,g:d,b:f,toString:Z},j.hex="#"+(16777216|f|d<<8|b<<16).toString(16).slice(1),j.opacity=e(g,"finite")?g:1,j)):{r:-1,g:-1,b:-1,hex:"none",error:1,toString:Z}},c),c.hsb=i(function(a,b,d){return c.hsb2rgb(a,b,d).hex}),c.hsl=i(function(a,b,d){return c.hsl2rgb(a,b,d).hex}),c.rgb=i(function(a,b,c,d){if(e(d,"finite")){var f=D.round;return"rgba("+[f(a),f(b),f(c),+d.toFixed(2)]+")"}return"#"+(16777216|c|b<<8|a<<16).toString(16).slice(1)});var W=function(a){var b=y.doc.getElementsByTagName("head")[0]||y.doc.getElementsByTagName("svg")[0],c="rgb(255, 0, 0)";return(W=i(function(a){if("red"==a.toLowerCase())return c;b.style.color=c,b.style.color=a;var d=y.doc.defaultView.getComputedStyle(b,I).getPropertyValue("color");return d==c?null:d}))(a)},X=function(){return"hsb("+[this.h,this.s,this.b]+")"},Y=function(){return"hsl("+[this.h,this.s,this.l]+")"},Z=function(){return 1==this.opacity||null==this.opacity?this.hex:"rgba("+[this.r,this.g,this.b,this.opacity]+")"},$=function(a,b,d){if(null==b&&e(a,"object")&&"r"in a&&"g"in a&&"b"in a&&(d=a.b,b=a.g,a=a.r),null==b&&e(a,string)){var f=c.getRGB(a);a=f.r,b=f.g,d=f.b}return(a>1||b>1||d>1)&&(a/=255,b/=255,d/=255),[a,b,d]},_=function(a,b,d,f){a=D.round(255*a),b=D.round(255*b),d=D.round(255*d);var g={r:a,g:b,b:d,opacity:e(f,"finite")?f:1,hex:c.rgb(a,b,d),toString:Z};return e(f,"finite")&&(g.opacity=f),g};c.color=function(a){var b;return e(a,"object")&&"h"in a&&"s"in a&&"b"in a?(b=c.hsb2rgb(a),a.r=b.r,a.g=b.g,a.b=b.b,a.opacity=1,a.hex=b.hex):e(a,"object")&&"h"in a&&"s"in a&&"l"in a?(b=c.hsl2rgb(a),a.r=b.r,a.g=b.g,a.b=b.b,a.opacity=1,a.hex=b.hex):(e(a,"string")&&(a=c.getRGB(a)),e(a,"object")&&"r"in a&&"g"in a&&"b"in a&&!("error"in a)?(b=c.rgb2hsl(a),a.h=b.h,a.s=b.s,a.l=b.l,b=c.rgb2hsb(a),a.v=b.b):(a={hex:"none"},a.r=a.g=a.b=a.h=a.s=a.v=a.l=-1,a.error=1)),a.toString=Z,a},c.hsb2rgb=function(a,b,c,d){e(a,"object")&&"h"in a&&"s"in a&&"b"in a&&(c=a.b,b=a.s,d=a.o,a=a.h),a*=360;var f,g,h,i,j;return a=a%360/60,j=c*b,i=j*(1-G(a%2-1)),f=g=h=c-j,a=~~a,f+=[j,i,0,0,i,j][a],g+=[i,j,j,i,0,0][a],h+=[0,0,i,j,j,i][a],_(f,g,h,d)},c.hsl2rgb=function(a,b,c,d){e(a,"object")&&"h"in a&&"s"in a&&"l"in a&&(c=a.l,b=a.s,a=a.h),(a>1||b>1||c>1)&&(a/=360,b/=100,c/=100),a*=360;var f,g,h,i,j;return a=a%360/60,j=2*b*(.5>c?c:1-c),i=j*(1-G(a%2-1)),f=g=h=c-j/2,a=~~a,f+=[j,i,0,0,i,j][a],g+=[i,j,j,i,0,0][a],h+=[0,0,i,j,j,i][a],_(f,g,h,d)},c.rgb2hsb=function(a,b,c){c=$(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g;return f=E(a,b,c),g=f-F(a,b,c),d=0==g?null:f==a?(b-c)/g:f==b?(c-a)/g+2:(a-b)/g+4,d=(d+360)%6*60/360,e=0==g?0:g/f,{h:d,s:e,b:f,toString:X}},c.rgb2hsl=function(a,b,c){c=$(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g,h,i;return g=E(a,b,c),h=F(a,b,c),i=g-h,d=0==i?null:g==a?(b-c)/i:g==b?(c-a)/i+2:(a-b)/i+4,d=(d+360)%6*60/360,f=(g+h)/2,e=0==i?0:.5>f?i/(2*f):i/(2-2*f),{h:d,s:e,l:f,toString:Y}},c.parsePathString=function(a){if(!a)return null;var b=c.path(a);if(b.arr)return c.path.clone(b.arr);var d={a:7,c:6,o:2,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,u:3,z:0},f=[];return e(a,"array")&&e(a[0],"array")&&(f=c.path.clone(a)),f.length||A(a).replace(N,function(a,b,c){var e=[],g=b.toLowerCase();if(c.replace(P,function(a,b){b&&e.push(+b)}),"m"==g&&e.length>2&&(f.push([b].concat(e.splice(0,2))),g="l",b="m"==b?"l":"L"),"o"==g&&1==e.length&&f.push([b,e[0]]),"r"==g)f.push([b].concat(e));else for(;e.length>=d[g]&&(f.push([b].concat(e.splice(0,d[g]))),d[g]););}),f.toString=c.path.toString,b.arr=c.path.clone(f),f};var ab=c.parseTransformString=function(a){if(!a)return null;var b=[];return e(a,"array")&&e(a[0],"array")&&(b=c.path.clone(a)),b.length||A(a).replace(O,function(a,c,d){{var e=[];c.toLowerCase()}d.replace(P,function(a,b){b&&e.push(+b)}),b.push([c].concat(e))}),b.toString=c.path.toString,b};c._.svgTransform2string=m,c._.rgTransform=/^[a-z][\s]*-?\.?\d/i,c._.transform2matrix=n,c._unit2px=q;y.doc.contains||y.doc.compareDocumentPosition?function(a,b){var c=9==a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a==d||!(!d||1!=d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)for(;b;)if(b=b.parentNode,b==a)return!0;return!1};c._.getSomeDefs=o,c._.getSomeSVG=p,c.select=function(a){return a=A(a).replace(/([^\\]):/g,"$1\\:"),w(y.doc.querySelector(a))},c.selectAll=function(a){for(var b=y.doc.querySelectorAll(a),d=(c.set||Array)(),e=0;ei;i++)h[g[i].nodeName]=g[i].nodeValue;return h}if(e(a,"string")){if(!(arguments.length>1))return b("snap.util.getattr."+a,d).firstDefined();var k={};k[a]=c,a=k}for(var l in a)a[z](l)&&b("snap.util.attr."+l,d,a[l]);return d},c.parse=function(a){var b=y.doc.createDocumentFragment(),c=!0,d=y.doc.createElement("div");if(a=A(a),a.match(/^\s*<\s*svg(?:\s|>)/)||(a=""+a+"",c=!1),d.innerHTML=a,a=d.getElementsByTagName("svg")[0])if(c)b=a;else for(;a.firstChild;)b.appendChild(a.firstChild);return new t(b)},c.fragment=function(){for(var a=Array.prototype.slice.call(arguments,0),b=y.doc.createDocumentFragment(),d=0,e=a.length;e>d;d++){var f=a[d];f.node&&f.node.nodeType&&b.appendChild(f.node),f.nodeType&&b.appendChild(f),"string"==typeof f&&b.appendChild(c.parse(f).node)}return new t(b)},c._.make=u,c._.wrap=w,v.prototype.el=function(a,b){var c=u(a,this.node);return b&&c.attr(b),c},s.prototype.children=function(){for(var a=[],b=this.node.childNodes,d=0,e=b.length;e>d;d++)a[d]=c(b[d]);return a},s.prototype.toJSON=function(){var a=[];return x([this],a),a[0]},b.on("snap.util.getattr",function(){var a=b.nt();a=a.substring(a.lastIndexOf(".")+1);var c=a.replace(/[A-Z]/g,function(a){return"-"+a.toLowerCase()});return bb[z](c)?this.node.ownerDocument.defaultView.getComputedStyle(this.node,null).getPropertyValue(c):d(this.node,a)});var bb={"alignment-baseline":0,"baseline-shift":0,clip:0,"clip-path":0,"clip-rule":0,color:0,"color-interpolation":0,"color-interpolation-filters":0,"color-profile":0,"color-rendering":0,cursor:0,direction:0,display:0,"dominant-baseline":0,"enable-background":0,fill:0,"fill-opacity":0,"fill-rule":0,filter:0,"flood-color":0,"flood-opacity":0,font:0,"font-family":0,"font-size":0,"font-size-adjust":0,"font-stretch":0,"font-style":0,"font-variant":0,"font-weight":0,"glyph-orientation-horizontal":0,"glyph-orientation-vertical":0,"image-rendering":0,kerning:0,"letter-spacing":0,"lighting-color":0,marker:0,"marker-end":0,"marker-mid":0,"marker-start":0,mask:0,opacity:0,overflow:0,"pointer-events":0,"shape-rendering":0,"stop-color":0,"stop-opacity":0,stroke:0,"stroke-dasharray":0,"stroke-dashoffset":0,"stroke-linecap":0,"stroke-linejoin":0,"stroke-miterlimit":0,"stroke-opacity":0,"stroke-width":0,"text-anchor":0,"text-decoration":0,"text-rendering":0,"unicode-bidi":0,visibility:0,"word-spacing":0,"writing-mode":0};b.on("snap.util.attr",function(a){var c=b.nt(),e={};c=c.substring(c.lastIndexOf(".")+1),e[c]=a;var f=c.replace(/-(\w)/gi,function(a,b){return b.toUpperCase()}),g=c.replace(/[A-Z]/g,function(a){return"-"+a.toLowerCase()});bb[z](g)?this.node.style[f]=null==a?I:a:d(this.node,e)}),function(){}(v.prototype),c.ajax=function(a,c,d,f){var g=new XMLHttpRequest,h=S();if(g){if(e(c,"function"))f=d,d=c,c=null;else if(e(c,"object")){var i=[];for(var j in c)c.hasOwnProperty(j)&&i.push(encodeURIComponent(j)+"="+encodeURIComponent(c[j]));c=i.join("&")}return g.open(c?"POST":"GET",a,!0),c&&(g.setRequestHeader("X-Requested-With","XMLHttpRequest"),g.setRequestHeader("Content-type","application/x-www-form-urlencoded")),d&&(b.once("snap.ajax."+h+".0",d),b.once("snap.ajax."+h+".200",d),b.once("snap.ajax."+h+".304",d)),g.onreadystatechange=function(){4==g.readyState&&b("snap.ajax."+h+"."+g.status,f,g)},4==g.readyState?g:(g.send(c),g)}},c.load=function(a,b,d){c.ajax(a,function(a){var e=c.parse(a.responseText);d?b.call(d,e):b(e)})};var cb=function(a){var b=a.getBoundingClientRect(),c=a.ownerDocument,d=c.body,e=c.documentElement,f=e.clientTop||d.clientTop||0,h=e.clientLeft||d.clientLeft||0,i=b.top+(g.win.pageYOffset||e.scrollTop||d.scrollTop)-f,j=b.left+(g.win.pageXOffset||e.scrollLeft||d.scrollLeft)-h;return{y:i,x:j}};return c.getElementByPoint=function(a,b){var c=this,d=(c.canvas,y.doc.elementFromPoint(a,b));if(y.win.opera&&"svg"==d.tagName){var e=cb(d),f=d.createSVGRect();f.x=a-e.x,f.y=b-e.y,f.width=f.height=1;var g=d.getIntersectionList(f,null);g.length&&(d=g[g.length-1])}return d?w(d):null},c.plugin=function(a){a(c,s,v,y,t)},y.win.Snap=c,c}(a||this);return d.plugin(function(d,e,f,g,h){function i(a,b){if(null==b){var c=!0;if(b=a.node.getAttribute("linearGradient"==a.type||"radialGradient"==a.type?"gradientTransform":"pattern"==a.type?"patternTransform":"transform"),!b)return new d.Matrix;b=d._.svgTransform2string(b)}else b=d._.rgTransform.test(b)?o(b).replace(/\.{3}|\u2026/g,a._.transform||""):d._.svgTransform2string(b),n(b,"array")&&(b=d.path?d.path.toString.call(b):o(b)),a._.transform=b;var e=d._.transform2matrix(b,a.getBBox(1));return c?e:void(a.matrix=e)}function j(a){function b(a,b){var c=q(a.node,b);c=c&&c.match(f),c=c&&c[2],c&&"#"==c.charAt()&&(c=c.substring(1),c&&(h[c]=(h[c]||[]).concat(function(c){var d={};d[b]=URL(c),q(a.node,d)})))}function c(a){var b=q(a.node,"xlink:href");b&&"#"==b.charAt()&&(b=b.substring(1),b&&(h[b]=(h[b]||[]).concat(function(b){a.attr("xlink:href","#"+b)})))}for(var d,e=a.selectAll("*"),f=/^\s*url\(("|'|)(.*)\1\)\s*$/,g=[],h={},i=0,j=e.length;j>i;i++){d=e[i],b(d,"fill"),b(d,"stroke"),b(d,"filter"),b(d,"mask"),b(d,"clip-path"),c(d);var k=q(d.node,"id");k&&(q(d.node,{id:d.id}),g.push({old:k,id:d.id}))}for(i=0,j=g.length;j>i;i++){var l=h[g[i].old];if(l)for(var m=0,n=l.length;n>m;m++)l[m](g[i].id)}}function k(a,b,c){return function(d){var e=d.slice(a,b);return 1==e.length&&(e=e[0]),c?c(e):e}}function l(a){return function(){var b=a?"<"+this.type:"",c=this.node.attributes,d=this.node.childNodes;if(a)for(var e=0,f=c.length;f>e;e++)b+=" "+c[e].name+'="'+c[e].value.replace(/"/g,'\\"')+'"';if(d.length){for(a&&(b+=">"),e=0,f=d.length;f>e;e++)3==d[e].nodeType?b+=d[e].nodeValue:1==d[e].nodeType&&(b+=u(d[e]).toString());a&&(b+="")}else a&&(b+="/>");return b}}var m=e.prototype,n=d.is,o=String,p=d._unit2px,q=d._.$,r=d._.make,s=d._.getSomeDefs,t="hasOwnProperty",u=d._.wrap;m.getBBox=function(a){if(!d.Matrix||!d.path)return this.node.getBBox();var b=this,c=new d.Matrix;if(b.removed)return d._.box();for(;"use"==b.type;)if(a||(c=c.add(b.transform().localMatrix.translate(b.attr("x")||0,b.attr("y")||0))),b.original)b=b.original;else{var e=b.attr("xlink:href");b=b.original=b.node.ownerDocument.getElementById(e.substring(e.indexOf("#")+1))}var f=b._,g=d.path.get[b.type]||d.path.get.deflt;try{return a?(f.bboxwt=g?d.path.getBBox(b.realPath=g(b)):d._.box(b.node.getBBox()),d._.box(f.bboxwt)):(b.realPath=g(b),b.matrix=b.transform().localMatrix,f.bbox=d.path.getBBox(d.path.map(b.realPath,c.add(b.matrix))),d._.box(f.bbox))}catch(h){return d._.box()}};var v=function(){return this.string};m.transform=function(a){var b=this._;if(null==a){for(var c,e=this,f=new d.Matrix(this.node.getCTM()),g=i(this),h=[g],j=new d.Matrix,k=g.toTransformString(),l=o(g)==o(this.matrix)?o(b.transform):k;"svg"!=e.type&&(e=e.parent());)h.push(i(e));for(c=h.length;c--;)j.add(h[c]);return{string:l,globalMatrix:f,totalMatrix:j,localMatrix:g,diffMatrix:f.clone().add(g.invert()),global:f.toTransformString(),total:j.toTransformString(),local:k,toString:v}}return a instanceof d.Matrix?(this.matrix=a,this._.transform=a.toTransformString()):i(this,a),this.node&&("linearGradient"==this.type||"radialGradient"==this.type?q(this.node,{gradientTransform:this.matrix}):"pattern"==this.type?q(this.node,{patternTransform:this.matrix}):q(this.node,{transform:this.matrix})),this},m.parent=function(){return u(this.node.parentNode)},m.append=m.add=function(a){if(a){if("set"==a.type){var b=this;return a.forEach(function(a){b.add(a)}),this}a=u(a),this.node.appendChild(a.node),a.paper=this.paper}return this},m.appendTo=function(a){return a&&(a=u(a),a.append(this)),this},m.prepend=function(a){if(a){if("set"==a.type){var b,c=this;return a.forEach(function(a){b?b.after(a):c.prepend(a),b=a}),this}a=u(a);var d=a.parent();this.node.insertBefore(a.node,this.node.firstChild),this.add&&this.add(),a.paper=this.paper,this.parent()&&this.parent().add(),d&&d.add()}return this},m.prependTo=function(a){return a=u(a),a.prepend(this),this},m.before=function(a){if("set"==a.type){var b=this;return a.forEach(function(a){var c=a.parent();b.node.parentNode.insertBefore(a.node,b.node),c&&c.add()}),this.parent().add(),this}a=u(a);var c=a.parent();return this.node.parentNode.insertBefore(a.node,this.node),this.parent()&&this.parent().add(),c&&c.add(),a.paper=this.paper,this},m.after=function(a){a=u(a);var b=a.parent();return this.node.nextSibling?this.node.parentNode.insertBefore(a.node,this.node.nextSibling):this.node.parentNode.appendChild(a.node),this.parent()&&this.parent().add(),b&&b.add(),a.paper=this.paper,this},m.insertBefore=function(a){a=u(a);var b=this.parent();return a.node.parentNode.insertBefore(this.node,a.node),this.paper=a.paper,b&&b.add(),a.parent()&&a.parent().add(),this},m.insertAfter=function(a){a=u(a);var b=this.parent();return a.node.parentNode.insertBefore(this.node,a.node.nextSibling),this.paper=a.paper,b&&b.add(),a.parent()&&a.parent().add(),this},m.remove=function(){var a=this.parent();return this.node.parentNode&&this.node.parentNode.removeChild(this.node),delete this.paper,this.removed=!0,a&&a.add(),this},m.select=function(a){return u(this.node.querySelector(a))},m.selectAll=function(a){for(var b=this.node.querySelectorAll(a),c=(d.set||Array)(),e=0;eb;b++)a[b].stop();return this},m.animate=function(a,d,e,f){"function"!=typeof e||e.length||(f=e,e=c.linear),a instanceof w&&(f=a.callback,e=a.easing,d=a.dur,a=a.attr);var g,h,i,j,l=[],m=[],p={},q=this;for(var r in a)if(a[t](r)){q.equal?(j=q.equal(r,o(a[r])),g=j.from,h=j.to,i=j.f):(g=+q.attr(r),h=+a[r]);var s=n(g,"array")?g.length:1;p[r]=k(l.length,l.length+s,i),l=l.concat(g),m=m.concat(h)}var u=c.time(),v=c(l,m,u,u+d,c.time,function(a){var b={};for(var c in p)p[t](c)&&(b[c]=p[c](a));q.attr(b)},e);return q.anims[v.id]=v,v._attrs=a,v._callback=f,b("snap.animcreated."+q.id,v),b.once("mina.finish."+v.id,function(){delete q.anims[v.id],f&&f.call(q)}),b.once("mina.stop."+v.id,function(){delete q.anims[v.id]}),q};var x={};m.data=function(a,c){var e=x[this.id]=x[this.id]||{};if(0==arguments.length)return b("snap.data.get."+this.id,this,e,null),e; +if(1==arguments.length){if(d.is(a,"object")){for(var f in a)a[t](f)&&this.data(f,a[f]);return this}return b("snap.data.get."+this.id,this,e[a],a),e[a]}return e[a]=c,b("snap.data.set."+this.id,this,c,a),this},m.removeData=function(a){return null==a?x[this.id]={}:x[this.id]&&delete x[this.id][a],this},m.outerSVG=m.toString=l(1),m.innerSVG=l(),m.toDataURL=function(){if(a&&a.btoa){var b=this.getBBox(),c=d.format('{contents}',{x:+b.x.toFixed(3),y:+b.y.toFixed(3),width:+b.width.toFixed(3),height:+b.height.toFixed(3),contents:this.outerSVG()});return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(c)))}},h.prototype.select=m.select,h.prototype.selectAll=m.selectAll}),d.plugin(function(a){function b(a,b,d,e,f,g){return null==b&&"[object SVGMatrix]"==c.call(a)?(this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.e=a.e,void(this.f=a.f)):void(null!=a?(this.a=+a,this.b=+b,this.c=+d,this.d=+e,this.e=+f,this.f=+g):(this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0))}var c=Object.prototype.toString,d=String,e=Math,f="";!function(c){function g(a){return a[0]*a[0]+a[1]*a[1]}function h(a){var b=e.sqrt(g(a));a[0]&&(a[0]/=b),a[1]&&(a[1]/=b)}c.add=function(a,c,d,e,f,g){var h,i,j,k,l=[[],[],[]],m=[[this.a,this.c,this.e],[this.b,this.d,this.f],[0,0,1]],n=[[a,d,f],[c,e,g],[0,0,1]];for(a&&a instanceof b&&(n=[[a.a,a.c,a.e],[a.b,a.d,a.f],[0,0,1]]),h=0;3>h;h++)for(i=0;3>i;i++){for(k=0,j=0;3>j;j++)k+=m[h][j]*n[j][i];l[h][i]=k}return this.a=l[0][0],this.b=l[1][0],this.c=l[0][1],this.d=l[1][1],this.e=l[0][2],this.f=l[1][2],this},c.invert=function(){var a=this,c=a.a*a.d-a.b*a.c;return new b(a.d/c,-a.b/c,-a.c/c,a.a/c,(a.c*a.f-a.d*a.e)/c,(a.b*a.e-a.a*a.f)/c)},c.clone=function(){return new b(this.a,this.b,this.c,this.d,this.e,this.f)},c.translate=function(a,b){return this.add(1,0,0,1,a,b)},c.scale=function(a,b,c,d){return null==b&&(b=a),(c||d)&&this.add(1,0,0,1,c,d),this.add(a,0,0,b,0,0),(c||d)&&this.add(1,0,0,1,-c,-d),this},c.rotate=function(b,c,d){b=a.rad(b),c=c||0,d=d||0;var f=+e.cos(b).toFixed(9),g=+e.sin(b).toFixed(9);return this.add(f,g,-g,f,c,d),this.add(1,0,0,1,-c,-d)},c.x=function(a,b){return a*this.a+b*this.c+this.e},c.y=function(a,b){return a*this.b+b*this.d+this.f},c.get=function(a){return+this[d.fromCharCode(97+a)].toFixed(4)},c.toString=function(){return"matrix("+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)].join()+")"},c.offset=function(){return[this.e.toFixed(4),this.f.toFixed(4)]},c.determinant=function(){return this.a*this.d-this.b*this.c},c.split=function(){var b={};b.dx=this.e,b.dy=this.f;var c=[[this.a,this.c],[this.b,this.d]];b.scalex=e.sqrt(g(c[0])),h(c[0]),b.shear=c[0][0]*c[1][0]+c[0][1]*c[1][1],c[1]=[c[1][0]-c[0][0]*b.shear,c[1][1]-c[0][1]*b.shear],b.scaley=e.sqrt(g(c[1])),h(c[1]),b.shear/=b.scaley,this.determinant()<0&&(b.scalex=-b.scalex);var d=-c[0][1],f=c[1][1];return 0>f?(b.rotate=a.deg(e.acos(f)),0>d&&(b.rotate=360-b.rotate)):b.rotate=a.deg(e.asin(d)),b.isSimple=!(+b.shear.toFixed(9)||b.scalex.toFixed(9)!=b.scaley.toFixed(9)&&b.rotate),b.isSuperSimple=!+b.shear.toFixed(9)&&b.scalex.toFixed(9)==b.scaley.toFixed(9)&&!b.rotate,b.noRotation=!+b.shear.toFixed(9)&&!b.rotate,b},c.toTransformString=function(a){var b=a||this.split();return+b.shear.toFixed(9)?"m"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)]:(b.scalex=+b.scalex.toFixed(4),b.scaley=+b.scaley.toFixed(4),b.rotate=+b.rotate.toFixed(4),(b.dx||b.dy?"t"+[+b.dx.toFixed(4),+b.dy.toFixed(4)]:f)+(1!=b.scalex||1!=b.scaley?"s"+[b.scalex,b.scaley,0,0]:f)+(b.rotate?"r"+[+b.rotate.toFixed(4),0,0]:f))}}(b.prototype),a.Matrix=b,a.matrix=function(a,c,d,e,f,g){return new b(a,c,d,e,f,g)}}),d.plugin(function(a,c,d,e,f){function g(d){return function(e){if(b.stop(),e instanceof f&&1==e.node.childNodes.length&&("radialGradient"==e.node.firstChild.tagName||"linearGradient"==e.node.firstChild.tagName||"pattern"==e.node.firstChild.tagName)&&(e=e.node.firstChild,n(this).appendChild(e),e=l(e)),e instanceof c)if("radialGradient"==e.type||"linearGradient"==e.type||"pattern"==e.type){e.node.id||p(e.node,{id:e.id});var g=q(e.node.id)}else g=e.attr(d);else if(g=a.color(e),g.error){var h=a(n(this).ownerSVGElement).gradient(e);h?(h.node.id||p(h.node,{id:h.id}),g=q(h.node.id)):g=e}else g=r(g);var i={};i[d]=g,p(this.node,i),this.node.style[d]=t}}function h(a){b.stop(),a==+a&&(a+="px"),this.node.style.fontSize=a}function i(a){for(var b=[],c=a.childNodes,d=0,e=c.length;e>d;d++){var f=c[d];3==f.nodeType&&b.push(f.nodeValue),"tspan"==f.tagName&&b.push(1==f.childNodes.length&&3==f.firstChild.nodeType?f.firstChild.nodeValue:i(f))}return b}function j(){return b.stop(),this.node.style.fontSize}var k=a._.make,l=a._.wrap,m=a.is,n=a._.getSomeDefs,o=/^url\(#?([^)]+)\)$/,p=a._.$,q=a.url,r=String,s=a._.separator,t="";b.on("snap.util.attr.mask",function(a){if(a instanceof c||a instanceof f){if(b.stop(),a instanceof f&&1==a.node.childNodes.length&&(a=a.node.firstChild,n(this).appendChild(a),a=l(a)),"mask"==a.type)var d=a;else d=k("mask",n(this)),d.node.appendChild(a.node);!d.node.id&&p(d.node,{id:d.id}),p(this.node,{mask:q(d.id)})}}),function(a){b.on("snap.util.attr.clip",a),b.on("snap.util.attr.clip-path",a),b.on("snap.util.attr.clipPath",a)}(function(a){if(a instanceof c||a instanceof f){if(b.stop(),"clipPath"==a.type)var d=a;else d=k("clipPath",n(this)),d.node.appendChild(a.node),!d.node.id&&p(d.node,{id:d.id});p(this.node,{"clip-path":q(d.node.id||d.id)})}}),b.on("snap.util.attr.fill",g("fill")),b.on("snap.util.attr.stroke",g("stroke"));var u=/^([lr])(?:\(([^)]*)\))?(.*)$/i;b.on("snap.util.grad.parse",function(a){a=r(a);var b=a.match(u);if(!b)return null;var c=b[1],d=b[2],e=b[3];return d=d.split(/\s*,\s*/).map(function(a){return+a==a?+a:a}),1==d.length&&0==d[0]&&(d=[]),e=e.split("-"),e=e.map(function(a){a=a.split(":");var b={color:a[0]};return a[1]&&(b.offset=parseFloat(a[1])),b}),{type:c,params:d,stops:e}}),b.on("snap.util.attr.d",function(c){b.stop(),m(c,"array")&&m(c[0],"array")&&(c=a.path.toString.call(c)),c=r(c),c.match(/[ruo]/i)&&(c=a.path.toAbsolute(c)),p(this.node,{d:c})})(-1),b.on("snap.util.attr.#text",function(a){b.stop(),a=r(a);for(var c=e.doc.createTextNode(a);this.node.firstChild;)this.node.removeChild(this.node.firstChild);this.node.appendChild(c)})(-1),b.on("snap.util.attr.path",function(a){b.stop(),this.attr({d:a})})(-1),b.on("snap.util.attr.class",function(a){b.stop(),this.node.className.baseVal=a})(-1),b.on("snap.util.attr.viewBox",function(a){var c;c=m(a,"object")&&"x"in a?[a.x,a.y,a.width,a.height].join(" "):m(a,"array")?a.join(" "):a,p(this.node,{viewBox:c}),b.stop()})(-1),b.on("snap.util.attr.transform",function(a){this.transform(a),b.stop()})(-1),b.on("snap.util.attr.r",function(a){"rect"==this.type&&(b.stop(),p(this.node,{rx:a,ry:a}))})(-1),b.on("snap.util.attr.textpath",function(a){if(b.stop(),"text"==this.type){var d,e,f;if(!a&&this.textPath){for(e=this.textPath;e.node.firstChild;)this.node.appendChild(e.node.firstChild);return e.remove(),void delete this.textPath}if(m(a,"string")){var g=n(this),h=l(g.parentNode).path(a);g.appendChild(h.node),d=h.id,h.attr({id:d})}else a=l(a),a instanceof c&&(d=a.attr("id"),d||(d=a.id,a.attr({id:d})));if(d)if(e=this.textPath,f=this.node,e)e.attr({"xlink:href":"#"+d});else{for(e=p("textPath",{"xlink:href":"#"+d});f.firstChild;)e.appendChild(f.firstChild);f.appendChild(e),this.textPath=l(e)}}})(-1),b.on("snap.util.attr.text",function(a){if("text"==this.type){for(var c=this.node,d=function(a){var b=p("tspan");if(m(a,"array"))for(var c=0;c1&&(a=Array.prototype.slice.call(arguments,0));var b={};return h(a,"object")&&!h(a,"array")?b=a:null!=a&&(b={points:a}),this.el("polyline",b)},g.polygon=function(a){arguments.length>1&&(a=Array.prototype.slice.call(arguments,0));var b={};return h(a,"object")&&!h(a,"array")?b=a:null!=a&&(b={points:a}),this.el("polygon",b)},function(){function d(){return this.selectAll("stop")}function e(a,b){var d=k("stop"),e={offset:+b+"%"};return a=c.color(a),e["stop-color"]=a.hex,a.opacity<1&&(e["stop-opacity"]=a.opacity),k(d,e),this.node.appendChild(d),this}function f(){if("linearGradient"==this.type){var a=k(this.node,"x1")||0,b=k(this.node,"x2")||1,d=k(this.node,"y1")||0,e=k(this.node,"y2")||0;return c._.box(a,d,math.abs(b-a),math.abs(e-d))}var f=this.node.cx||.5,g=this.node.cy||.5,h=this.node.r||0;return c._.box(f-h,g-h,2*h,2*h)}function h(a,c){function d(a,b){for(var c=(b-l)/(a-m),d=m;a>d;d++)g[d].offset=+(+l+c*(d-m)).toFixed(2);m=a,l=b}var e,f=b("snap.util.grad.parse",null,c).firstDefined();if(!f)return null;f.params.unshift(a),e="l"==f.type.toLowerCase()?i.apply(0,f.params):j.apply(0,f.params),f.type!=f.type.toLowerCase()&&k(e.node,{gradientUnits:"userSpaceOnUse"});var g=f.stops,h=g.length,l=0,m=0;h--;for(var n=0;h>n;n++)"offset"in g[n]&&d(n,g[n].offset);for(g[h].offset=g[h].offset||100,d(h,g[h].offset),n=0;h>=n;n++){var o=g[n];e.addStop(o.color,o.offset)}return e}function i(a,b,g,h,i){var j=c._.make("linearGradient",a);return j.stops=d,j.addStop=e,j.getBBox=f,null!=b&&k(j.node,{x1:b,y1:g,x2:h,y2:i}),j}function j(a,b,g,h,i,j){var l=c._.make("radialGradient",a);return l.stops=d,l.addStop=e,l.getBBox=f,null!=b&&k(l.node,{cx:b,cy:g,r:h}),null!=i&&null!=j&&k(l.node,{fx:i,fy:j}),l}var k=c._.$;g.gradient=function(a){return h(this.defs,a)},g.gradientLinear=function(a,b,c,d){return i(this.defs,a,b,c,d)},g.gradientRadial=function(a,b,c,d,e){return j(this.defs,a,b,c,d,e)},g.toString=function(){var a,b=this.node.ownerDocument,d=b.createDocumentFragment(),e=b.createElement("div"),f=this.node.cloneNode(!0);return d.appendChild(e),e.appendChild(f),c._.$(f,{xmlns:"http://www.w3.org/2000/svg"}),a=e.innerHTML,d.removeChild(d.firstChild),a},g.toDataURL=function(){return a&&a.btoa?"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(this))):void 0},g.clear=function(){for(var a,b=this.node.firstChild;b;)a=b.nextSibling,"defs"!=b.tagName?b.parentNode.removeChild(b):g.clear.call({node:b}),b=a}}()}),d.plugin(function(a,b){function c(a){var b=c.ps=c.ps||{};return b[a]?b[a].sleep=100:b[a]={sleep:100},setTimeout(function(){for(var c in b)b[K](c)&&c!=a&&(b[c].sleep--,!b[c].sleep&&delete b[c])}),b[a]}function d(a,b,c,d){return null==a&&(a=b=c=d=0),null==b&&(b=a.y,c=a.width,d=a.height,a=a.x),{x:a,y:b,width:c,w:c,height:d,h:d,x2:a+c,y2:b+d,cx:a+c/2,cy:b+d/2,r1:N.min(c,d)/2,r2:N.max(c,d)/2,r0:N.sqrt(c*c+d*d)/2,path:w(a,b,c,d),vb:[a,b,c,d].join(" ")}}function e(){return this.join(",").replace(L,"$1")}function f(a){var b=J(a);return b.toString=e,b}function g(a,b,c,d,e,f,g,h,j){return null==j?n(a,b,c,d,e,f,g,h):i(a,b,c,d,e,f,g,h,o(a,b,c,d,e,f,g,h,j))}function h(c,d){function e(a){return+(+a).toFixed(3)}return a._.cacher(function(a,f,h){a instanceof b&&(a=a.attr("d")),a=E(a);for(var j,k,l,m,n,o="",p={},q=0,r=0,s=a.length;s>r;r++){if(l=a[r],"M"==l[0])j=+l[1],k=+l[2];else{if(m=g(j,k,l[1],l[2],l[3],l[4],l[5],l[6]),q+m>f){if(d&&!p.start){if(n=g(j,k,l[1],l[2],l[3],l[4],l[5],l[6],f-q),o+=["C"+e(n.start.x),e(n.start.y),e(n.m.x),e(n.m.y),e(n.x),e(n.y)],h)return o;p.start=o,o=["M"+e(n.x),e(n.y)+"C"+e(n.n.x),e(n.n.y),e(n.end.x),e(n.end.y),e(l[5]),e(l[6])].join(),q+=m,j=+l[5],k=+l[6];continue}if(!c&&!d)return n=g(j,k,l[1],l[2],l[3],l[4],l[5],l[6],f-q)}q+=m,j=+l[5],k=+l[6]}o+=l.shift()+l}return p.end=o,n=c?q:d?p:i(j,k,l[0],l[1],l[2],l[3],l[4],l[5],1)},null,a._.clone)}function i(a,b,c,d,e,f,g,h,i){var j=1-i,k=R(j,3),l=R(j,2),m=i*i,n=m*i,o=k*a+3*l*i*c+3*j*i*i*e+n*g,p=k*b+3*l*i*d+3*j*i*i*f+n*h,q=a+2*i*(c-a)+m*(e-2*c+a),r=b+2*i*(d-b)+m*(f-2*d+b),s=c+2*i*(e-c)+m*(g-2*e+c),t=d+2*i*(f-d)+m*(h-2*f+d),u=j*a+i*c,v=j*b+i*d,w=j*e+i*g,x=j*f+i*h,y=90-180*N.atan2(q-s,r-t)/O;return{x:o,y:p,m:{x:q,y:r},n:{x:s,y:t},start:{x:u,y:v},end:{x:w,y:x},alpha:y}}function j(b,c,e,f,g,h,i,j){a.is(b,"array")||(b=[b,c,e,f,g,h,i,j]);var k=D.apply(null,b);return d(k.min.x,k.min.y,k.max.x-k.min.x,k.max.y-k.min.y)}function k(a,b,c){return b>=a.x&&b<=a.x+a.width&&c>=a.y&&c<=a.y+a.height}function l(a,b){return a=d(a),b=d(b),k(b,a.x,a.y)||k(b,a.x2,a.y)||k(b,a.x,a.y2)||k(b,a.x2,a.y2)||k(a,b.x,b.y)||k(a,b.x2,b.y)||k(a,b.x,b.y2)||k(a,b.x2,b.y2)||(a.xb.x||b.xa.x)&&(a.yb.y||b.ya.y)}function m(a,b,c,d,e){var f=-3*b+9*c-9*d+3*e,g=a*f+6*b-12*c+6*d;return a*g-3*b+3*c}function n(a,b,c,d,e,f,g,h,i){null==i&&(i=1),i=i>1?1:0>i?0:i;for(var j=i/2,k=12,l=[-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816],n=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472],o=0,p=0;k>p;p++){var q=j*l[p]+j,r=m(q,a,c,e,g),s=m(q,b,d,f,h),t=r*r+s*s;o+=n[p]*N.sqrt(t)}return j*o}function o(a,b,c,d,e,f,g,h,i){if(!(0>i||n(a,b,c,d,e,f,g,h)o;)l/=2,m+=(i>j?1:-1)*l,j=n(a,b,c,d,e,f,g,h,m);return m}}function p(a,b,c,d,e,f,g,h){if(!(Q(a,c)Q(e,g)||Q(b,d)Q(f,h))){var i=(a*d-b*c)*(e-g)-(a-c)*(e*h-f*g),j=(a*d-b*c)*(f-h)-(b-d)*(e*h-f*g),k=(a-c)*(f-h)-(b-d)*(e-g);if(k){var l=i/k,m=j/k,n=+l.toFixed(2),o=+m.toFixed(2);if(!(n<+P(a,c).toFixed(2)||n>+Q(a,c).toFixed(2)||n<+P(e,g).toFixed(2)||n>+Q(e,g).toFixed(2)||o<+P(b,d).toFixed(2)||o>+Q(b,d).toFixed(2)||o<+P(f,h).toFixed(2)||o>+Q(f,h).toFixed(2)))return{x:l,y:m}}}}function q(a,b,c){var d=j(a),e=j(b);if(!l(d,e))return c?0:[];for(var f=n.apply(0,a),g=n.apply(0,b),h=~~(f/8),k=~~(g/8),m=[],o=[],q={},r=c?0:[],s=0;h+1>s;s++){var t=i.apply(0,a.concat(s/h));m.push({x:t.x,y:t.y,t:s/h})}for(s=0;k+1>s;s++)t=i.apply(0,b.concat(s/k)),o.push({x:t.x,y:t.y,t:s/k});for(s=0;h>s;s++)for(var u=0;k>u;u++){var v=m[s],w=m[s+1],x=o[u],y=o[u+1],z=S(w.x-v.x)<.001?"y":"x",A=S(y.x-x.x)<.001?"y":"x",B=p(v.x,v.y,w.x,w.y,x.x,x.y,y.x,y.y);if(B){if(q[B.x.toFixed(4)]==B.y.toFixed(4))continue;q[B.x.toFixed(4)]=B.y.toFixed(4);var C=v.t+S((B[z]-v[z])/(w[z]-v[z]))*(w.t-v.t),D=x.t+S((B[A]-x[A])/(y[A]-x[A]))*(y.t-x.t);C>=0&&1>=C&&D>=0&&1>=D&&(c?r++:r.push({x:B.x,y:B.y,t1:C,t2:D}))}}return r}function r(a,b){return t(a,b)}function s(a,b){return t(a,b,1)}function t(a,b,c){a=E(a),b=E(b);for(var d,e,f,g,h,i,j,k,l,m,n=c?0:[],o=0,p=a.length;p>o;o++){var r=a[o];if("M"==r[0])d=h=r[1],e=i=r[2];else{"C"==r[0]?(l=[d,e].concat(r.slice(1)),d=l[6],e=l[7]):(l=[d,e,d,e,h,i,h,i],d=h,e=i);for(var s=0,t=b.length;t>s;s++){var u=b[s];if("M"==u[0])f=j=u[1],g=k=u[2];else{"C"==u[0]?(m=[f,g].concat(u.slice(1)),f=m[6],g=m[7]):(m=[f,g,f,g,j,k,j,k],f=j,g=k);var v=q(l,m,c);if(c)n+=v;else{for(var w=0,x=v.length;x>w;w++)v[w].segment1=o,v[w].segment2=s,v[w].bez1=l,v[w].bez2=m;n=n.concat(v)}}}}}return n}function u(a,b,c){var d=v(a);return k(d,b,c)&&t(a,[["M",b,c],["H",d.x2+10]],1)%2==1}function v(a){var b=c(a);if(b.bbox)return J(b.bbox);if(!a)return d();a=E(a);for(var e,f=0,g=0,h=[],i=[],j=0,k=a.length;k>j;j++)if(e=a[j],"M"==e[0])f=e[1],g=e[2],h.push(f),i.push(g);else{var l=D(f,g,e[1],e[2],e[3],e[4],e[5],e[6]);h=h.concat(l.min.x,l.max.x),i=i.concat(l.min.y,l.max.y),f=e[5],g=e[6]}var m=P.apply(0,h),n=P.apply(0,i),o=Q.apply(0,h),p=Q.apply(0,i),q=d(m,n,o-m,p-n);return b.bbox=J(q),q}function w(a,b,c,d,f){if(f)return[["M",+a+ +f,b],["l",c-2*f,0],["a",f,f,0,0,1,f,f],["l",0,d-2*f],["a",f,f,0,0,1,-f,f],["l",2*f-c,0],["a",f,f,0,0,1,-f,-f],["l",0,2*f-d],["a",f,f,0,0,1,f,-f],["z"]];var g=[["M",a,b],["l",c,0],["l",0,d],["l",-c,0],["z"]];return g.toString=e,g}function x(a,b,c,d,f){if(null==f&&null==d&&(d=c),a=+a,b=+b,c=+c,d=+d,null!=f)var g=Math.PI/180,h=a+c*Math.cos(-d*g),i=a+c*Math.cos(-f*g),j=b+c*Math.sin(-d*g),k=b+c*Math.sin(-f*g),l=[["M",h,j],["A",c,c,0,+(f-d>180),0,i,k]];else l=[["M",a,b],["m",0,-d],["a",c,d,0,1,1,0,2*d],["a",c,d,0,1,1,0,-2*d],["z"]];return l.toString=e,l}function y(b){var d=c(b),g=String.prototype.toLowerCase;if(d.rel)return f(d.rel);a.is(b,"array")&&a.is(b&&b[0],"array")||(b=a.parsePathString(b));var h=[],i=0,j=0,k=0,l=0,m=0;"M"==b[0][0]&&(i=b[0][1],j=b[0][2],k=i,l=j,m++,h.push(["M",i,j]));for(var n=m,o=b.length;o>n;n++){var p=h[n]=[],q=b[n];if(q[0]!=g.call(q[0]))switch(p[0]=g.call(q[0]),p[0]){case"a":p[1]=q[1],p[2]=q[2],p[3]=q[3],p[4]=q[4],p[5]=q[5],p[6]=+(q[6]-i).toFixed(3),p[7]=+(q[7]-j).toFixed(3);break;case"v":p[1]=+(q[1]-j).toFixed(3);break;case"m":k=q[1],l=q[2];default:for(var r=1,s=q.length;s>r;r++)p[r]=+(q[r]-(r%2?i:j)).toFixed(3)}else{p=h[n]=[],"m"==q[0]&&(k=q[1]+i,l=q[2]+j);for(var t=0,u=q.length;u>t;t++)h[n][t]=q[t]}var v=h[n].length;switch(h[n][0]){case"z":i=k,j=l;break;case"h":i+=+h[n][v-1];break;case"v":j+=+h[n][v-1];break;default:i+=+h[n][v-2],j+=+h[n][v-1]}}return h.toString=e,d.rel=f(h),h}function z(b){var d=c(b);if(d.abs)return f(d.abs);if(I(b,"array")&&I(b&&b[0],"array")||(b=a.parsePathString(b)),!b||!b.length)return[["M",0,0]];var g,h=[],i=0,j=0,k=0,l=0,m=0;"M"==b[0][0]&&(i=+b[0][1],j=+b[0][2],k=i,l=j,m++,h[0]=["M",i,j]);for(var n,o,p=3==b.length&&"M"==b[0][0]&&"R"==b[1][0].toUpperCase()&&"Z"==b[2][0].toUpperCase(),q=m,r=b.length;r>q;q++){if(h.push(n=[]),o=b[q],g=o[0],g!=g.toUpperCase())switch(n[0]=g.toUpperCase(),n[0]){case"A":n[1]=o[1],n[2]=o[2],n[3]=o[3],n[4]=o[4],n[5]=o[5],n[6]=+o[6]+i,n[7]=+o[7]+j;break;case"V":n[1]=+o[1]+j;break;case"H":n[1]=+o[1]+i;break;case"R":for(var s=[i,j].concat(o.slice(1)),t=2,u=s.length;u>t;t++)s[t]=+s[t]+i,s[++t]=+s[t]+j;h.pop(),h=h.concat(G(s,p));break;case"O":h.pop(),s=x(i,j,o[1],o[2]),s.push(s[0]),h=h.concat(s);break;case"U":h.pop(),h=h.concat(x(i,j,o[1],o[2],o[3])),n=["U"].concat(h[h.length-1].slice(-2));break;case"M":k=+o[1]+i,l=+o[2]+j;default:for(t=1,u=o.length;u>t;t++)n[t]=+o[t]+(t%2?i:j)}else if("R"==g)s=[i,j].concat(o.slice(1)),h.pop(),h=h.concat(G(s,p)),n=["R"].concat(o.slice(-2));else if("O"==g)h.pop(),s=x(i,j,o[1],o[2]),s.push(s[0]),h=h.concat(s);else if("U"==g)h.pop(),h=h.concat(x(i,j,o[1],o[2],o[3])),n=["U"].concat(h[h.length-1].slice(-2));else for(var v=0,w=o.length;w>v;v++)n[v]=o[v];if(g=g.toUpperCase(),"O"!=g)switch(n[0]){case"Z":i=+k,j=+l;break;case"H":i=n[1];break;case"V":j=n[1];break;case"M":k=n[n.length-2],l=n[n.length-1];default:i=n[n.length-2],j=n[n.length-1]}}return h.toString=e,d.abs=f(h),h}function A(a,b,c,d){return[a,b,c,d,c,d]}function B(a,b,c,d,e,f){var g=1/3,h=2/3;return[g*a+h*c,g*b+h*d,g*e+h*c,g*f+h*d,e,f]}function C(b,c,d,e,f,g,h,i,j,k){var l,m=120*O/180,n=O/180*(+f||0),o=[],p=a._.cacher(function(a,b,c){var d=a*N.cos(c)-b*N.sin(c),e=a*N.sin(c)+b*N.cos(c);return{x:d,y:e}});if(k)y=k[0],z=k[1],w=k[2],x=k[3];else{l=p(b,c,-n),b=l.x,c=l.y,l=p(i,j,-n),i=l.x,j=l.y;var q=(N.cos(O/180*f),N.sin(O/180*f),(b-i)/2),r=(c-j)/2,s=q*q/(d*d)+r*r/(e*e);s>1&&(s=N.sqrt(s),d=s*d,e=s*e);var t=d*d,u=e*e,v=(g==h?-1:1)*N.sqrt(S((t*u-t*r*r-u*q*q)/(t*r*r+u*q*q))),w=v*d*r/e+(b+i)/2,x=v*-e*q/d+(c+j)/2,y=N.asin(((c-x)/e).toFixed(9)),z=N.asin(((j-x)/e).toFixed(9));y=w>b?O-y:y,z=w>i?O-z:z,0>y&&(y=2*O+y),0>z&&(z=2*O+z),h&&y>z&&(y-=2*O),!h&&z>y&&(z-=2*O)}var A=z-y;if(S(A)>m){var B=z,D=i,E=j;z=y+m*(h&&z>y?1:-1),i=w+d*N.cos(z),j=x+e*N.sin(z),o=C(i,j,d,e,f,0,h,D,E,[z,B,w,x])}A=z-y;var F=N.cos(y),G=N.sin(y),H=N.cos(z),I=N.sin(z),J=N.tan(A/4),K=4/3*d*J,L=4/3*e*J,M=[b,c],P=[b+K*G,c-L*F],Q=[i+K*I,j-L*H],R=[i,j];if(P[0]=2*M[0]-P[0],P[1]=2*M[1]-P[1],k)return[P,Q,R].concat(o);o=[P,Q,R].concat(o).join().split(",");for(var T=[],U=0,V=o.length;V>U;U++)T[U]=U%2?p(o[U-1],o[U],n).y:p(o[U],o[U+1],n).x;return T}function D(a,b,c,d,e,f,g,h){for(var i,j,k,l,m,n,o,p,q=[],r=[[],[]],s=0;2>s;++s)if(0==s?(j=6*a-12*c+6*e,i=-3*a+9*c-9*e+3*g,k=3*c-3*a):(j=6*b-12*d+6*f,i=-3*b+9*d-9*f+3*h,k=3*d-3*b),S(i)<1e-12){if(S(j)<1e-12)continue;l=-k/j,l>0&&1>l&&q.push(l)}else o=j*j-4*k*i,p=N.sqrt(o),0>o||(m=(-j+p)/(2*i),m>0&&1>m&&q.push(m),n=(-j-p)/(2*i),n>0&&1>n&&q.push(n));for(var t,u=q.length,v=u;u--;)l=q[u],t=1-l,r[0][u]=t*t*t*a+3*t*t*l*c+3*t*l*l*e+l*l*l*g,r[1][u]=t*t*t*b+3*t*t*l*d+3*t*l*l*f+l*l*l*h;return r[0][v]=a,r[1][v]=b,r[0][v+1]=g,r[1][v+1]=h,r[0].length=r[1].length=v+2,{min:{x:P.apply(0,r[0]),y:P.apply(0,r[1])},max:{x:Q.apply(0,r[0]),y:Q.apply(0,r[1])}}}function E(a,b){var d=!b&&c(a);if(!b&&d.curve)return f(d.curve);for(var e=z(a),g=b&&z(b),h={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},i={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},j=(function(a,b,c){var d,e;if(!a)return["C",b.x,b.y,b.x,b.y,b.x,b.y];switch(!(a[0]in{T:1,Q:1})&&(b.qx=b.qy=null),a[0]){case"M":b.X=a[1],b.Y=a[2];break;case"A":a=["C"].concat(C.apply(0,[b.x,b.y].concat(a.slice(1))));break;case"S":"C"==c||"S"==c?(d=2*b.x-b.bx,e=2*b.y-b.by):(d=b.x,e=b.y),a=["C",d,e].concat(a.slice(1));break;case"T":"Q"==c||"T"==c?(b.qx=2*b.x-b.qx,b.qy=2*b.y-b.qy):(b.qx=b.x,b.qy=b.y),a=["C"].concat(B(b.x,b.y,b.qx,b.qy,a[1],a[2]));break;case"Q":b.qx=a[1],b.qy=a[2],a=["C"].concat(B(b.x,b.y,a[1],a[2],a[3],a[4]));break;case"L":a=["C"].concat(A(b.x,b.y,a[1],a[2]));break;case"H":a=["C"].concat(A(b.x,b.y,a[1],b.y));break;case"V":a=["C"].concat(A(b.x,b.y,b.x,a[1]));break;case"Z":a=["C"].concat(A(b.x,b.y,b.X,b.Y))}return a}),k=function(a,b){if(a[b].length>7){a[b].shift();for(var c=a[b];c.length;)m[b]="A",g&&(n[b]="A"),a.splice(b++,0,["C"].concat(c.splice(0,6)));a.splice(b,1),r=Q(e.length,g&&g.length||0)}},l=function(a,b,c,d,f){a&&b&&"M"==a[f][0]&&"M"!=b[f][0]&&(b.splice(f,0,["M",d.x,d.y]),c.bx=0,c.by=0,c.x=a[f][1],c.y=a[f][2],r=Q(e.length,g&&g.length||0))},m=[],n=[],o="",p="",q=0,r=Q(e.length,g&&g.length||0);r>q;q++){e[q]&&(o=e[q][0]),"C"!=o&&(m[q]=o,q&&(p=m[q-1])),e[q]=j(e[q],h,p),"A"!=m[q]&&"C"==o&&(m[q]="C"),k(e,q),g&&(g[q]&&(o=g[q][0]),"C"!=o&&(n[q]=o,q&&(p=n[q-1])),g[q]=j(g[q],i,p),"A"!=n[q]&&"C"==o&&(n[q]="C"),k(g,q)),l(e,g,h,i,q),l(g,e,i,h,q);var s=e[q],t=g&&g[q],u=s.length,v=g&&t.length;h.x=s[u-2],h.y=s[u-1],h.bx=M(s[u-4])||h.x,h.by=M(s[u-3])||h.y,i.bx=g&&(M(t[v-4])||i.x),i.by=g&&(M(t[v-3])||i.y),i.x=g&&t[v-2],i.y=g&&t[v-1]}return g||(d.curve=f(e)),g?[e,g]:e}function F(a,b){if(!b)return a;var c,d,e,f,g,h,i;for(a=E(a),e=0,g=a.length;g>e;e++)for(i=a[e],f=1,h=i.length;h>f;f+=2)c=b.x(i[f],i[f+1]),d=b.y(i[f],i[f+1]),i[f]=c,i[f+1]=d;return a}function G(a,b){for(var c=[],d=0,e=a.length;e-2*!b>d;d+=2){var f=[{x:+a[d-2],y:+a[d-1]},{x:+a[d],y:+a[d+1]},{x:+a[d+2],y:+a[d+3]},{x:+a[d+4],y:+a[d+5]}];b?d?e-4==d?f[3]={x:+a[0],y:+a[1]}:e-2==d&&(f[2]={x:+a[0],y:+a[1]},f[3]={x:+a[2],y:+a[3]}):f[0]={x:+a[e-2],y:+a[e-1]}:e-4==d?f[3]=f[2]:d||(f[0]={x:+a[d],y:+a[d+1]}),c.push(["C",(-f[0].x+6*f[1].x+f[2].x)/6,(-f[0].y+6*f[1].y+f[2].y)/6,(f[1].x+6*f[2].x-f[3].x)/6,(f[1].y+6*f[2].y-f[3].y)/6,f[2].x,f[2].y])}return c}var H=b.prototype,I=a.is,J=a._.clone,K="hasOwnProperty",L=/,?([a-z]),?/gi,M=parseFloat,N=Math,O=N.PI,P=N.min,Q=N.max,R=N.pow,S=N.abs,T=h(1),U=h(),V=h(0,1),W=a._unit2px,X={path:function(a){return a.attr("path")},circle:function(a){var b=W(a);return x(b.cx,b.cy,b.r)},ellipse:function(a){var b=W(a);return x(b.cx||0,b.cy||0,b.rx,b.ry)},rect:function(a){var b=W(a);return w(b.x||0,b.y||0,b.width,b.height,b.rx,b.ry)},image:function(a){var b=W(a);return w(b.x||0,b.y||0,b.width,b.height)},line:function(a){return"M"+[a.attr("x1")||0,a.attr("y1")||0,a.attr("x2"),a.attr("y2")]},polyline:function(a){return"M"+a.attr("points")},polygon:function(a){return"M"+a.attr("points")+"z"},deflt:function(a){var b=a.node.getBBox();return w(b.x,b.y,b.width,b.height)}};a.path=c,a.path.getTotalLength=T,a.path.getPointAtLength=U,a.path.getSubpath=function(a,b,c){if(this.getTotalLength(a)-c<1e-6)return V(a,b).end;var d=V(a,c,1);return b?V(d,b).end:d},H.getTotalLength=function(){return this.node.getTotalLength?this.node.getTotalLength():void 0},H.getPointAtLength=function(a){return U(this.attr("d"),a)},H.getSubpath=function(b,c){return a.path.getSubpath(this.attr("d"),b,c)},a._.box=d,a.path.findDotsAtSegment=i,a.path.bezierBBox=j,a.path.isPointInsideBBox=k,a.closest=function(b,c,e,f){for(var g=100,h=d(b-g/2,c-g/2,g,g),i=[],j=e[0].hasOwnProperty("x")?function(a){return{x:e[a].x,y:e[a].y}}:function(a){return{x:e[a],y:f[a]}},l=0;1e6>=g&&!l;){for(var m=0,n=e.length;n>m;m++){var o=j(m);if(k(h,o.x,o.y)){l++,i.push(o);break}}l||(g*=2,h=d(b-g/2,c-g/2,g,g))}if(1e6!=g){var p,q=1/0;for(m=0,n=i.length;n>m;m++){var r=a.len(b,c,i[m].x,i[m].y);q>r&&(q=r,i[m].len=r,p=i[m])}return p}},a.path.isBBoxIntersect=l,a.path.intersection=r,a.path.intersectionNumber=s,a.path.isPointInside=u,a.path.getBBox=v,a.path.get=X,a.path.toRelative=y,a.path.toAbsolute=z,a.path.toCubic=E,a.path.map=F,a.path.toString=e,a.path.clone=f}),d.plugin(function(a){var d=Math.max,e=Math.min,f=function(a){if(this.items=[],this.bindings={},this.length=0,this.type="set",a)for(var b=0,c=a.length;c>b;b++)a[b]&&(this[this.items.length]=this.items[this.items.length]=a[b],this.length++)},g=f.prototype;g.push=function(){for(var a,b,c=0,d=arguments.length;d>c;c++)a=arguments[c],a&&(b=this.items.length,this[b]=this.items[b]=a,this.length++);return this},g.pop=function(){return this.length&&delete this[this.length--],this.items.pop()},g.forEach=function(a,b){for(var c=0,d=this.items.length;d>c;c++)if(a.call(b,this.items[c],c)===!1)return this;return this},g.animate=function(d,e,f,g){"function"!=typeof f||f.length||(g=f,f=c.linear),d instanceof a._.Animation&&(g=d.callback,f=d.easing,e=f.dur,d=d.attr);var h=arguments;if(a.is(d,"array")&&a.is(h[h.length-1],"array"))var i=!0;var j,k=function(){j?this.b=j:j=this.b},l=0,m=this,n=g&&function(){++l==m.length&&g.call(this) +};return this.forEach(function(a,c){b.once("snap.animcreated."+a.id,k),i?h[c]&&a.animate.apply(a,h[c]):a.animate(d,e,f,n)})},g.remove=function(){for(;this.length;)this.pop().remove();return this},g.bind=function(a,b,c){var d={};if("function"==typeof b)this.bindings[a]=b;else{var e=c||a;this.bindings[a]=function(a){d[e]=a,b.attr(d)}}return this},g.attr=function(a){var b={};for(var c in a)this.bindings[c]?this.bindings[c](a[c]):b[c]=a[c];for(var d=0,e=this.items.length;e>d;d++)this.items[d].attr(b);return this},g.clear=function(){for(;this.length;)this.pop()},g.splice=function(a,b){a=0>a?d(this.length+a,0):a,b=d(0,e(this.length-a,b));var c,g=[],h=[],i=[];for(c=2;cc;c++)h.push(this[a+c]);for(;cc?i[c]:g[c-j];for(c=this.items.length=this.length-=b-j;this[c];)delete this[c++];return new f(h)},g.exclude=function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]==a)return this.splice(b,1),!0;return!1},g.insertAfter=function(a){for(var b=this.items.length;b--;)this.items[b].insertAfter(a);return this},g.getBBox=function(){for(var a=[],b=[],c=[],f=[],g=this.items.length;g--;)if(!this.items[g].removed){var h=this.items[g].getBBox();a.push(h.x),b.push(h.y),c.push(h.x+h.width),f.push(h.y+h.height)}return a=e.apply(0,a),b=e.apply(0,b),c=d.apply(0,c),f=d.apply(0,f),{x:a,y:b,x2:c,y2:f,width:c-a,height:f-b,cx:a+(c-a)/2,cy:b+(f-b)/2}},g.clone=function(a){a=new f;for(var b=0,c=this.items.length;c>b;b++)a.push(this.items[b].clone());return a},g.toString=function(){return"Snap‘s set"},g.type="set",a.Set=f,a.set=function(){var a=new f;return arguments.length&&a.push.apply(a,Array.prototype.slice.call(arguments,0)),a}}),d.plugin(function(a,c){function d(a){var b=a[0];switch(b.toLowerCase()){case"t":return[b,0,0];case"m":return[b,1,0,0,1,0,0];case"r":return 4==a.length?[b,0,a[2],a[3]]:[b,0];case"s":return 5==a.length?[b,1,1,a[3],a[4]]:3==a.length?[b,1,1]:[b,1]}}function e(b,c,e){c=p(c).replace(/\.{3}|\u2026/g,b),b=a.parseTransformString(b)||[],c=a.parseTransformString(c)||[];for(var f,g,h,i,l=Math.max(b.length,c.length),m=[],n=[],o=0;l>o;o++){if(h=b[o]||d(c[o]),i=c[o]||d(h),h[0]!=i[0]||"r"==h[0].toLowerCase()&&(h[2]!=i[2]||h[3]!=i[3])||"s"==h[0].toLowerCase()&&(h[3]!=i[3]||h[4]!=i[4])){b=a._.transform2matrix(b,e()),c=a._.transform2matrix(c,e()),m=[["m",b.a,b.b,b.c,b.d,b.e,b.f]],n=[["m",c.a,c.b,c.c,c.d,c.e,c.f]];break}for(m[o]=[],n[o]=[],f=0,g=Math.max(h.length,i.length);g>f;f++)f in h&&(m[o][f]=h[f]),f in i&&(n[o][f]=i[f])}return{from:k(m),to:k(n),f:j(m)}}function f(a){return a}function g(a){return function(b){return+b.toFixed(3)+a}}function h(a){return a.join(" ")}function i(b){return a.rgb(b[0],b[1],b[2])}function j(a){var b,c,d,e,f,g,h=0,i=[];for(b=0,c=a.length;c>b;b++){for(f="[",g=['"'+a[b][0]+'"'],d=1,e=a[b].length;e>d;d++)g[d]="val["+h++ +"]";f+=g+"]",i[b]=f}return Function("val","return Snap.path.toString.call(["+i+"])")}function k(a){for(var b=[],c=0,d=a.length;d>c;c++)for(var e=1,f=a[c].length;f>e;e++)b.push(a[c][e]);return b}function l(a){return isFinite(parseFloat(a))}function m(b,c){return a.is(b,"array")&&a.is(c,"array")?b.toString()==c.toString():!1}var n={},o=/[a-z]+$/i,p=String;n.stroke=n.fill="colour",c.prototype.equal=function(a,c){return b("snap.util.equal",this,a,c).firstDefined()},b.on("snap.util.equal",function(b,c){var d,q,r=p(this.attr(b)||""),s=this;if(l(r)&&l(c))return{from:parseFloat(r),to:parseFloat(c),f:f};if("colour"==n[b])return d=a.color(r),q=a.color(c),{from:[d.r,d.g,d.b,d.opacity],to:[q.r,q.g,q.b,q.opacity],f:i};if("viewBox"==b)return d=this.attr(b).vb.split(" ").map(Number),q=c.split(" ").map(Number),{from:d,to:q,f:h};if("transform"==b||"gradientTransform"==b||"patternTransform"==b)return c instanceof a.Matrix&&(c=c.toTransformString()),a._.rgTransform.test(c)||(c=a._.svgTransform2string(c)),e(r,c,function(){return s.getBBox(1)});if("d"==b||"path"==b)return d=a.path.toCubic(r,c),{from:k(d[0]),to:k(d[1]),f:j(d[0])};if("points"==b)return d=p(r).split(a._.separator),q=p(c).split(a._.separator),{from:d,to:q,f:function(a){return a}};var t=r.match(o),u=p(c).match(o);return t&&m(t,u)?{from:parseFloat(r),to:parseFloat(c),f:g(t)}:{from:this.asPX(b),to:this.asPX(b,c),f:f}})}),d.plugin(function(a,c,d,e){for(var f=c.prototype,g="hasOwnProperty",h=("createTouch"in e.doc),i=["click","dblclick","mousedown","mousemove","mouseout","mouseover","mouseup","touchstart","touchmove","touchend","touchcancel"],j={mousedown:"touchstart",mousemove:"touchmove",mouseup:"touchend"},k=(function(a,b){var c="y"==a?"scrollTop":"scrollLeft",d=b&&b.node?b.node.ownerDocument:e.doc;return d[c in d.documentElement?"documentElement":"body"][c]}),l=function(){return this.originalEvent.preventDefault()},m=function(){return this.originalEvent.stopPropagation()},n=function(a,b,c,d){var e=h&&j[b]?j[b]:b,f=function(e){var f=k("y",d),i=k("x",d);if(h&&j[g](b))for(var n=0,o=e.targetTouches&&e.targetTouches.length;o>n;n++)if(e.targetTouches[n].target==a||a.contains(e.targetTouches[n].target)){var p=e;e=e.targetTouches[n],e.originalEvent=p,e.preventDefault=l,e.stopPropagation=m;break}var q=e.clientX+i,r=e.clientY+f;return c.call(d,e,q,r)};return b!==e&&a.addEventListener(b,f,!1),a.addEventListener(e,f,!1),function(){return b!==e&&a.removeEventListener(b,f,!1),a.removeEventListener(e,f,!1),!0}},o=[],p=function(a){for(var c,d=a.clientX,e=a.clientY,f=k("y"),g=k("x"),i=o.length;i--;){if(c=o[i],h){for(var j,l=a.touches&&a.touches.length;l--;)if(j=a.touches[l],j.identifier==c.el._drag.id||c.el.node.contains(j.target)){d=j.clientX,e=j.clientY,(a.originalEvent?a.originalEvent:a).preventDefault();break}}else a.preventDefault();{var m=c.el.node;m.nextSibling,m.parentNode,m.style.display}d+=g,e+=f,b("snap.drag.move."+c.el.id,c.move_scope||c.el,d-c.el._drag.x,e-c.el._drag.y,d,e,a)}},q=function(c){a.unmousemove(p).unmouseup(q);for(var d,e=o.length;e--;)d=o[e],d.el._drag={},b("snap.drag.end."+d.el.id,d.end_scope||d.start_scope||d.move_scope||d.el,c),b.off("snap.drag.*."+d.el.id);o=[]},r=i.length;r--;)!function(b){a[b]=f[b]=function(c,d){if(a.is(c,"function"))this.events=this.events||[],this.events.push({name:b,f:c,unbind:n(this.node||document,b,c,d||this)});else for(var e=0,f=this.events.length;f>e;e++)if(this.events[e].name==b)try{this.events[e].f.call(this)}catch(g){}return this},a["un"+b]=f["un"+b]=function(a){for(var c=this.events||[],d=c.length;d--;)if(c[d].name==b&&(c[d].f==a||!a))return c[d].unbind(),c.splice(d,1),!c.length&&delete this.events,this;return this}}(i[r]);f.hover=function(a,b,c,d){return this.mouseover(a,c).mouseout(b,d||c)},f.unhover=function(a,b){return this.unmouseover(a).unmouseout(b)};var s=[];f.drag=function(c,d,e,f,g,h){function i(i,j,l){(i.originalEvent||i).preventDefault(),k._drag.x=j,k._drag.y=l,k._drag.id=i.identifier,!o.length&&a.mousemove(p).mouseup(q),o.push({el:k,move_scope:f,start_scope:g,end_scope:h}),d&&b.on("snap.drag.start."+k.id,d),c&&b.on("snap.drag.move."+k.id,c),e&&b.on("snap.drag.end."+k.id,e),b("snap.drag.start."+k.id,g||f||k,j,l,i)}function j(a,c,d){b("snap.draginit."+k.id,k,a,c,d)}var k=this;if(!arguments.length){var l;return k.drag(function(a,b){this.attr({transform:l+(l?"T":"t")+[a,b]})},function(){l=this.transform().local})}return b.on("snap.draginit."+k.id,i),k._drag={},s.push({el:k,start:i,init:j}),k.mousedown(j),k},f.undrag=function(){for(var c=s.length;c--;)s[c].el==this&&(this.unmousedown(s[c].init),s.splice(c,1),b.unbind("snap.drag.*."+this.id),b.unbind("snap.draginit."+this.id));return!s.length&&a.unmousemove(p).unmouseup(q),this}}),d.plugin(function(a,c,d){var e=(c.prototype,d.prototype),f=/^\s*url\((.+)\)/,g=String,h=a._.$;a.filter={},e.filter=function(b){var d=this;"svg"!=d.type&&(d=d.paper);var e=a.parse(g(b)),f=a._.id(),i=(d.node.offsetWidth,d.node.offsetHeight,h("filter"));return h(i,{id:f,filterUnits:"userSpaceOnUse"}),i.appendChild(e.node),d.defs.appendChild(i),new c(i)},b.on("snap.util.getattr.filter",function(){b.stop();var c=h(this.node,"filter");if(c){var d=g(c).match(f);return d&&a.select(d[1])}}),b.on("snap.util.attr.filter",function(d){if(d instanceof c&&"filter"==d.type){b.stop();var e=d.node.id;e||(h(d.node,{id:d.id}),e=d.id),h(this.node,{filter:a.url(e)})}d&&"none"!=d||(b.stop(),this.node.removeAttribute("filter"))}),a.filter.blur=function(b,c){null==b&&(b=2);var d=null==c?b:[b,c];return a.format('',{def:d})},a.filter.blur.toString=function(){return this()},a.filter.shadow=function(b,c,d,e,f){return"string"==typeof d&&(e=d,f=e,d=4),"string"!=typeof e&&(f=e,e="#000"),e=e||"#000",null==d&&(d=4),null==f&&(f=1),null==b&&(b=0,c=2),null==c&&(c=b),e=a.color(e),a.format('',{color:e,dx:b,dy:c,blur:d,opacity:f})},a.filter.shadow.toString=function(){return this()},a.filter.grayscale=function(b){return null==b&&(b=1),a.format('',{a:.2126+.7874*(1-b),b:.7152-.7152*(1-b),c:.0722-.0722*(1-b),d:.2126-.2126*(1-b),e:.7152+.2848*(1-b),f:.0722-.0722*(1-b),g:.2126-.2126*(1-b),h:.0722+.9278*(1-b)})},a.filter.grayscale.toString=function(){return this()},a.filter.sepia=function(b){return null==b&&(b=1),a.format('',{a:.393+.607*(1-b),b:.769-.769*(1-b),c:.189-.189*(1-b),d:.349-.349*(1-b),e:.686+.314*(1-b),f:.168-.168*(1-b),g:.272-.272*(1-b),h:.534-.534*(1-b),i:.131+.869*(1-b)})},a.filter.sepia.toString=function(){return this()},a.filter.saturate=function(b){return null==b&&(b=1),a.format('',{amount:1-b})},a.filter.saturate.toString=function(){return this()},a.filter.hueRotate=function(b){return b=b||0,a.format('',{angle:b})},a.filter.hueRotate.toString=function(){return this()},a.filter.invert=function(b){return null==b&&(b=1),a.format('',{amount:b,amount2:1-b})},a.filter.invert.toString=function(){return this()},a.filter.brightness=function(b){return null==b&&(b=1),a.format('',{amount:b})},a.filter.brightness.toString=function(){return this()},a.filter.contrast=function(b){return null==b&&(b=1),a.format('',{amount:b,amount2:.5-b/2})},a.filter.contrast.toString=function(){return this()}}),d.plugin(function(a,b){var c=a._.box,d=a.is,e=/^[^a-z]*([tbmlrc])/i,f=function(){return"T"+this.dx+","+this.dy};b.prototype.getAlign=function(a,b){null==b&&d(a,"string")&&(b=a,a=null),a=a||this.paper;var g=a.getBBox?a.getBBox():c(a),h=this.getBBox(),i={};switch(b=b&&b.match(e),b=b?b[1].toLowerCase():"c"){case"t":i.dx=0,i.dy=g.y-h.y;break;case"b":i.dx=0,i.dy=g.y2-h.y2;break;case"m":i.dx=0,i.dy=g.cy-h.cy;break;case"l":i.dx=g.x-h.x,i.dy=0;break;case"r":i.dx=g.x2-h.x2,i.dy=0;break;default:i.dx=g.cx-h.cx,i.dy=0}return i.toString=f,i},b.prototype.align=function(a,b){return this.transform("..."+this.getAlign(a,b))}}),d}); diff --git a/public/docs/assets/webfont.js b/public/docs/assets/webfont.js new file mode 100644 index 0000000..3a521de --- /dev/null +++ b/public/docs/assets/webfont.js @@ -0,0 +1,16 @@ +/* Web Font Loader v1.6.6 - (c) Adobe Systems, Google. License: Apache 2.0 */ +(function(){function aa(a,b,c){return a.call.apply(a.bind,arguments)}function ba(a,b,c){if(!a)throw Error();if(2parseInt(a[1],10)||536===parseInt(a[1],10)&&11>=parseInt(a[2],10))}return K}I.prototype.start=function(){this.s.serif=this.B.j.offsetWidth;this.s["sans-serif"]=this.C.j.offsetWidth;this.ea=p();M(this)};function N(a,b,c){for(var d in J)if(J.hasOwnProperty(d)&&b===a.s[J[d]]&&c===a.s[J[d]])return!0;return!1} +function M(a){var b=a.v.j.offsetWidth,c=a.w.j.offsetWidth,d;(d=b===a.s.serif&&c===a.s["sans-serif"])||(d=L()&&N(a,b,c));d?p()-a.ea>=a.M?L()&&N(a,b,c)&&(null===a.T||a.T.hasOwnProperty(a.g.getName()))?O(a,a.O):O(a,a.ba):ha(a):O(a,a.O)}function ha(a){setTimeout(n(function(){M(this)},a),50)}function O(a,b){setTimeout(n(function(){this.v.remove();this.w.remove();this.B.remove();this.C.remove();b(this.g)},a),0)};function P(a,b,c){this.a=a;this.o=b;this.K=0;this.X=this.S=!1;this.M=c}P.prototype.$=function(a){var b=this.o;b.u&&t(b.h,[b.e.d(b.f,a.getName(),B(a).toString(),"active")],[b.e.d(b.f,a.getName(),B(a).toString(),"loading"),b.e.d(b.f,a.getName(),B(a).toString(),"inactive")]);C(b,"fontactive",a);this.X=!0;Q(this)}; +P.prototype.aa=function(a){var b=this.o;if(b.u){var c=u(b.h,b.e.d(b.f,a.getName(),B(a).toString(),"active")),d=[],f=[b.e.d(b.f,a.getName(),B(a).toString(),"loading")];c||d.push(b.e.d(b.f,a.getName(),B(a).toString(),"inactive"));t(b.h,d,f)}C(b,"fontinactive",a);Q(this)};function Q(a){0==--a.K&&a.S&&(a.X?(a=a.o,a.u&&t(a.h,[a.e.d(a.f,"active")],[a.e.d(a.f,"loading"),a.e.d(a.f,"inactive")]),C(a,"active")):D(a.o))};function R(a){this.D=a;this.p=new fa;this.U=0;this.P=this.Q=!0}R.prototype.load=function(a){this.a=new r(this.D,a.context||this.D);this.Q=!1!==a.events;this.P=!1!==a.classes;ia(this,new da(this.a,a),a)}; +function ja(a,b,c,d,f){var e=0==--a.U;(a.P||a.Q)&&setTimeout(function(){var a=f||null,l=d||null||{};if(0===c.length&&e)D(b.o);else{b.K+=c.length;e&&(b.S=e);var h,k=[];for(h=0;h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Luxcena Neo Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + + + +
                + +
                + +
                + + + + +
                +
                + + +
                +
                +
                + +
                +
                +
                + + +
                +
                +
                + + +
                +
                +
                + + +
                +
                + + + +

                Luxcena-Neo

                +

                Dependencies dependencies StatusdevDependencies Status

                +

                Branch (dev) dependencies StatusdevDependencies Status

                +

                Install

                +

                Please refer to this guide for installing: Install Luxcena-neo.

                +

                Issues

                +
                  +
                • There might still be a bit hard for someone not having spent + hours looking at the source to use this software. + The hope is that it will be more useable for every new update.
                • +
                • Chrome is the ONLY tested browser, there is no reason it shouldn't work in + other modern browsers as well. But you might see some weird behaviour.
                • +
                + + + + + + + + + +
                +
                +
                +
                + + + + +
                + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/docs/search/search_index.json b/public/docs/search/search_index.json new file mode 100644 index 0000000..2f9a31d --- /dev/null +++ b/public/docs/search/search_index.json @@ -0,0 +1 @@ +{"config":{"lang":["en"],"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"Luxcena-Neo Dependencies Branch (dev) Install Please refer to this guide for installing: Install Luxcena-neo . Issues There might still be a bit hard for someone not having spent hours looking at the source to use this software. The hope is that it will be more useable for every new update. Chrome is the ONLY tested browser, there is no reason it shouldn't work in other modern browsers as well. But you might see some weird behaviour.","title":"Introduction"},{"location":"#luxcena-neo","text":"Dependencies Branch (dev)","title":"Luxcena-Neo"},{"location":"#install","text":"Please refer to this guide for installing: Install Luxcena-neo .","title":"Install"},{"location":"#issues","text":"There might still be a bit hard for someone not having spent hours looking at the source to use this software. The hope is that it will be more useable for every new update. Chrome is the ONLY tested browser, there is no reason it shouldn't work in other modern browsers as well. But you might see some weird behaviour.","title":"Issues"},{"location":"FuturePlan/","text":"Plans for the future Planned and implemented Add authentication to our middelware. Make service worker cache bundles localy on client, and use a spinner when loading them. PWA. Do some kind of code-splitting as well here. Socketio Rewrite socketio to use auth Make all action respond to the client, so that it knows wether the action was a success or not. Make timout thing. Make logout function Rewrite public-dir to load pages with javascript, and have one handler, instead of a seperate html file per page. Neo IDE Add intellisense for neo_behaviour Make alternative to scripting, something like mindstorms or scratch block-coding, (blockly). Setup GitHub pages https://www.mkdocs.org/user-guide/deploying-your-docs/ Make update-button Think about making it auto-update. Ideas that might get implemented at some point in time Make a ws281x-library that doesn't require root. Check OS security-patch setup Get diff-thingy on local scripts/ Git tracking Maybe add a rest API","title":"Plan for the future"},{"location":"FuturePlan/#plans-for-the-future","text":"","title":"Plans for the future"},{"location":"FuturePlan/#planned-and-implemented","text":"Add authentication to our middelware. Make service worker cache bundles localy on client, and use a spinner when loading them. PWA. Do some kind of code-splitting as well here. Socketio Rewrite socketio to use auth Make all action respond to the client, so that it knows wether the action was a success or not. Make timout thing. Make logout function Rewrite public-dir to load pages with javascript, and have one handler, instead of a seperate html file per page. Neo IDE Add intellisense for neo_behaviour Make alternative to scripting, something like mindstorms or scratch block-coding, (blockly). Setup GitHub pages https://www.mkdocs.org/user-guide/deploying-your-docs/ Make update-button Think about making it auto-update.","title":"Planned and implemented"},{"location":"FuturePlan/#ideas-that-might-get-implemented-at-some-point-in-time","text":"Make a ws281x-library that doesn't require root. Check OS security-patch setup Get diff-thingy on local scripts/ Git tracking Maybe add a rest API","title":"Ideas that might get implemented at some point in time"},{"location":"Code Documentation/SocketIO/","text":"SocketIO Client Socketio is setup in the file globals . This means, import globals , and then you can use Socket from there. Connect Client first needs to get an Authentication token, this can be obtained by doing this: 1 2 3 4 5 6 7 8 9 import { setCookie } from \"../../../cookies\" ; let CryptoJS = require ( \"crypto-js\" ); let passwordHash = CryptoJS . SHA256 ( < PASSWORD > ;). toString (); Socket . emit ( \"authenticate\" , < USERNAME > , passwordHash , ( token ) => { // Token will be a string if username/password combo is right, // if not, it is false. setCookie ( \"session_token\" , token , 500 ); };) Then the user can authenticate like this: 1 2 3 4 5 6 7 import { getCookie } from \"../../../cookies\" ; let cookieToken = getCookie ( \"session_token\" ); Socket . emit ( \"authenticateToken\" , cookieToken , ( res ) => { // Res is true if we got authenticated, // If not, it is false. }); We are now authenticated, and all actions and events are available to the client. \"Actions\" 1 2 Socket . emit ( Action , * Arguments , ( Return ) => { };) NeoRuntime/status Name Type Description status object Return/status Name Type Description currentScript string \"None\"/Name of current script scriptIsExited boolean uptime number NeoRuntime/Script/Create Arguments Name Type Description scriptPath string Path of the new script, local/example Return Name Type Description res boolean success resMsg string if fail, errorMessage NeoRuntime/Script/Delete Arguments Name Type Description scriptPath string Path of the script to delete, local/example Return Name Type Description res boolean success resMsg string if fail, errorMessage NeoRuntime/Script/Select Arguments Name Type Description scriptPath string Path of the script to start, local/example NeoRuntime/Scripts/get Return Name Type Description local list local scripts remote list remote scripts \"Events\" 1 2 3 4 5 // Listen for a event Socket . emit ( event + \"::join\" ); Socket . on ( event , ( * Return ); => { }) 1 2 // Stop listening for an event Socket . emit ( event + \"::leave\" ) Server","title":"Socket-IO"},{"location":"Code Documentation/SocketIO/#socketio","text":"","title":"SocketIO"},{"location":"Code Documentation/SocketIO/#client","text":"Socketio is setup in the file globals . This means, import globals , and then you can use Socket from there.","title":"Client"},{"location":"Code Documentation/SocketIO/#connect","text":"Client first needs to get an Authentication token, this can be obtained by doing this: 1 2 3 4 5 6 7 8 9 import { setCookie } from \"../../../cookies\" ; let CryptoJS = require ( \"crypto-js\" ); let passwordHash = CryptoJS . SHA256 ( < PASSWORD > ;). toString (); Socket . emit ( \"authenticate\" , < USERNAME > , passwordHash , ( token ) => { // Token will be a string if username/password combo is right, // if not, it is false. setCookie ( \"session_token\" , token , 500 ); };) Then the user can authenticate like this: 1 2 3 4 5 6 7 import { getCookie } from \"../../../cookies\" ; let cookieToken = getCookie ( \"session_token\" ); Socket . emit ( \"authenticateToken\" , cookieToken , ( res ) => { // Res is true if we got authenticated, // If not, it is false. }); We are now authenticated, and all actions and events are available to the client.","title":"Connect"},{"location":"Code Documentation/SocketIO/#actions","text":"1 2 Socket . emit ( Action , * Arguments , ( Return ) => { };)","title":"\"Actions\""},{"location":"Code Documentation/SocketIO/#neoruntimestatus","text":"Name Type Description status object Return/status Name Type Description currentScript string \"None\"/Name of current script scriptIsExited boolean uptime number","title":"NeoRuntime/status"},{"location":"Code Documentation/SocketIO/#neoruntimescriptcreate","text":"Arguments Name Type Description scriptPath string Path of the new script, local/example Return Name Type Description res boolean success resMsg string if fail, errorMessage","title":"NeoRuntime/Script/Create"},{"location":"Code Documentation/SocketIO/#neoruntimescriptdelete","text":"Arguments Name Type Description scriptPath string Path of the script to delete, local/example Return Name Type Description res boolean success resMsg string if fail, errorMessage","title":"NeoRuntime/Script/Delete"},{"location":"Code Documentation/SocketIO/#neoruntimescriptselect","text":"Arguments Name Type Description scriptPath string Path of the script to start, local/example","title":"NeoRuntime/Script/Select"},{"location":"Code Documentation/SocketIO/#neoruntimescriptsget","text":"Return Name Type Description local list local scripts remote list remote scripts","title":"NeoRuntime/Scripts/get"},{"location":"Code Documentation/SocketIO/#events","text":"1 2 3 4 5 // Listen for a event Socket . emit ( event + \"::join\" ); Socket . on ( event , ( * Return ); => { }) 1 2 // Stop listening for an event Socket . emit ( event + \"::leave\" )","title":"\"Events\""},{"location":"Code Documentation/SocketIO/#server","text":"","title":"Server"},{"location":"Code Documentation/Design/","text":"Design We are using googles material design. Link to the components","title":"Design"},{"location":"Code Documentation/Design/#design","text":"We are using googles material design. Link to the components","title":"Design"},{"location":"Code Documentation/Modules/CompileAndRun/","text":"Index Locals var pythonSupportFiles Points to the files for our python support code. They should be in a subdir of the module itself. Exported class Python This is exported as Python, just so that we could add other languages later. Used to build and run python-scripts with our support-code. method Python . constructor Takes one parameter, which is the full path to the folder where the script is located. When initializing the class, this will be called. Can be done like this: 1 new compileRun . Python ( global . DirSwap + \"/usrData/usrCode/example\" ); method Python . compile This deletes old build-folder, and makes a new one. It then moves all required files into the build-folder, making us ready for running the script. method Python . run Spawns a new process, starting entry.py in our build-folder. It also attaches event-listners on our class-object. All of them is in the example below: 1 2 3 4 5 6 7 8 9 10 11 12 let sc = new compileRun . Python ( global . DirSwap + \"/usrData/usrCode/example\" ); \u200b // When data is printed from the python-script sc . on ( \"stdout::data\" , ( _stdout ) => { }); // Last write when script closes, any exiting messages sc . on ( \"stdout::end\" , ( _stdout ) => { }); // When something is printed from the python-script to the error-out. Usually when a `throw` is called sc . on ( \"stderr::out\" , ( _stderr ) => { }); // Last words when process is dying from an error :`( sc . on ( \"stderr::end\" , ( _stderr ) => { }); // When script exits, _code is the exit-code sc . on ( \"close\" , ( _code ) => { }); Python This is the support-files for user-made scripts. Entry.py The entry-point when running a script. A file called script.py, containing the user-script, should be placed next to this file. Starting it should be done like this (Where app-root is where our app.js is located): 1 python entry . py < pathToAppRoot >","title":"CompileAndRun"},{"location":"Code Documentation/Modules/CompileAndRun/#index","text":"","title":"Index"},{"location":"Code Documentation/Modules/CompileAndRun/#locals","text":"","title":"Locals"},{"location":"Code Documentation/Modules/CompileAndRun/#var-pythonsupportfiles","text":"Points to the files for our python support code. They should be in a subdir of the module itself.","title":"var pythonSupportFiles"},{"location":"Code Documentation/Modules/CompileAndRun/#exported","text":"","title":"Exported"},{"location":"Code Documentation/Modules/CompileAndRun/#class-python","text":"This is exported as Python, just so that we could add other languages later. Used to build and run python-scripts with our support-code.","title":"class Python"},{"location":"Code Documentation/Modules/CompileAndRun/#method-pythonconstructor","text":"Takes one parameter, which is the full path to the folder where the script is located. When initializing the class, this will be called. Can be done like this: 1 new compileRun . Python ( global . DirSwap + \"/usrData/usrCode/example\" );","title":"method Python.constructor"},{"location":"Code Documentation/Modules/CompileAndRun/#method-pythoncompile","text":"This deletes old build-folder, and makes a new one. It then moves all required files into the build-folder, making us ready for running the script.","title":"method Python.compile"},{"location":"Code Documentation/Modules/CompileAndRun/#method-pythonrun","text":"Spawns a new process, starting entry.py in our build-folder. It also attaches event-listners on our class-object. All of them is in the example below: 1 2 3 4 5 6 7 8 9 10 11 12 let sc = new compileRun . Python ( global . DirSwap + \"/usrData/usrCode/example\" ); \u200b // When data is printed from the python-script sc . on ( \"stdout::data\" , ( _stdout ) => { }); // Last write when script closes, any exiting messages sc . on ( \"stdout::end\" , ( _stdout ) => { }); // When something is printed from the python-script to the error-out. Usually when a `throw` is called sc . on ( \"stderr::out\" , ( _stderr ) => { }); // Last words when process is dying from an error :`( sc . on ( \"stderr::end\" , ( _stderr ) => { }); // When script exits, _code is the exit-code sc . on ( \"close\" , ( _code ) => { });","title":"method Python.run"},{"location":"Code Documentation/Modules/CompileAndRun/#python","text":"This is the support-files for user-made scripts.","title":"Python"},{"location":"Code Documentation/Modules/CompileAndRun/#entrypy","text":"The entry-point when running a script. A file called script.py, containing the user-script, should be placed next to this file. Starting it should be done like this (Where app-root is where our app.js is located): 1 python entry . py < pathToAppRoot >","title":"Entry.py"},{"location":"Code Documentation/Run/","text":"Run when developing I have made a simple script, that can be run both on a rPI and a normal computer. (You will obviously not get any script to do anything on you pc) I have only tested this on my mac... To start it run: 1 npm run dev You have to run these commands beforehand: 1 2 npm i pip3 install mkdocs mkdocs-gitbook pygments pymdown-extensions Starting It will when starting freak out a little. All the filewatchers fires an event for every file, they find for some reason. But node should be killed each time, and when you end up with only two processes, it should work as you'd expect. This will create a folder named tmp in you working directory. where all the user-files will be stored. Build watcher. It starts to watch these directories: 1 - / build / If a change is detected, it runs: 1 mkdocs build Node watcher It starts to watch these directories: 1 2 - src / ( Except / src / public / and / src / js / ) - app . js It then shuts down node and starts it again: 1 node app.js /tmp/ webpack It just starts this command, witch rebundles when anything is changed: 1 npx webpack -p -w --mode = development Tip All the log-windows respond to holding your cursor over and scrolling. Exit The script will exit when pressing q , s , escape , Control + c . It will then send a kill signal to all processes, wait 10 seconds and then exit. Edit file-watchers. Each of the file-watchers have explanatory names: watcher_node and watcher_docs . To add files or paths they should watch, find the init of the variable, and modify that code: 1 2 3 4 5 6 e . g . let ; watcher_node = chokidar . watch ([ \"app.js\" , 'src/' // Add new entrys here ]). on ( 'all' , ( event , path ) => { // ... For the node-watcher, specify paths it should ignore in the path . includes block.","title":"Run"},{"location":"Code Documentation/Run/#run-when-developing","text":"I have made a simple script, that can be run both on a rPI and a normal computer. (You will obviously not get any script to do anything on you pc) I have only tested this on my mac... To start it run: 1 npm run dev You have to run these commands beforehand: 1 2 npm i pip3 install mkdocs mkdocs-gitbook pygments pymdown-extensions Starting It will when starting freak out a little. All the filewatchers fires an event for every file, they find for some reason. But node should be killed each time, and when you end up with only two processes, it should work as you'd expect. This will create a folder named tmp in you working directory. where all the user-files will be stored.","title":"Run when developing"},{"location":"Code Documentation/Run/#build-watcher","text":"It starts to watch these directories: 1 - / build / If a change is detected, it runs: 1 mkdocs build","title":"Build watcher."},{"location":"Code Documentation/Run/#node-watcher","text":"It starts to watch these directories: 1 2 - src / ( Except / src / public / and / src / js / ) - app . js It then shuts down node and starts it again: 1 node app.js /tmp/","title":"Node watcher"},{"location":"Code Documentation/Run/#webpack","text":"It just starts this command, witch rebundles when anything is changed: 1 npx webpack -p -w --mode = development Tip All the log-windows respond to holding your cursor over and scrolling.","title":"webpack"},{"location":"Code Documentation/Run/#exit","text":"The script will exit when pressing q , s , escape , Control + c . It will then send a kill signal to all processes, wait 10 seconds and then exit.","title":"Exit"},{"location":"Code Documentation/Run/#edit-file-watchers","text":"Each of the file-watchers have explanatory names: watcher_node and watcher_docs . To add files or paths they should watch, find the init of the variable, and modify that code: 1 2 3 4 5 6 e . g . let ; watcher_node = chokidar . watch ([ \"app.js\" , 'src/' // Add new entrys here ]). on ( 'all' , ( event , path ) => { // ... For the node-watcher, specify paths it should ignore in the path . includes block.","title":"Edit file-watchers."},{"location":"Scripting/Examples/strandtest/","text":"Strandtest This script just does some fancy patterns to show of the neopixels' capabilities. Runs in an endless loop, take a look at the code to see what it does more precisely. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 import LuxcenaNeo as neo # Can be imported as LuxcenaNeo as well. but anything else and it will fail... import time def colorWipe ( color , wait_ms = 50 ): \"\"\"Wipe color across display a pixel at a time.\"\"\" for i in range ( neo . strip . numPixels ()): neo . strip . setPixelColor ( i , color ) neo . strip . show () time . sleep ( wait_ms / 1000.0 ) def theaterChase ( color , wait_ms = 50 , iterations = 10 ): \"\"\"Movie theater light style chaser animation.\"\"\" for j in range ( iterations ): for q in range ( 3 ): for i in range ( 0 , neo . strip . numPixels (), 3 ): neo . strip . setPixelColor ( i + q , color ) neo . strip . show () time . sleep ( wait_ms / 1000.0 ) for i in range ( 0 , neo . strip . numPixels (), 3 ): neo . strip . setPixelColor ( i + q , 0 ) def wheel ( pos ): \"\"\"Generate rainbow colors across 0-255 positions.\"\"\" if pos < 85 : return neo . Color ( pos * 3 , 255 - pos * 3 , 0 ) elif pos < 170 : pos -= 85 return neo . Color ( 255 - pos * 3 , 0 , pos * 3 ) else : pos -= 170 return neo . Color ( 0 , pos * 3 , 255 - pos * 3 ) def rainbow ( wait_ms = 20 , iterations = 1 ): \"\"\"Draw rainbow that fades across all pixels at once.\"\"\" for j in range ( 256 * iterations ): for i in range ( neo . strip . numPixels ()): neo . strip . setPixelColor ( i , wheel (( i + j ) & 255 )) neo . strip . show () time . sleep ( wait_ms / 1000.0 ) def rainbowCycle ( wait_ms = 20 , iterations = 5 ): \"\"\"Draw rainbow that uniformly distributes itself across all pixels.\"\"\" for j in range ( 256 * iterations ): for i in range ( strip . numPixels ()): neo , strip . setPixelColor ( i , wheel ((( i * 256 / neo . strip . numPixels ()) + j ) & 255 )) neo . strip . show () time . sleep ( wait_ms / 1000.0 ) def theaterChaseRainbow ( wait_ms = 50 ): \"\"\"Rainbow movie theater light style chaser animation.\"\"\" for j in range ( 256 ): for q in range ( 3 ): for i in range ( 0 , neo . strip . numPixels (), 3 ): neo . strip . setPixelColor ( i + q , wheel (( i + j ) % 255 )) neo . strip . show () time . sleep ( wait_ms / 1000.0 ) for i in range ( 0 , neo . strip . numPixels (), 3 ): neo . strip . setPixelColor ( i + q , 0 ) class Main ( neo . NeoBehaviour ): def onStart ( self ): # Change the brightness of the strip neo . strip . setBrightness ( 100 ) # Do an endless loop with some default neopixel test patterns while True : colorWipe ( neo . Color ( 255 , 0 , 0 )) # Red wipe colorWipe ( neo . Color ( 0 , 255 , 0 )) # Blue wipe colorWipe ( neo . Color ( 0 , 0 , 255 )) # Green wipe theaterChase ( neo . Color ( 127 , 127 , 127 )) # White theater chase theaterChase ( neo . Color ( 127 , 0 , 0 )) # Red theater chase theaterChase ( neo . Color ( 0 , 0 , 127 )) # Blue theater chase rainbow () rainbowCycle () theaterChaseRainbow ()","title":"Strandtest"},{"location":"Scripting/Examples/strandtest/#strandtest","text":"This script just does some fancy patterns to show of the neopixels' capabilities. Runs in an endless loop, take a look at the code to see what it does more precisely. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 import LuxcenaNeo as neo # Can be imported as LuxcenaNeo as well. but anything else and it will fail... import time def colorWipe ( color , wait_ms = 50 ): \"\"\"Wipe color across display a pixel at a time.\"\"\" for i in range ( neo . strip . numPixels ()): neo . strip . setPixelColor ( i , color ) neo . strip . show () time . sleep ( wait_ms / 1000.0 ) def theaterChase ( color , wait_ms = 50 , iterations = 10 ): \"\"\"Movie theater light style chaser animation.\"\"\" for j in range ( iterations ): for q in range ( 3 ): for i in range ( 0 , neo . strip . numPixels (), 3 ): neo . strip . setPixelColor ( i + q , color ) neo . strip . show () time . sleep ( wait_ms / 1000.0 ) for i in range ( 0 , neo . strip . numPixels (), 3 ): neo . strip . setPixelColor ( i + q , 0 ) def wheel ( pos ): \"\"\"Generate rainbow colors across 0-255 positions.\"\"\" if pos < 85 : return neo . Color ( pos * 3 , 255 - pos * 3 , 0 ) elif pos < 170 : pos -= 85 return neo . Color ( 255 - pos * 3 , 0 , pos * 3 ) else : pos -= 170 return neo . Color ( 0 , pos * 3 , 255 - pos * 3 ) def rainbow ( wait_ms = 20 , iterations = 1 ): \"\"\"Draw rainbow that fades across all pixels at once.\"\"\" for j in range ( 256 * iterations ): for i in range ( neo . strip . numPixels ()): neo . strip . setPixelColor ( i , wheel (( i + j ) & 255 )) neo . strip . show () time . sleep ( wait_ms / 1000.0 ) def rainbowCycle ( wait_ms = 20 , iterations = 5 ): \"\"\"Draw rainbow that uniformly distributes itself across all pixels.\"\"\" for j in range ( 256 * iterations ): for i in range ( strip . numPixels ()): neo , strip . setPixelColor ( i , wheel ((( i * 256 / neo . strip . numPixels ()) + j ) & 255 )) neo . strip . show () time . sleep ( wait_ms / 1000.0 ) def theaterChaseRainbow ( wait_ms = 50 ): \"\"\"Rainbow movie theater light style chaser animation.\"\"\" for j in range ( 256 ): for q in range ( 3 ): for i in range ( 0 , neo . strip . numPixels (), 3 ): neo . strip . setPixelColor ( i + q , wheel (( i + j ) % 255 )) neo . strip . show () time . sleep ( wait_ms / 1000.0 ) for i in range ( 0 , neo . strip . numPixels (), 3 ): neo . strip . setPixelColor ( i + q , 0 ) class Main ( neo . NeoBehaviour ): def onStart ( self ): # Change the brightness of the strip neo . strip . setBrightness ( 100 ) # Do an endless loop with some default neopixel test patterns while True : colorWipe ( neo . Color ( 255 , 0 , 0 )) # Red wipe colorWipe ( neo . Color ( 0 , 255 , 0 )) # Blue wipe colorWipe ( neo . Color ( 0 , 0 , 255 )) # Green wipe theaterChase ( neo . Color ( 127 , 127 , 127 )) # White theater chase theaterChase ( neo . Color ( 127 , 0 , 0 )) # Red theater chase theaterChase ( neo . Color ( 0 , 0 , 127 )) # Blue theater chase rainbow () rainbowCycle () theaterChaseRainbow ()","title":"Strandtest"},{"location":"Scripting/SupportLib/","text":"Support Library class Strip This is the object you are refeering to when you want to do things with LED's. You shouldn't have to do instantiate your own new strip-object as you can use the one set up by the software itself. 1 2 3 LuxcenaNeo . strip or neo . strip Strip.show() Display all the changes made to the LEDs, on the actual LEDs. Strip.setPixelColor( n , color ) Set LED at position n to the provided 24-bit color value (in RGB order). Strip.setPixelColorXY( x , y , color ) Set LED at position (x, y) in the defined matrix to the provided 24-bit color value (in RGB order). Strip.setPixelColorRGB( n , red , green , blue , white = 0 ) Set LED at position n to the provided red, green, and blue color. Each color component should be a value from 0 to 255 (where 0 is the lowest intensity and 255 is the highest intensity). Strip.setPixelColorXYRGB( x , y , red , green , blue , white = 0 ) Set LED at position (x, y) in the defined matrix to the provided red, green, and blue color. Each color component should be a value from 0 to 255 (where 0 is the lowest intensity and 255 is the highest intensity). Strip.setSegmentColorRGB( segment , red , green , blue , white = 0 ) Set a whole segment to the provided red, green and blue color. Each color component should be a value from 0 to 255 (where 0 is the lowest intensity and 255 is the highest intensity). Strip.setBrightness( brightness ) Scale each LED in the buffer by the provided brightness. A brightness of 0 is the darkest and 255 is the brightest. Strip.getBrightness(): Get the brightness value for each LED in the buffer. A brightness of 0 is the darkest and 255 is the brightest. Strip.getPixels(): Return an object which allows access to the LED display data as if it were a sequence of 24-bit RGB values. Strip.numPixels(): Return the number of pixels in the display. Strip.getPixelColor( n ) Get the 24-bit RGB color value for the LED at position n. Color( red , green , blue , white = 0 ) Convert the provided red, green, blue color to a 24-bit color value. Each color component should be a value 0-255 where 0 is the lowest intensity and 255 is the highest intensity. hexColor( value ) Convert the provided hexadecimal color to a 24-bit color value.","title":"Support Library"},{"location":"Scripting/SupportLib/#support-library","text":"","title":"Support Library"},{"location":"Scripting/SupportLib/#class-strip","text":"This is the object you are refeering to when you want to do things with LED's. You shouldn't have to do instantiate your own new strip-object as you can use the one set up by the software itself. 1 2 3 LuxcenaNeo . strip or neo . strip","title":"class Strip"},{"location":"Scripting/SupportLib/#stripshow","text":"Display all the changes made to the LEDs, on the actual LEDs.","title":"Strip.show()"},{"location":"Scripting/SupportLib/#stripsetpixelcolorn-color","text":"Set LED at position n to the provided 24-bit color value (in RGB order).","title":"Strip.setPixelColor(n, color)"},{"location":"Scripting/SupportLib/#stripsetpixelcolorxyx-y-color","text":"Set LED at position (x, y) in the defined matrix to the provided 24-bit color value (in RGB order).","title":"Strip.setPixelColorXY(x, y, color)"},{"location":"Scripting/SupportLib/#stripsetpixelcolorrgbn-red-green-blue-white-0","text":"Set LED at position n to the provided red, green, and blue color. Each color component should be a value from 0 to 255 (where 0 is the lowest intensity and 255 is the highest intensity).","title":"Strip.setPixelColorRGB(n, red, green, blue, white = 0)"},{"location":"Scripting/SupportLib/#stripsetpixelcolorxyrgbx-y-red-green-blue-white-0","text":"Set LED at position (x, y) in the defined matrix to the provided red, green, and blue color. Each color component should be a value from 0 to 255 (where 0 is the lowest intensity and 255 is the highest intensity).","title":"Strip.setPixelColorXYRGB(x, y, red, green, blue, white = 0)"},{"location":"Scripting/SupportLib/#stripsetsegmentcolorrgbsegment-red-green-blue-white-0","text":"Set a whole segment to the provided red, green and blue color. Each color component should be a value from 0 to 255 (where 0 is the lowest intensity and 255 is the highest intensity).","title":"Strip.setSegmentColorRGB(segment, red, green, blue, white = 0)"},{"location":"Scripting/SupportLib/#stripsetbrightnessbrightness","text":"Scale each LED in the buffer by the provided brightness. A brightness of 0 is the darkest and 255 is the brightest.","title":"Strip.setBrightness(brightness)"},{"location":"Scripting/SupportLib/#stripgetbrightness","text":"Get the brightness value for each LED in the buffer. A brightness of 0 is the darkest and 255 is the brightest.","title":"Strip.getBrightness():"},{"location":"Scripting/SupportLib/#stripgetpixels","text":"Return an object which allows access to the LED display data as if it were a sequence of 24-bit RGB values.","title":"Strip.getPixels():"},{"location":"Scripting/SupportLib/#stripnumpixels","text":"Return the number of pixels in the display.","title":"Strip.numPixels():"},{"location":"Scripting/SupportLib/#stripgetpixelcolorn","text":"Get the 24-bit RGB color value for the LED at position n.","title":"Strip.getPixelColor(n)"},{"location":"Scripting/SupportLib/#colorred-green-blue-white-0","text":"Convert the provided red, green, blue color to a 24-bit color value. Each color component should be a value 0-255 where 0 is the lowest intensity and 255 is the highest intensity.","title":"Color(red, green, blue, white = 0)"},{"location":"Scripting/SupportLib/#hexcolorvalue","text":"Convert the provided hexadecimal color to a 24-bit color value.","title":"hexColor(value)"},{"location":"Usage/CLI/","text":"Command line interface Important! This CLI assumes root access, so please run it with sudo Options sudo lux - neo uninstall Uninstall the whole thing. You will have to remove this script yourself. sudo lux - neo update ( skipNode ) Update to the newest version on the current branch. If skipNode is the second argument, npm won't be run. sudo lux - neo conf Open the strip-config in nano . sudo lux - neo start ( boot ) Start the server. If you add boot , it will start when the system boots: 1 sudo lux-neo start boot sudo lux - neo stop ( boot ) Stop the server. If you add boot , it will NOT start when the system boots: 1 sudo lux-neo start boot sudo lux - neo status This will output the status of the app. First it reports if the service is running, and some general info. Then it prints the systemd-status report. Example output: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Luxcena-neo-cli [args: 'status'] \u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e \u2502 Service active: yes \u2502 \u2502 Starts on boot: yes \u2502 \u2502 Has failed: no \u2502 \u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f \u2501\u2501\u2501Service status\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 \u25cf luxcena-neo.service - Luxcena Neo Loaded: loaded (/etc/systemd/system/luxcena-neo.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2018-12-05 22:55:28 UTC; 6min ago Main PID: 2365 (luxcena-neo.sh) CGroup: /system.slice/luxcena-neo.service \u251c\u25002365 /bin/bash /home/lux-neo/src/bin/luxcena-neo.sh \u2514\u25002367 node /home/lux-neo/src/app.js Dec 05 22:55:28 LUXCENA-STUE-SKAP systemd[1]: Started Luxcena Neo. \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 sudo lux - neo log service / app This shows the last 20 lines of the chosen log-file. And stays open to show all new entries. Example output: 1 2 3 4 5 Luxcena-neo-cli [args: 'log app'] \u2501\u2501\u2501App log (press ctrl+c to exit)\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 [3.11.2018 23:5:21:401] EVENT Starting Luxcena-Neo... [3.11.2018 23:5:22:462] SUCCESS Webserver now listening at *:8080 sudo lux - neo version Currently not really doing anything usefull apart from showing which branch you are on. Example output: 1 2 3 4 5 6 Luxcena-neo-cli [args: 'version'] \u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e \u2502 Version: Unknown \u2502 \u2502 branch : dev \u2502 \u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f sudo lux - neo selectBranch < branch > This will change what branch you are on to . Stashing changes (shouldn't be a concern, but just saying it anyways). Note Please note that the version-checker now will just be useless, as it does not now what branch we really are on.","title":"CLI"},{"location":"Usage/CLI/#command-line-interface","text":"Important! This CLI assumes root access, so please run it with sudo","title":"Command line interface"},{"location":"Usage/CLI/#options","text":"","title":"Options"},{"location":"Usage/CLI/#sudo-lux-neo-uninstall","text":"Uninstall the whole thing. You will have to remove this script yourself.","title":"sudo lux-neo uninstall"},{"location":"Usage/CLI/#sudo-lux-neo-update-skipnode","text":"Update to the newest version on the current branch. If skipNode is the second argument, npm won't be run.","title":"sudo lux-neo update (skipNode)"},{"location":"Usage/CLI/#sudo-lux-neo-conf","text":"Open the strip-config in nano .","title":"sudo lux-neo conf"},{"location":"Usage/CLI/#sudo-lux-neo-start-boot","text":"Start the server. If you add boot , it will start when the system boots: 1 sudo lux-neo start boot","title":"sudo lux-neo start (boot)"},{"location":"Usage/CLI/#sudo-lux-neo-stop-boot","text":"Stop the server. If you add boot , it will NOT start when the system boots: 1 sudo lux-neo start boot","title":"sudo lux-neo stop (boot)"},{"location":"Usage/CLI/#sudo-lux-neo-status","text":"This will output the status of the app. First it reports if the service is running, and some general info. Then it prints the systemd-status report. Example output: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Luxcena-neo-cli [args: 'status'] \u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e \u2502 Service active: yes \u2502 \u2502 Starts on boot: yes \u2502 \u2502 Has failed: no \u2502 \u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f \u2501\u2501\u2501Service status\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 \u25cf luxcena-neo.service - Luxcena Neo Loaded: loaded (/etc/systemd/system/luxcena-neo.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2018-12-05 22:55:28 UTC; 6min ago Main PID: 2365 (luxcena-neo.sh) CGroup: /system.slice/luxcena-neo.service \u251c\u25002365 /bin/bash /home/lux-neo/src/bin/luxcena-neo.sh \u2514\u25002367 node /home/lux-neo/src/app.js Dec 05 22:55:28 LUXCENA-STUE-SKAP systemd[1]: Started Luxcena Neo. \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501","title":"sudo lux-neo status"},{"location":"Usage/CLI/#sudo-lux-neo-log-serviceapp","text":"This shows the last 20 lines of the chosen log-file. And stays open to show all new entries. Example output: 1 2 3 4 5 Luxcena-neo-cli [args: 'log app'] \u2501\u2501\u2501App log (press ctrl+c to exit)\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 [3.11.2018 23:5:21:401] EVENT Starting Luxcena-Neo... [3.11.2018 23:5:22:462] SUCCESS Webserver now listening at *:8080","title":"sudo lux-neo log service/app"},{"location":"Usage/CLI/#sudo-lux-neo-version","text":"Currently not really doing anything usefull apart from showing which branch you are on. Example output: 1 2 3 4 5 6 Luxcena-neo-cli [args: 'version'] \u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e \u2502 Version: Unknown \u2502 \u2502 branch : dev \u2502 \u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f","title":"sudo lux-neo version"},{"location":"Usage/CLI/#sudo-lux-neo-selectbranch-branch","text":"This will change what branch you are on to . Stashing changes (shouldn't be a concern, but just saying it anyways). Note Please note that the version-checker now will just be useless, as it does not now what branch we really are on.","title":"sudo lux-neo selectBranch <branch>"},{"location":"Usage/Configuration/","text":"Configuration How to setup luxcena-neo to work with your setup 1 $ sudo lux-neo conf When running the command above, a config file should appear in the editor 'nano'. 1 2 3 4 5 6 7 8 9 10 11 { \"led_count\" : 53 , \"segments\" : [], \"matrix\" : [], \"segmentConfiguration\" : \"snake\" , \"led_pin\" : 18 , \"led_freq_hz\" : 800000 , \"led_dma\" : 10 , \"led_invert\" : false , \"led_channel\" : 0 } Tip - Change editor If you rather want to use vim or another editor, the file is at / home / lux - neo / userdata / config / strip . json led_count This is the number of LED's you want to control. segments This is a simple list, here you should add the lenghts of all your segments. Please enter the \"real\" length, and don't start counting from 0. If you just want one segment, you should just have one element in the list, which is the number of led's you are controlling. When summing this list, it should check out with the \"led-count\"-option. matrix This is a two dimensonal array, used to arrange the segments in a matrix of your likings. Here you enter the segment-number to represent them. In the example above, all the segments are in one line. If you want to have them in a square, it could look like this: Warning If you don't have a reference to all the segments or something, the matrix setup will fail. And fall back to 'segmentsconfiguration' segmentconfiguration If the matrix-option is empty or badly setup. The matrix will be set up using one of these defaults: 1 2 3 \"snake\" : \"line\" : \"random\" : led_pin If using the luxcena-shield, you shouldn't have to worry about this option. But set it to the GPIO-port connected to your pixel's din-port. Warning If using a newer RPi (3 or newer), leave this as 10! Or your file-system might crash. This is the dma-channel used to generate the data-stream. If you for some reason need channel 10 for something else, you can change it. But i strongly recommend leaving it to 10! led_invert This should not be touched, unless you are using a inverting level converter. led_channel Leave this as default unless you know what you are doing. Now you might want to take a look at the command line interface .","title":"Configuration"},{"location":"Usage/Configuration/#configuration","text":"How to setup luxcena-neo to work with your setup 1 $ sudo lux-neo conf When running the command above, a config file should appear in the editor 'nano'. 1 2 3 4 5 6 7 8 9 10 11 { \"led_count\" : 53 , \"segments\" : [], \"matrix\" : [], \"segmentConfiguration\" : \"snake\" , \"led_pin\" : 18 , \"led_freq_hz\" : 800000 , \"led_dma\" : 10 , \"led_invert\" : false , \"led_channel\" : 0 } Tip - Change editor If you rather want to use vim or another editor, the file is at / home / lux - neo / userdata / config / strip . json","title":"Configuration"},{"location":"Usage/Configuration/#led_count","text":"This is the number of LED's you want to control.","title":"led_count"},{"location":"Usage/Configuration/#segments","text":"This is a simple list, here you should add the lenghts of all your segments. Please enter the \"real\" length, and don't start counting from 0. If you just want one segment, you should just have one element in the list, which is the number of led's you are controlling. When summing this list, it should check out with the \"led-count\"-option.","title":"segments"},{"location":"Usage/Configuration/#matrix","text":"This is a two dimensonal array, used to arrange the segments in a matrix of your likings. Here you enter the segment-number to represent them. In the example above, all the segments are in one line. If you want to have them in a square, it could look like this: Warning If you don't have a reference to all the segments or something, the matrix setup will fail. And fall back to 'segmentsconfiguration'","title":"matrix"},{"location":"Usage/Configuration/#segmentconfiguration","text":"If the matrix-option is empty or badly setup. The matrix will be set up using one of these defaults: 1 2 3 \"snake\" : \"line\" : \"random\" :","title":"segmentconfiguration"},{"location":"Usage/Configuration/#led_pin","text":"If using the luxcena-shield, you shouldn't have to worry about this option. But set it to the GPIO-port connected to your pixel's din-port. Warning If using a newer RPi (3 or newer), leave this as 10! Or your file-system might crash. This is the dma-channel used to generate the data-stream. If you for some reason need channel 10 for something else, you can change it. But i strongly recommend leaving it to 10!","title":"led_pin"},{"location":"Usage/Configuration/#led_invert","text":"This should not be touched, unless you are using a inverting level converter.","title":"led_invert"},{"location":"Usage/Configuration/#led_channel","text":"Leave this as default unless you know what you are doing. Now you might want to take a look at the command line interface .","title":"led_channel"},{"location":"Usage/Install/","text":"Installation If you want to install luxcena-neo to use it, these are the instructions: Requirements The luxcena-shield Access to the raspberry pi (SSH or direct) Root access (preferably through the sudo command) Install Start with logging into your Raspberry Pi Run these commands 1 2 3 git clone https://github.com/JakobST1n/Luxcena-Neo cd Luxcena-Neo sudo ./bin/install.sh Follow the instructions on screen. You should answer yes to most of the questions. The install-process might seem to hang, but there is just no output being sent to the console. If you want to see a bit more verbose output. Open another terminal session, and run this command: 1 tail -n 10 -f /tmp/luxcena-neo.install.log This is also where you will find possible reasons for a failed install. Luxcena-Neo should now be installed. Start it with this command 1 luxcena-neo start neo\":\"luxcena-neo Troubleshooting We haven't encountered any troubles yet, but once we do, we will post fix'es here. You should now be all set to configuring luxcena-neo .","title":"Install"},{"location":"Usage/Install/#installation","text":"If you want to install luxcena-neo to use it, these are the instructions:","title":"Installation"},{"location":"Usage/Install/#requirements","text":"The luxcena-shield Access to the raspberry pi (SSH or direct) Root access (preferably through the sudo command)","title":"Requirements"},{"location":"Usage/Install/#install","text":"Start with logging into your Raspberry Pi Run these commands 1 2 3 git clone https://github.com/JakobST1n/Luxcena-Neo cd Luxcena-Neo sudo ./bin/install.sh Follow the instructions on screen. You should answer yes to most of the questions. The install-process might seem to hang, but there is just no output being sent to the console. If you want to see a bit more verbose output. Open another terminal session, and run this command: 1 tail -n 10 -f /tmp/luxcena-neo.install.log This is also where you will find possible reasons for a failed install. Luxcena-Neo should now be installed. Start it with this command 1 luxcena-neo start neo\":\"luxcena-neo","title":"Install"},{"location":"Usage/Install/#troubleshooting","text":"We haven't encountered any troubles yet, but once we do, we will post fix'es here. You should now be all set to configuring luxcena-neo .","title":"Troubleshooting"}]} \ No newline at end of file diff --git a/public/docs/sitemap.xml b/public/docs/sitemap.xml new file mode 100644 index 0000000..631bb24 --- /dev/null +++ b/public/docs/sitemap.xml @@ -0,0 +1,58 @@ + + + + None + 2020-03-31 + daily + + + None + 2020-03-31 + daily + + + None + 2020-03-31 + daily + + + None + 2020-03-31 + daily + + + None + 2020-03-31 + daily + + + None + 2020-03-31 + daily + + + None + 2020-03-31 + daily + + + None + 2020-03-31 + daily + + + None + 2020-03-31 + daily + + + None + 2020-03-31 + daily + + + None + 2020-03-31 + daily + + \ No newline at end of file diff --git a/public/docs/sitemap.xml.gz b/public/docs/sitemap.xml.gz new file mode 100644 index 0000000..3a764db Binary files /dev/null and b/public/docs/sitemap.xml.gz differ diff --git a/public/global.css b/public/global.css new file mode 100644 index 0000000..fa79fb6 --- /dev/null +++ b/public/global.css @@ -0,0 +1,301 @@ +* { + --red-50: #ffebee; + --red-100: #ffcdd2; + --red-200: #ef9a9a; + --red-300: #e57373; + --red-400: #ef5350; + --red-500: #f44336; + --red-600: #e53935; + --red-700: #d32f2f; + --red-800: #c62828; + --red-900: #b71c1c; + --red-a100: #ff8a80; + --red-a200: #ff5252; + --red-a400: #ff1744; + --red-a700: #d50000; + + --pink-50: #fce4ec; + --pink-100: #f8bbd0; + --pink-200: #f48fb1; + --pink-300: #f06292; + --pink-400: #ec407a; + --pink-500: #e91e63; + --pink-600: #d81b60; + --pink-700: #c2185b; + --pink-800: #ad1457; + --pink-900: #880e4f; + --pink-a100: #ff80ab; + --pink-a200: #ff4081; + --pink-a400: #f50057; + --pink-a700: #c51162; + + --purple-50: #f3e5f5; + --purple-100: #e1bee7; + --purple-200: #ce93d8; + --purple-300: #ba68c8; + --purple-400: #ab47bc; + --purple-500: #9c27b0; + --purple-600: #8e24aa; + --purple-700: #7b1fa2; + --purple-800: #6a1b9a; + --purple-900: #4a148c; + --purple-a100: #ea80fc; + --purple-a200: #e040fb; + --purple-a400: #d500f9; + --purple-a700: #a0f; + + --deep-purple-50: #ede7f6; + --deep-purple-100: #d1c4e9; + --deep-purple-200: #b39ddb; + --deep-purple-300: #9575cd; + --deep-purple-400: #7e57c2; + --deep-purple-500: #673ab7; + --deep-purple-600: #5e35b1; + --deep-purple-700: #512da8; + --deep-purple-800: #4527a0; + --deep-purple-900: #311b92; + --deep-purple-a100: #b388ff; + --deep-purple-a200: #7c4dff; + --deep-purple-a400: #651fff; + --deep-purple-a700: #6200ea; + + --indigo-50: #e8eaf6; + --indigo-100: #c5cae9; + --indigo-200: #9fa8da; + --indigo-300: #7986cb; + --indigo-400: #5c6bc0; + --indigo-500: #3f51b5; + --indigo-600: #3949ab; + --indigo-700: #303f9f; + --indigo-800: #283593; + --indigo-900: #1a237e; + --indigo-a100: #8c9eff; + --indigo-a200: #536dfe; + --indigo-a400: #3d5afe; + --indigo-a700: #304ffe; + + --blue-50: #e3f2fd; + --blue-100: #bbdefb; + --blue-200: #90caf9; + --blue-300: #64b5f6; + --blue-400: #42a5f5; + --blue-500: #2196f3; + --blue-600: #1e88e5; + --blue-700: #1976d2; + --blue-800: #1565c0; + --blue-900: #0d47a1; + --blue-a100: #82b1ff; + --blue-a200: #448aff; + --blue-a400: #2979ff; + --blue-a700: #2962ff; + + --light-blue-50: #e1f5fe; + --light-blue-100: #b3e5fc; + --light-blue-200: #81d4fa; + --light-blue-300: #4fc3f7; + --light-blue-400: #29b6f6; + --light-blue-500: #03a9f4; + --light-blue-600: #039be5; + --light-blue-700: #0288d1; + --light-blue-800: #0277bd; + --light-blue-900: #01579b; + --light-blue-a100: #80d8ff; + --light-blue-a200: #40c4ff; + --light-blue-a400: #00b0ff; + --light-blue-a700: #0091ea; + + --cyan-50: #e0f7fa; + --cyan-100: #b2ebf2; + --cyan-200: #80deea; + --cyan-300: #4dd0e1; + --cyan-400: #26c6da; + --cyan-500: #00bcd4; + --cyan-600: #00acc1; + --cyan-700: #0097a7; + --cyan-800: #00838f; + --cyan-900: #006064; + --cyan-a100: #84ffff; + --cyan-a200: #18ffff; + --cyan-a400: #00e5ff; + --cyan-a700: #00b8d4; + + --teal-50: #e0f2f1; + --teal-100: #b2dfdb; + --teal-200: #80cbc4; + --teal-300: #4db6ac; + --teal-400: #26a69a; + --teal-500: #009688; + --teal-600: #00897b; + --teal-700: #00796b; + --teal-800: #00695c; + --teal-900: #004d40; + --teal-a100: #a7ffeb; + --teal-a200: #64ffda; + --teal-a400: #1de9b6; + --teal-a700: #00bfa5; + + --green-50: #e8f5e9; + --green-100: #c8e6c9; + --green-200: #a5d6a7; + --green-300: #81c784; + --green-400: #66bb6a; + --green-500: #4caf50; + --green-600: #43a047; + --green-700: #388e3c; + --green-800: #2e7d32; + --green-900: #1b5e20; + --green-a100: #b9f6ca; + --green-a200: #69f0ae; + --green-a400: #00e676; + --green-a700: #00c853; + + --light-green-50: #f1f8e9; + --light-green-100: #dcedc8; + --light-green-200: #c5e1a5; + --light-green-300: #aed581; + --light-green-400: #9ccc65; + --light-green-500: #8bc34a; + --light-green-600: #7cb342; + --light-green-700: #689f38; + --light-green-800: #558b2f; + --light-green-900: #33691e; + --light-green-a100: #ccff90; + --light-green-a200: #b2ff59; + --light-green-a400: #76ff03; + --light-green-a700: #64dd17; + + --lime-50: #f9fbe7; + --lime-100: #f0f4c3; + --lime-200: #e6ee9c; + --lime-300: #dce775; + --lime-400: #d4e157; + --lime-500: #cddc39; + --lime-600: #c0ca33; + --lime-700: #afb42b; + --lime-800: #9e9d24; + --lime-900: #827717; + --lime-a100: #f4ff81; + --lime-a200: #eeff41; + --lime-a400: #c6ff00; + --lime-a700: #aeea00; + + --yellow-50: #fffde7; + --yellow-100: #fff9c4; + --yellow-200: #fff59d; + --yellow-300: #fff176; + --yellow-400: #ffee58; + --yellow-500: #ffeb3b; + --yellow-600: #fdd835; + --yellow-700: #fbc02d; + --yellow-800: #f9a825; + --yellow-900: #f57f17; + --yellow-a100: #ffff8d; + --yellow-a200: #ff0; + --yellow-a400: #ffea00; + --yellow-a700: #ffd600; + + --amber-50: #fff8e1; + --amber-100: #ffecb3; + --amber-200: #ffe082; + --amber-300: #ffd54f; + --amber-400: #ffca28; + --amber-500: #ffc107; + --amber-600: #ffb300; + --amber-700: #ffa000; + --amber-800: #ff8f00; + --amber-900: #ff6f00; + --amber-a100: #ffe57f; + --amber-a200: #ffd740; + --amber-a400: #ffc400; + --amber-a700: #ffab00; + + --orange-50: #fff3e0; + --orange-100: #ffe0b2; + --orange-200: #ffcc80; + --orange-300: #ffb74d; + --orange-400: #ffa726; + --orange-500: #ff9800; + --orange-600: #fb8c00; + --orange-700: #f57c00; + --orange-800: #ef6c00; + --orange-900: #e65100; + --orange-a100: #ffd180; + --orange-a200: #ffab40; + --orange-a400: #ff9100; + --orange-a700: #ff6d00; + + --deep-orange-50: #fbe9e7; + --deep-orange-100: #ffccbc; + --deep-orange-200: #ffab91; + --deep-orange-300: #ff8a65; + --deep-orange-400: #ff7043; + --deep-orange-500: #ff5722; + --deep-orange-600: #f4511e; + --deep-orange-700: #e64a19; + --deep-orange-800: #d84315; + --deep-orange-900: #bf360c; + --deep-orange-a100: #ff9e80; + --deep-orange-a200: #ff6e40; + --deep-orange-a400: #ff3d00; + --deep-orange-a700: #dd2c00; + + --brown-50: #efebe9; + --brown-100: #d7ccc8; + --brown-200: #bcaaa4; + --brown-300: #a1887f; + --brown-400: #8d6e63; + --brown-500: #795548; + --brown-600: #6d4c41; + --brown-700: #5d4037; + --brown-800: #4e342e; + --brown-900: #3e2723; + + --grey-50: #fafafa; + --grey-100: #f5f5f5; + --grey-200: #eee; + --grey-300: #e0e0e0; + --grey-400: #bdbdbd; + --grey-500: #9e9e9e; + --grey-600: #757575; + --grey-700: #616161; + --grey-800: #424242; + --grey-900: #212121; + + --blue-grey-50: #eceff1; + --blue-grey-100: #cfd8dc; + --blue-grey-200: #b0bec5; + --blue-grey-300: #90a4ae; + --blue-grey-400: #78909c; + --blue-grey-500: #607d8b; + --blue-grey-600: #546e7a; + --blue-grey-700: #455a64; + --blue-grey-800: #37474f; + --blue-grey-900: #263238; + + --theme-primary: #d81b60; + --theme-secondary: #3949ab; + --theme-on-primary: #fff; + --theme-on-secondary: #fff; + --theme-background: #fff; + + --theme-padding: 15px; + --theme-phone-header-height: 45px; +} + +html, body { + position: relative; + width: 100%; + height: 100%; + background: var(--theme-background); + margin: 0; + padding: 0; + font-family: Tahoma, Verdana, Geneva, sans-serif; +} + +.drop-shadow { + box-shadow: 0 0 12px #e4e4e4; +} + +h1 { + font-weight: 100; +} \ No newline at end of file diff --git a/public/index.html b/public/index.html index db2faac..aecc28c 100644 --- a/public/index.html +++ b/public/index.html @@ -1,66 +1,21 @@ - - - - Luxcena Neo + + + + + - - - - + Luxcena NEO - -
                - -
                -
                + + + -
                -
                + + + + -
                - -
                -
                -
                - General -

                - Current script:
                - Uptime: -

                -
                -
                -
                - -
                -
                -
                - Logs - - -
                -
                - -
                -
                - -
                - -
                - -
                - - - - - - - + + diff --git a/public/logviewer.html b/public/logviewer.html deleted file mode 100644 index 7b94a61..0000000 --- a/public/logviewer.html +++ /dev/null @@ -1,64 +0,0 @@ - - - - - Luxcena Neo - LogViewer - - - - - - - -
                - -
                -
                - -
                -
                - - -
                -
                -
                - - -
                -
                -
                - - -
                -
                -
                -
                -
                -
                - This is nothing useful at the moment. Please view the file in your terminal. If you want to watch it, you can go to the rootDir of Luxcena-Neo, and type: -
                tail -fn 20 usrData/logs/logger.log
                - This will show the last twenty lines of the file, an show any new lines. -
                -
                -
                -
                -
                - - - - - - diff --git a/public/manifest.json b/public/manifest.json new file mode 100644 index 0000000..ad0f497 --- /dev/null +++ b/public/manifest.json @@ -0,0 +1,36 @@ +{ + "short_name": "Lux-neo", + "name": "Luxcena Neo", + "icons": [ + { + "src": "./assets/img/logo/Icon-BG-192h.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "./assets/img/logo/Icon-BG-512h.png", + "type": "image/png", + "sizes": "512x512" + }, + { + "src": "./assets/img/logo/Icon-BG-0.5x.png", + "type": "image/png", + "sizes": "800x800" + }, + { + "src": "./assets/img/logo/Icon-BG-1x.png", + "type": "image/png", + "sizes": "1600x1600" + }, + { + "src": "./assets/img/logo/Icon-BG-2x.png", + "type": "image/png", + "sizes": "3200x3200" + } + ], + "start_url": "./", + "background_color": "#d81b60", + "display": "standalone", + "scope": "./", + "theme_color": "#d81b60" +} diff --git a/public/neo_ide.html b/public/neo_ide.html deleted file mode 100644 index fb65ddf..0000000 --- a/public/neo_ide.html +++ /dev/null @@ -1,273 +0,0 @@ - - - - - Luxcena Neo - Neo IDE - - - - - - - - -
                - - - - - -
                -
                -
                -
                - -
                -
                - - output -
                -
                - -
                -
                - -
                - - - - - - - - - diff --git a/public/scripts.html b/public/scripts.html deleted file mode 100644 index bb42bdf..0000000 --- a/public/scripts.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - - Luxcena Neo - scripts - - - - - - - -
                - -
                -
                - -
                - -
                  -
                  -
                - -
                  -
                  -
                - - - -
                - add - -
                - - -
                - - - - - - - diff --git a/public/settings.html b/public/settings.html deleted file mode 100644 index d7fa5d9..0000000 --- a/public/settings.html +++ /dev/null @@ -1,50 +0,0 @@ - - - - - Luxcena Neo - - - - - - - -
                - -
                -
                - -
                - -
                -
                -
                -
                -
                - Version -

                - Current Version: 0.0.1 on branch dev
                - New update available (0.0.1-2 on dev) -

                -
                -
                -
                -
                - -
                - - -
                - - - - - - - diff --git a/public/strip_setup.html b/public/strip_setup.html deleted file mode 100644 index 606d527..0000000 --- a/public/strip_setup.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - - - - - - - -
                - - - -
                - -
                - -
                - -
                -
                -
                - -
                - - -
                - -
                - - -
                - -
                - - -
                - -
                -
                -
                - -
                -
                -
                - - Segment config... - -
                -
                -
                - -
                - -
                -
                -
                -
                -

                Explanation of them different configuration modes. "⮽" is the symbol used for LEDs, everything else is just wire.

                -
                Straight:
                - Everything is in a stright line, or the cable is looped around. -
                -└⮽─⮽─⮽─⮽─⮽─⮽─⮽─⮽┐
                -
                -└⮽─⮽─⮽─⮽┐
                -┌────────┘
                -└⮽─⮽─⮽─⮽┐
                -                            
                -
                Snake:
                - The diodes are in a "snake"-pattern. -
                -└⮽─⮽─⮽─⮽┐
                -┌⮽─⮽─⮽─⮽┘
                -└⮽─⮽─⮽─⮽┐
                -                            
                -
                Crazy:
                -
                This will just assume you have no idea what you are doing, and make a random configuration for you. based purely on the number of LEDs you have. -
                -└⮽─⮽x⮽─⮽
                -   └─┐
                -┌⮽─⮽x⮽─⮽┐
                -└⮽─⮽─⮽─⮽┘
                -                            
                -
                -
                -
                -
                - -
                - - - - - diff --git a/public/update/index.html b/public/update/index.html deleted file mode 100644 index a2f404f..0000000 --- a/public/update/index.html +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - -
                -
                -
                L
                -
                U
                -
                X
                -
                C
                -
                E
                -
                N
                -
                A
                -
                 
                -
                I
                -
                S
                -
                 
                -
                U
                -
                P
                -
                D
                -
                A
                -
                T
                -
                I
                -
                N
                -
                G
                -
                -
                -

                -
                -
                - - - - diff --git a/rollup.config.js b/rollup.config.js new file mode 100644 index 0000000..2f97184 --- /dev/null +++ b/rollup.config.js @@ -0,0 +1,58 @@ +import svelte from 'rollup-plugin-svelte'; +import commonjs from '@rollup/plugin-commonjs'; +import resolve from '@rollup/plugin-node-resolve'; +import nodeResolve from "@rollup/plugin-node-resolve"; +import replace from "@rollup/plugin-replace"; +import livereload from 'rollup-plugin-livereload'; +import { terser } from 'rollup-plugin-terser'; +import css from 'rollup-plugin-css-only'; +import postcss from 'rollup-plugin-postcss'; +import autoPreprocess from 'svelte-preprocess'; + +const production = !process.env.ROLLUP_WATCH; + +export default { + input: 'src_frontend/main.js', + output: { + sourcemap: true, + format: 'iife', + name: 'app', + file: 'public/build/bundle.js' + }, + plugins: [ + svelte({ + compilerOptions: { + // enable run-time checks when not in production + dev: !production + }, + preprocess: autoPreprocess() + }), + // we'll extract any component CSS out into + // a separate file - better for performance + css({ output: 'bundle.css' }), + + // If you have external dependencies installed from + // npm, you'll most likely need these plugins. In + // some cases you'll need additional configuration - + // consult the documentation for details: + // https://github.com/rollup/plugins/tree/master/packages/commonjs + resolve({ + browser: true, + dedupe: ['svelte'] + }), + nodeResolve({ + browser: true + }), + replace({ + 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV) + }), + commonjs(), + + // If we're building for production (npm run build + // instead of npm run dev), minify + production && terser() + ], + watch: { + clearScreen: false + } +}; diff --git a/runDev.js b/runDev.js new file mode 100644 index 0000000..6fbd702 --- /dev/null +++ b/runDev.js @@ -0,0 +1,346 @@ +let fs = require("fs"); +let chokidar = require('chokidar'); +let blessed = require('blessed'); +let contrib = require('blessed-contrib'); +let colors = require('colors'); +let { spawn } = require("child_process"); +Tail = require('tail').Tail; + + +/** + * CONFIG + */ + +webpackLaunchCommand = ["npm", "run", "dev:frontend"]; +nodejsLaunchCommand = ["node", "app.js", `"${__dirname}/tmp"`]; +mkdocsLaunchCommand = ["mkdocs", "build"]; + +nodejsFileWatcherPaths = [ + "app.js", + "src/" +]; +nodejsFileWatcherIgnore = [ + ".log" +]; + +mkdocsFileWatcherPaths = [ + "docs/", + "mkdocs.yml" +]; +mkdocsFileWatcherIgnore = [ + +]; +/* + * END OF CONFIG + */ + +class watcher { + + constructor(include, ignore, out, label, callback) { + this.include = include; + this.ignore = ignore; + this.out = out; + this.label = label; + this.callback = callback; + + this.fswatcher = this.setup(() => { + this.ready() + }) + } + + setup(callback) { + return chokidar.watch(this.include).on("ready", () => { + callback(); + }) + } + + ready() { + this.out.log(colors.magenta(this.label) + ": Watching files..."); + this.fswatcher + .on("add", this.eventHandler.bind(this)) + .on("change", this.eventHandler.bind(this)) + .on("unlink", this.eventHandler.bind(this)) + .on("addDir", this.eventHandler.bind(this)) + .on("unlinkDir", this.eventHandler.bind(this)); + } + + eventHandler(path) { + for (let i=0; i < this.ignore.length; i++) { + if (path.includes(this.ignore[i])) { + this.out.log(colors.magenta(this.label) + ": " + colors.red("IGNORED") + ` ${path}`); + return; + } + } + + this.out.log(colors.magenta(this.label) + `: ${path}`); + this.callback(); + } + + exit() { + this.fswatcher.close(); + } + +} + +// This is obv. not good OOP, but it is easy... +class runDevApp { + + constructor(webpackLaunchCommand, + nodejsLaunchCommand, + mkdocsLaunchCommand, + nodejsFileWatcherPaths, + nodejsFileWatcherIgnore, + mkdocsFileWatcherPaths, + mkdocsFileWatcherIgnore + ) { + this.processList = []; + this.nodeRestarting = false; + + this.ensureUserdirectories(); + this.setupBlessed(); + + this.webpackProcessPID = this.spawnNewProcess(webpackLaunchCommand, this.webpackLog); + this.nodejsPID = this.spawnNewProcess(nodejsLaunchCommand, this.nodeLog); + + this.docsWatcher = new watcher( + mkdocsFileWatcherPaths, + mkdocsFileWatcherIgnore, + this.fswatchLog, "DOCS", + () => { + this.spawnNewProcess(mkdocsLaunchCommand, this.mkdocsLog); + } + ); + + this.nodeWatcher = new watcher( + nodejsFileWatcherPaths, + nodejsFileWatcherIgnore, + this.fswatchLog, "NODE", + () => { + if (!this.nodeRestarting) { + this.nodeRestarting = true; + + if (this.processList.hasOwnProperty(this.nodejsPID)) { + this.nodeLog.log("Restarting node..."); + this.processList[this.nodejsPID][1].kill(1); + this.scriptLog.log(colors.magenta(this.nodejsPID) + ": " + colors.red("Kill sendt")); + } else { + this.nodeLog.log("Starting node..."); + } + + var exitWait = setInterval(() => { + if (!this.processList.hasOwnProperty(this.nodejsPID)) { + clearInterval(exitWait); + this.nodejsPID = this.spawnNewProcess( + nodejsLaunchCommand, + this.nodeLog + ); + this.nodeRestarting = false; + } + }, 100); + this.scriptLog.log(colors.magenta(this.nodejsPID) + ": Waiting till exit"); + } + }); + + } + + ensureUserdirectories() { + // Generate all the temporary userdata-folder nececatty for the main node app + if (!fs.existsSync("./tmp")) { + fs.mkdirSync("./tmp") + } + if (!fs.existsSync("./tmp/userdata")) { + fs.mkdirSync("./tmp/userdata") + } + if (!fs.existsSync("./tmp")) { + fs.mkdirSync("./tmp/userdata") + } + } + + setupBlessed() { + this.screen = blessed.screen(); + this.grid = new contrib.grid({rows: 12, cols: 12, screen: this.screen}); + + this.logDefaultOptions = { + fg: "green", + selectedFg: "green", + height: '100%', + scrollable: true, + alwaysScroll: true, + scrollbar: { + ch: ' ', + inverse: true + }, + mouse: true, + }; + + this.fswatchLog = this.grid.set(0, 2, 4, 3, blessed.log, + Object.assign({}, this.logDefaultOptions, { + label: 'Watcher', + })); + this.scriptLog = this.grid.set(2, 0, 6, 2, blessed.log, + Object.assign({}, this.logDefaultOptions, { + label: 'Actions', + })); + this.nodeLog = this.grid.set(6, 5, 6, 7, blessed.log, + Object.assign({}, this.logDefaultOptions, { + label: 'Node', + })); + this.mkdocsLog = this.grid.set(4, 2, 8, 3, blessed.log, + Object.assign({}, this.logDefaultOptions, { + label: 'MkDocs', + })); + this.webpackLog = this.grid.set(0, 5, 6, 7, blessed.log, + Object.assign({}, this.logDefaultOptions, { + label: 'Webpack', + border: {type: "line", fg: "yellow"} + })); + this.activeProcessesTable = this.grid.set(8, 0, 4, 2, contrib.table, { + keys: true, + fg: 'green', + selectedFg: 'black', + selectedBg: 'green', + interactive: true, + label: 'Active Processes', + width: '100%', + height: '100%', + border: {type: "line", fg: "cyan"}, + columnSpacing: 2, //in chars + columnWidth: [6, 20] /*in chars*/ + }); + this.processCount = this.grid.set(0, 0, 2, 2, contrib.lcd, { + segmentWidth: 0.1, + segmentInterval: 0.06, + strokeWidth: 0.2, + elements: 3, + display: 0, + elementSpacing: 4, + elementPadding: 0, + color: "green", + label: "Process count" + }); + + this.activeProcessesTable.focus(); + + this.screen.key(['escape', 'q', 'C-c', "s"], function(ch, key) { + this.exit(); + }.bind(this)); + } + + updateTableOfProcesses() { + let newTableData = []; + let that = this; + + Object.keys(this.processList).forEach(function(key, index) { + newTableData.push( [key, that.processList[key][0]] ); + }, this.processList); + + this.activeProcessesTable.setData({ + headers:[" PID", " Command"], + data: newTableData + }); + + let processN = Object.keys(this.processList).length; + if (processN > 2) { + this.processCount.setOptions({color: "yellow"}); + } else if (processN < 1) { + this.processCount.setOptions({color: "green"}); + } else { + this.processCount.setOptions({color: "blue"}); + } + this.processCount.setDisplay(processN); + + this.screen.render() + } + + logProcessOutput(data, out) { + let lines = data.toString().split(/\r?\n/); + for (let i=0; i < lines.length; i++) { + out.log(lines[i].replace("\n", "")); + } + } + + spawnNewProcess(args, out) { + // Spawn the new process with "unbuffer" + const proc = spawn("unbuffer", args, { + shell: true, + cwd: __dirname + }); + + proc.stdout.on("data", (data) => { + this.logProcessOutput(data, out) + }); + proc.stderr.on("data", (data) => { + this.logProcessOutput(data, out) + }); + proc.on("error", () => { + out.log(colors.red("Failed to start node...")); + }); + proc.on("exit", (code) => { + out.log(colors.yellow("Childprocess unresponsive...")); + }); + proc.on("close", (code) => { + + if (code != undefined) { + out.log(colors.red("Process exited with code ") + colors.yellow(code.toString())); + this.scriptLog.log(colors.magenta(proc.pid) + ":" + colors.red(" Exited with ") + colors.yellow(code)); + } else { + out.log(colors.red("Process exited without code")); + this.scriptLog.log(colors.magenta(proc.pid) + ":" + colors.red(" Exited no code")); + } + + delete this.processList[proc.pid.toString()]; + this.updateTableOfProcesses() + }); + + this.processList[proc.pid.toString()] = [args.join(" "), proc]; + this.scriptLog.log(colors.magenta(proc.pid) + `: New process`); + process.stdout.write("\x07"); + + this.updateTableOfProcesses(); + return proc.pid; + } + + exit() { + // Stage one : Stop watchers + this.docsWatcher.exit(); + this.nodeWatcher.exit(); + + // Stage two : Send kill signal to all child-processes + Object.keys(this.processList).forEach((key, index) => { + this.scriptLog.log(colors.magenta(key) + ":" + colors.red(" KILL SENDT")); + this.processList[key][1].kill(1); + }, this.processList); + + // Stage three : wait a second before starting to check if all + // process' are dead. + setTimeout(() => { + var exitWait = setInterval(() => { + this.screen.render(); // Render each time to make sure updates are displayed + if (this.processList.length > 0) { + clearInterval(exitWait), + this.scriptLog.log(""); + this.scriptLog.log("Process' dead"); + this.scriptLog.log("Exiting..."); + this.processCount.setOptions({color: "green"}); + this.processCount.setDisplay("EXIT"); + this.screen.render(); + setTimeout(() => { + process.exit(0) + }, 3000); + } + }, 100); + }, 1000); + } + +} + + +let app = new runDevApp( + webpackLaunchCommand, + nodejsLaunchCommand, + mkdocsLaunchCommand, + nodejsFileWatcherPaths, + nodejsFileWatcherIgnore, + mkdocsFileWatcherPaths, + mkdocsFileWatcherIgnore +); diff --git a/src/Logger/index.js b/src/Logger/index.js new file mode 100644 index 0000000..2ee216a --- /dev/null +++ b/src/Logger/index.js @@ -0,0 +1,79 @@ +let fse = require("fs-extra"); + +const level = { + EMERG: "EMERGENCY", + ALERT: "ALERT", + CRIT: "CRITICAL", + ERROR: "ERROR", + WARNING: "WARNING", + NOTICE: "NOTICE", + INFO: "INFO", + DEBUG: "DEBUG", + + ACCESS: "" +}; + + +Object.defineProperty(String.prototype, "lPad", { + value: function lPad(len, chr="0") { + str = this; + var i = -1; + if (!chr && chr !== 0) chr = ' '; + len = len - this.length; + while (++i < len) { + str = chr + str; + } + return str; + }, + writeable: true, + configurable: true +}); + + +function getTimeStamp() { + let CDate = new Date(); + let day = CDate.getDate().toString().lPad(2); + let month = (CDate.getMonth() + 1).toString().lPad(2); // +1 because js starts to count at 0 + let year = CDate.getFullYear(); + let hour = CDate.getHours().toString().lPad(2); + let min = CDate.getMinutes().toString().lPad(2); + let sec = CDate.getSeconds().toString().lPad(2); + let ms = Math.round(CDate.getMilliseconds() / 10).toString().lPad(2); // divide by 10 to make the last digit decimal, then round. + + return `${day}.${month}.${year}-${hour}:${min}:${sec}.${ms}`; +} + + +function log(object, logLevel=level.DEBUG, file="/lux-neo.log") { + fse.ensureFileSync(__logdir + file); + + let formattedLogString = `[${getTimeStamp()}] ${logLevel} ${object}`; + console.log(formattedLogString); // @TODO: This should probably be removed, used for dev currently + + + fse.appendFile( + __logdir + "/lux-neo.log", + formattedLogString + '\n' + ).catch(err => { + console.log("EMERGENCY Could not write to log-file 'lux-neo.log'..."); + console.log("DEBUG FileWriteError: " + err) + }); + + if (__event != undefined) { + __event.emit("logger", logLevel, object); + } +} + +module.exports = { + level, + log, + emerg: (object) => { log(object, level.EMERG); }, + alert: (object) => { log(object, level.ALERT); }, + crit: (object) => { log(object, level.CRIT); }, + error: (object) => { log(object, level.ERROR); }, + warning: (object) => { log(object, level.WARNING); }, + notice: (object) => { log(object, level.NOTICE); }, + info: (object) => { log(object, level.INFO); }, + debug: (object) => { log(object, level.DEBUG); }, + access: (object) => { log(object, level.ACCESS, file="/access.log"); } +}; diff --git a/src/NeoRuntimeManager/RuntimeProcess.js b/src/NeoRuntimeManager/RuntimeProcess.js new file mode 100644 index 0000000..60f6a28 --- /dev/null +++ b/src/NeoRuntimeManager/RuntimeProcess.js @@ -0,0 +1,150 @@ +let fs = require("fs-extra"); +let spawn = require("child_process"); + +class RuntimeProcess { + + constructor(_modePath, _onVarChange, _eventEmitter) { + this.modePath = _modePath; + this.logfile = `${this.modePath}/mode.log`; + + this.stdout = ""; + this.stderr = ""; + + this.fl = false; + this.proc = null; + + this.isRunning = false; + this.exitCode = null; + + this.variables = {}; + this.globvars = {}; + this.onVarChange = _onVarChange; + this.eventEmitter = _eventEmitter; + } + + start() { + if (this.isRunning) { + console.log("PROCESS ALREADY RUNNING"); + return; + } + this.isRunning = true; + this.proc = spawn.spawn( + "python3", + [ + "-u", // This makes us able to get real-time output + `${__basedir}/NeoRuntime/Runtime/neo_runtime.py`, + `--strip-config="${__datadir}/config/strip.ini"`, + `--mode-path="${this.modePath}"`, + `--mode-entry=script` + ] + ); + + this.proc.on('error', (err) => { + console.log(err); + }); + + fs.ensureFileSync(this.logfile); + this.eventEmitter.emit("proc:start"); + + this.proc.stdout.on('data', (_stdout) => { + let stdout_str = _stdout.toString(); + + let regex = /{ ":::data:": { (.*) } }/gi; + let data = stdout_str.match(regex); + stdout_str = stdout_str.replace(regex, () => ""); + + if ((data != null) && (data.length > 0)) { + try { + this.processVarData(data) + } catch {} + } + + if (stdout_str.replace("\n", "").replace(" ", "") == "") { + // In this case, we want to ignore the data. + } else { + // stdout_str = stdout_str.replace(/\n$/, "") + fs.appendFile(this.logfile, "\n====stdout====\n" + stdout_str); + this.eventEmitter.emit("proc:stdout", stdout_str); + } + }); + + this.proc.stdout.on('end', () => { + fs.appendFile(this.logfile, "\n"); + }); + + this.proc.stderr.on('data', (_stderr) => { + // let stderr_str = _stderr.toString().replace(/\n$/, "") + let stderr_str = _stderr.toString() + fs.appendFile(this.logfile, "\n====stderr====\n" + stderr_str); + this.eventEmitter.emit("proc:stderr", stderr_str); + }); + + this.proc.stderr.on('end', () => { + fs.appendFile(this.logfile, "\n"); + }); + + this.proc.on('close', (code) => { + if (code) { + fs.appendFile(this.logfile, "\n====close====\nScript exited with code " + code.toString()); + } + this.eventEmitter.emit("proc:exit", 0); + this.isRunning = false; + this.exitCode = code; + }); + + } + + stop(restart=false) { + try { + if (restart) { + this.proc.once("close", () => { + setTimeout(() => this.start(), 500); + }); + } + this.proc.kill("SIGINT"); + } catch (err) { + console.log(err); + } + } + + processVarData(data) { + data = JSON.parse(data)[":::data:"]; + if (data.hasOwnProperty("globvars")) { + forEachDiff(data["globvars"], this.globvars, (key, newVal) => { + this.onVarChange("globvars", key, newVal); + }); + this.globvars = data["globvars"]; + } + if (data.hasOwnProperty("variables")) { + forEachDiff(data["variables"], this.variables, (key, newVal) => { + this.onVarChange("variables", key, newVal); + }); + this.variables = data["variables"]; + } + } + +} + +const isObject = v => v && typeof v === 'object'; + +/** + * Will call callback on all the differences between the dicts + */ +function forEachDiff(dict1, dict2, callback) { + for (const key of new Set([...Object.keys(dict1), ...Object.keys(dict2)])) { + if (isObject(dict1[key]) && isObject(dict2[key])) { + if (dict1[key].value !== dict2[key].value) { + callback(key, dict1[key]); + } + } else if (dict1[key] !== dict2[key]) { + if (isObject(dict2[key]) && (dict1[key] == null)) { + dict2[key].value = null; + callback(key, dict2[key]) + } else { + callback(key, dict1[key]); + } + } + } +} + +module.exports = RuntimeProcess; diff --git a/src/NeoRuntimeManager/index.js b/src/NeoRuntimeManager/index.js new file mode 100644 index 0000000..62acb8a --- /dev/null +++ b/src/NeoRuntimeManager/index.js @@ -0,0 +1,309 @@ +/** + * This module is used to execute and communicate with a python NeoRuntime instance. + * + * @author jakobst1n. + * @since 19.12.2019 + */ + +const fs = require("fs"); +const fsPromises = fs.promises; +const RuntimeProcess = require("./RuntimeProcess"); +let logger = require(__basedir + "/src/logger"); +const EventEmitter = require('events'); + +/** @type {object} this should be a pointer to a object referencing all neoModules (see app.js) */ +let neoModules; + +/** @type {string} Currently active mode */ +let modeId = null; +/** @type {int} Last exit code of a mode */ +let modeExitCode = 0; +/** @type {RuntimeProcess} This is the current RuntimeProcess instance */ +let runtimeProcess = null; +/** @type {EventEmitter} This is used to emit events when things change */ +const eventEmitter = new EventEmitter(); +/** @type {boolean} If this is true, we will not do things the usual way */ +let modeDebuggerActive = false; +/** @type {string} Should be the modeId the debugger is attached to */ +let modeDebuggerId = null; + +eventEmitter.on("proc:exit", (code) => modeExitCode = code); + +/** + * Check if a path id actually a mode (if it is a folder with a script.py file) + * + * @param {string} path - Path to check. + * + * @return {boolean} wether the path points to a valid mode. + */ +function isMode(path) { + if (!fs.existsSync(path)) { return false; } + let folderStat = fs.statSync(path); + if (!folderStat.isDirectory()) { return false; } + if (!fs.existsSync(path + "/script.py")) { return false; } + return true; +} + +/** + * Get all ids of modes that can be set. + * + * @returns {array} All modeids + */ +function listModes() { + let modeDirs = [ + ["builtin/", fs.readdirSync(__basedir + "/NeoRuntime/builtin")], + ["remote/", fs.readdirSync(__datadir + "/remoteCode")], + ["user/", fs.readdirSync(__datadir + "/userCode")] + ] + let validModes = []; + for (modeDir of modeDirs) { + for (modeName of modeDir[1]) { + let modeId = `${modeDir[0]}${modeName}`; + if (isMode(getModePath(modeId))) { + validModes.push(modeId); + } + } + } + return validModes; +} + +/** + * Change mode, stop the old one and start the new one. + * + * @param {string} _modeId - Id of the mode to change to. + * + * @return {object} A standardform return object. + */ +function setMode(_modeId) { + if (modeDebuggerActive && (_modeId != modeDebuggerId)) { + return {success: false, reason: "debugger active", detail: "Cannot change mode when debugger is active."} + } + if (!isMode(getModePath(_modeId))) { + console.log(`Invalid mode "${_modeId}".`); + return {success: false, reason: "unknown modeId"}; + } + logger.info(`Changing mode to "${_modeId}".`); + + let globvarsTmp = {}; + let variablesTmp = {}; + if (runtimeProcess != null) { + globvarsTmp = runtimeProcess.globvars; + variablesTmp = runtimeProcess.variables; + } + + stopMode(); + + modeId = _modeId; + neoModules.userData.config.activeMode = modeId; + eventEmitter.emit("change", "mode", modeId); + + runtimeProcess = new RuntimeProcess(getModePath(_modeId), onVariableChange, eventEmitter); + runtimeProcess.globvars = globvarsTmp; + runtimeProcess.variables = variablesTmp; + startMode(); + return {success: true} +}; + +/** + * Get current mode + * + * @return {string} current modeId + */ +function currentMode() { + return modeId; +} + +/** + * Will attempt to stop current mode + * + * @return {object} A standardform return object. + */ +function stopMode(restart=false) { + if (modeRunning()) { + runtimeProcess.stop(restart); + } + return {success: true} +}; + +/** + * Will attempt to start current mode + * + * @return {object} A standardform return object. + */ +function startMode() { + if (runtimeProcess === null) { return {success: false, reason: "no runtimeprocess", detail: "Runtimeprocess not set, did you mean to call setMode?"}; } + runtimeProcess.start(); + return {success: true} +}; + +/** + * Will attempt to restart current mode + * + * @return {object} A standardform return object. + */ +function restartMode() { + return stopMode(true); +}; + +/** + * Checks if mode is running currently + * + * @return {boolean} if mode is running + */ +function modeRunning() { + if (runtimeProcess === null) { return false; } + return runtimeProcess.isRunning; +}; + +/** + * Get the full system path to a mode + * + * @param {string} modeId + * + * @return {string} Full path of mode + */ +function getModePath(modeId) { + let path = modeId.split("/"); + let location = path.splice(0, 1).toString(); + if (location === "user") { path = __datadir + "/userCode/" + path.join("/"); } + if (location === "remote") { path = __datadir + "/remoteCode/" + path.join("/"); } + if (location === "builtin") { path = __basedir + "/NeoRuntime/builtin/" + path.join("/"); } + return path; +} + +/** + * This should be called by RuntimeProcess when a variable changes in the mode + * + * @param {string} location - This is globvars/variables + * @param {string} name - Name of the variable + * @param {any} newValue - The new value of the variable + */ +function onVariableChange(location, name, newValue) { + if (location == "variables") { + eventEmitter.emit("change", `variable/${name}`, newValue) + } else if (location == "globvars") { + eventEmitter.emit("change", `${name}`, newValue) + } +} + +/** + * Function that returns all globvars (brightness, power_on) as the values they + * had last time we heard from the python script. + * + * @return {object} + */ +function getGlobvars() { + if (!modeRunning()) { return {}; } + return runtimeProcess.globvars; +} + +/** + * Sets value of a globvar power_on/brightness. + * + * @param {string} name - Name of the variable power_on/brightness + * @param {any} value - The value the variable should be set to + * + * @return {object} Standardform return object + */ +function setGlobvar(name, value) { + if (!modeRunning()) { return; } + runtimeProcess.proc.stdin.write(`:::setglob: ${name}:${value}\n`); + return {success: true} +} + +/** + * Get all variables declared in mode + * + * @return {object} + */ +function getVariables() { + if (!modeRunning()) { return {}; } + return runtimeProcess.variables; +} + +/** + * Sets value of a variable + * + * @param {string} name - Name of the variable + * @param {any} value - The value the variable should be set to + * + * @return {object} Standardform return object + */ +function setVariable(name, value) { + if (!modeRunning()) { return; } + runtimeProcess.proc.stdin.write(`:::setvar: ${name}:${value}\n`); + return {success: true} +} + +/** + * Start debugger for a mode + * + * @param {string} modeId - The mode to debug + * + * @return {object} Standardform return object + */ +function startDebugger(debuggerModeId) { + if (debuggerModeId.substr(0, 5) !== "user/") { return {success: false, reason: "not user mode"}; } + if (!isMode(getModePath(debuggerModeId))) { return {success: false, reason: "unknown modeId"}; } + if (modeDebuggerActive) { return {success: false, reason: "debugger already active"}; } + logger.info(`Starting debugger for ${debuggerModeId}`); + modeDebuggerActive = true; + modeDebuggerId = debuggerModeId; + if (debuggerModeId != modeId) { + setMode(debuggerModeId); + } else { + restartMode(); + } + return {success: true, code: fs.readFileSync(getModePath(debuggerModeId) + "/script.py").toString()} +} + +/** + * Save mode + */ +function saveModeCode(_modeId, code) { + if (!modeDebuggerActive) { return {success: false, reason: "debugger not active"}; }; + if (_modeId != modeDebuggerId) { return {success: false, reason: "modeid not the same as debuggermodeid"}; }; + fs.writeFileSync(getModePath(`${modeDebuggerId}/script.py`), code); + return {success: true}; +} + +/** + * Stop the active debugger + * + * @return {object} Standardform return object + */ +function stopDebugger() { + if (!modeDebuggerActive) { return {success: true, detail: "No debugger active"} } + logger.info(`Stopping debugger`); + modeDebuggerActive = false; + return {success: true} +} + +module.exports = (_neoModules) => { + neoModules = _neoModules; + return { + event: eventEmitter, + modes: listModes, + mode: { + current: currentMode, + set: (modeId) => setMode(modeId), + status: { + modeRunning: modeRunning(), + modeExitCode: modeExitCode + }, + globvars: { + get: getGlobvars, + set: setGlobvar + }, + variables: { + get: getVariables, + set: setVariable + } + }, + getModePath, + isMode, + modeRunning, + startDebugger, stopDebugger, saveModeCode, + startMode, stopMode, restartMode + } +}; \ No newline at end of file diff --git a/src/SSLCert/index.js b/src/SSLCert/index.js new file mode 100644 index 0000000..6dad579 --- /dev/null +++ b/src/SSLCert/index.js @@ -0,0 +1,144 @@ +/** + * Module that exports an instance of CertMon + * see class definition to see what it does. + * + * Requires global var '__datadir' to be set. + * + * @author jakobst1n. + * @since 14.16.2019 + */ + let logger = require(__basedir + "/src/logger"); + const fs = require("fs"); + const { execSync } = require("child_process"); + +var neoModules; + + /** + * This checks if the server has a valid certificate, if not, + * it will generate one. + */ + class CertMon { + + constructor(configPath, certPath, httpsConfig) { + this.certPath = __datadir + "/config/certs/"; + + let valid = this.checkValidity(); + if (!valid) { + logger.notice("No valid certificate found, creating one now."); + this.generateCert(); + } + + let interval = setInterval(() => { + let certIsValid = this.checkValidity(); + if (!valid) { + logger.crit("Certificate no longer valid, server should reboot to make a new one."); + } + }, 1440000); // Run once every day + } + + checkValidity() { + let sslConfig = this.getConfig(); + if (!sslConfig["certMade"]) { + logger.debug("'certMade' in config is false, assuming no valid certificate"); + return false; + } + let expire = ((sslConfig["certExpire"] - Date.now()) / 86400000).toFixed(2); + if (expire > 0) { + logger.debug(`Certificate should be valid for ${expire} more days.`); + } else { + expire = Math.abs(expire); + logger.debug(`Certificate expired ${expire} days ago`); + return false; + } + return true; + } + + getConfig() { + return neoModules.userData.config.SSLCert; + } + + updateConfig(parameters) { + neoModules.userData.config.set(parameters); + } + + generateCert() { + let certPath = this.certPath; + let config = this.getConfig(); + + + // Create Root Certificate Autority + let res = openssl( + `genrsa ` + + `-out "${certPath}/root-CA.key.pem" ` + + `2048` + ); + + // Self sign the Root Certificate Autority + res = openssl( + `req ` + + `-x509 ` + + `-new ` + + `-nodes ` + + `-key "${certPath}/root-CA.key.pem" ` + + `-days 1024 ` + + `-out "${certPath}/root-CA.crt.pem" ` + + `-subj "/C=NO/ST=Oslo/L=Oslo/O=Luxcena Neo Self-Signing Authority/CN=${config.CN}"` + ); + + // Create a Device Certificate for each domain, + // such as example.com, *.example.com, awesome.example.com + // NOTE: You MUST match CN to the domain name or ip address you want to use + res = openssl( + `genrsa ` + + `-out "${certPath}/privkey.pem" ` + + `2048` + ); + + // Create a request from your Device, which your Root CA will sign + res = openssl( + `req ` + + `-new ` + + `-key "${certPath}/privkey.pem" ` + + `-out "${certPath}/csr.pem" ` + + `-subj "/C=NO/ST=Oslo/L=Oslo/O=Luxcena Neo Self-Signing Autohity/CN=${config.CN}"` + ); + + // Sign the request from Device with your Root CA + // -CAserial certs/ca/my-root-ca.srl + res = openssl( + `x509 ` + + `-req ` + + `-in "${certPath}/csr.pem" ` + + `-CA "${certPath}/root-CA.crt.pem" ` + + `-CAkey "${certPath}/root-CA.key.pem" ` + + `-CAcreateserial ` + + `-out "${certPath}/cert.pem" ` + + `-days 500` + ); + + let creationDate = Date.now(); + config.certMade = true; + config.certDate = creationDate; + config.certExpire = creationDate + (500*86400000); + config.certCN = config.CN; + + logger.info("Self-signed certificate created."); + + } + + } + +function openssl(command) { + try { + let stdout = execSync("openssl " + command); + return true + } catch (e) { + return false + } + } + +module.exports = (_neoModules) => { + neoModules = _neoModules; + return new CertMon(); +}; + \ No newline at end of file diff --git a/src/SelfUpdater/index.js b/src/SelfUpdater/index.js new file mode 100644 index 0000000..3c5546b --- /dev/null +++ b/src/SelfUpdater/index.js @@ -0,0 +1,68 @@ +let fs = require("fs-extra"); +let url = require("url"); +let request = require('request'); +let exec = require("child_process").exec; +let logger = require(__basedir + "/src/logger"); + +let neoModules; + +class VersionChecker { + + constructor() { + this.CPackageJson = JSON.parse(fs.readFileSync(__basedir + "/package.json")); + this.version = this.CPackageJson["version"]; + this.repoLink = this.CPackageJson["repository"]["url"]; + + this.checkFrequency = neoModules.userData.config.SelfUpdater.checkVersionInterval * 86400000; // Takes in days. + this.repoBranch = neoModules.userData.config.SelfUpdater.branch; + + this.remotePackageJSON = "https://raw.githubusercontent.com" + url.parse(this.repoLink).pathname + "/" + this.repoBranch + "/package.json"; + + this.newVersion = false; + this.newestVersion = this.checkVersion(this.remotePackageJSON); + + this.updateChecker = setInterval(() => { + let newVersion = this.checkVersion(this.remotePackageJSON); + }, this.checkFrequency); + + } + + checkVersion() { + request.get(this.remotePackageJSON, (error, response, body) => { + if (!error && response.statusCode === 200) { + let remotePackageJSON = JSON.parse(body); + let newestVersion = remotePackageJSON["version"]; + if (this.VersionIsNewerThan(newestVersion, this.version)) { + logger.notice("A new version is available on \"" + this.repoBranch + "\" (v" + this.version + ")"); + this.newVersion = true; + } else { + logger.info(`Running newest version (${newestVersion})`); + this.newVersion = false; + } + this.newestVersion = newestVersion; + } else { + logger.notice("Could not find latest version! Please check you internet connection."); + } + }); + } + + VersionIsNewerThan(check, current) { + let checkParts = check.split("."); + let currentParts = current.split("."); + let lCheckParts = checkParts.length; + let lCurrentParts = currentParts.length; + + for (let i = 0; i < lCheckParts; i++) { + if (i >= lCurrentParts) { return true; } + if (Number (checkParts[i]) > Number (currentParts[i])) { return true; } + if (Number (checkParts[i]) < Number (currentParts[i])) { return false; } + } + return false; + } + +} +  +module.exports = (_neoModules) => { + neoModules = _neoModules; + return new VersionChecker(); +}; diff --git a/src/SocketIO/index.js b/src/SocketIO/index.js new file mode 100644 index 0000000..fdaad56 --- /dev/null +++ b/src/SocketIO/index.js @@ -0,0 +1,353 @@ +/** + * This module contains code for handling socketIO clients. + * + * There are two classes, one is a SocketIO controller module. + * The other one is a authorizedclient. + * + * @author jakobst1n. + * @since 19.12.2019 + */ + +let logger = require(__basedir + "/src/logger"); +var exec = require('child_process').exec; +var CryptoJS = require("crypto-js"); +let fs = require("fs"); + +let neoModules; + +const sanitizePath = (path) => path.match(/(user|remote|builtin\/[a-zA-Z0-9-_\/]{1,200})(\.[a-zA-Z0-9]{1,10})?/)[0]; + +/** + * Create the open socketio namespace and setup all listeners. + * + * @param {io} socketio + */ +function createOpenSocketNamespace(io) { + const openNamespace = io.of("/open") + + openNamespace.on("connection", (socket) => { + logger.access(`SOCKET:open Client (${socket.id}@${socket.handshake.headers.host}) connected.`); + + socket.on("name:get", () => { + socket.emit("name", neoModules.userData.config.instanceName); + }); + socket.on("mode:set", (modeId) => { + neoModules.neoRuntimeManager.mode.set(modeId); + }); + socket.on("mode:get", () => { + socket.emit("mode", neoModules.neoRuntimeManager.mode.current()); + }); + socket.on("modelist:get", () => { + socket.emit("modelist", neoModules.neoRuntimeManager.modes()) + }); + socket.on("brightness:set", (brightness) => { + neoModules.neoRuntimeManager.mode.globvars.set("brightness", brightness); + }); + socket.on("brightness:get", () => { + socket.emit("brightness", neoModules.neoRuntimeManager.mode.globvars.get().brightness); + }); + socket.on("power:set", (power) => { + neoModules.neoRuntimeManager.mode.globvars.set("power_on", power); + }); + socket.on("power:get", () => { + socket.emit("power", neoModules.neoRuntimeManager.mode.globvars.get().power_on); + }); + socket.on("var:set", (name, value) => { + neoModules.neoRuntimeManager.mode.variables.set(name, value); + }); + socket.on("vars:get", () => { + socket.emit("vars", neoModules.neoRuntimeManager.mode.variables.get()); + }); + socket.on("modeinfo:get", () => { + socket.emit("modeinfo", { + mode: neoModules.neoRuntimeManager.mode.current(), + brightness: neoModules.neoRuntimeManager.mode.globvars.get().brightness, + power: neoModules.neoRuntimeManager.mode.globvars.get().power_on, + vars: neoModules.neoRuntimeManager.mode.variables.get() + }); + }); + socket.on("authenticate:user", (username, password, callback) => { + let user = neoModules.userData.user.get(username); + if (user == null) { + callback({success: false, reason: "Invalid username/password"}) + logger.access(`SOCKET:open Client (${socket.id}@${socket.handshake.headers.host}) tried to log in as '${username}', wrong username and/or password.`); + return; + } + + let providedHash = hashPassword(password, user.salt); + if (providedHash.hash == user.password) { + let token = createToken(socket); + while (session_tokens.hasOwnProperty(token)) { + token = createToken(socket); + } + + session_tokens[token] = { + expire: (~~(Date.now()) / 1000)+(86400), + host: socket.handshake.headers.host, + user: {username: user.username} + }; + + callback({success: true, user: {username: username}, token: token}) + logger.access(`SOCKET:open Client (${socket.id}@${socket.handshake.headers.host}) authenticated as user '${username}'`); + return; + } + + callback({success: false, reason: "Invalid username/password"}) + logger.access(`SOCKET:open Client (${socket.id}@${socket.handshake.headers.host}) tried to log in as '${username}', wrong username and/or password.`); + }); + + socket.on("disconnect", () => { + logger.access(`SOCKET:open Client (${socket.id}@${socket.handshake.headers.host}) disconnected.`); + }); + }); + + neoModules.neoRuntimeManager.event.on("change", (name, value) => { + if (name == "modelist") { + openNamespace.emit("modelist", neoModules.neoRuntimeManager.modes()); + } else if (["mode", "power_on", "brightness"].includes(name)) { + if (name == "power_on") { name = "power"; } + openNamespace.emit(name, value); + } else { + openNamespace.emit("var", name, value); + } + }); +} + +/** + * @type {object} This is the collection of valid session tokens. + */ +let session_tokens = {}; + +/** + * Middleware that will stop the request if the client does not have a valid + * session token. + * + * @param {object} socket - The socket instance of the connected client + * @param {function} next - The callback to continue the middleware chain + */ +function authorize_middleware(socket, next) { + const token = socket.handshake.auth.token; + + if (session_tokens.hasOwnProperty(token) && + session_tokens[token].host === socket.handshake.headers.host && + session_tokens[token].expire > (~~(Date.now()))) { + socket.data.user = session_tokens[token].user; + next(); + } else { + const err = new Error("not authorized"); + err.data = { content: "invalid session token" }; + next(err); + } +} + +/** + * Create the open socketio namespace and setup all listeners. + * A valid session token is required to connect to this namespace. + * + * @param {io} socetio + */ +function createAuthorizedNamespace(io) { + const authorizedNamespace = io.of("/authed"); + authorizedNamespace.use(authorize_middleware); + authorizedNamespace.on("connection", (socket) => { + logger.access(`SOCKET:authed Client (${socket.id}@${socket.handshake.headers.host}) connected.`); + let debuggerOpen = false; + + socket.emit("user", socket.data.user); + + /* InstanceName */ + socket.on("name:set", (name, fn) => { + neoModules.userData.config.instanceName = name; + fn({success: true}); + io.emit("name", neoModules.userData.config.instanceName); + }); + + /* UserData */ + socket.on("mode:create", (name, template, fn) => { + fn(neoModules.userData.mode.create(name, template)); + }); + socket.on("mode:delete", (modeid, fn) => { + fn(neoModules.userData.mode.delete(modeid)); + }); + + /* LED Config */ + socket.on("led_config:get", () => { + socket.emit("led_config", neoModules.userData.strip.get()); + }); + socket.on("led_config:set", (config) => { + neoModules.userData.strip.set(config); + }); + + /* SelfUpdater */ + socket.on("version:current_number", () => { + socket.emit("version:current_number", neoModules.selfUpdater.version); + }); + socket.on("version:branch", (fn) => { + socket.emit("version:branch", neoModules.selfUpdater.repoBranch); + }); + socket.on("version:newest_number", (fn) => { + socket.emit("version:newest_number", neoModules.selfUpdater.newestVersion); + }); + socket.on("version:check_for_update", (fn) => { + neoModules.selfUpdater.checkVersion(); + socket.emit("version:newest_number", neoModules.selfUpdater.newestVersion); + fn({success: true}); + }); + socket.on("system:update_version", () => { + }); + + /* SSLCert */ + socket.on("sslcert:info", (fn) => { + socket.emit("sslcert:info", {...neoModules.SSLCert.getConfig(), "isValid": neoModules.SSLCert.checkValidity()}); + }); + socket.on("sslcert:generate_new", (fn) => { + neoModules.SSLCert.generateCert(); + fn({success: true}); + }); + + /* System actions */ + socket.on("restart:system", () => { + exec('shutdown -r now', function(error, stdout, stderr){ callback(stdout); }); + }); + socket.on("restart:service", () => { + let p = exec('systemctl restart luxcena-neo'); + p.unref(); + }); + + /* Users */ + socket.on("users:get", () => { + socket.emit("users", neoModules.userData.users()) + }); + socket.on("user:delete", (username, fn) => { + if (username == socket.data.user.username) { fn({success: false, reason: "cannot delete logged in account"}); return; } + fn(neoModules.userData.user.delete(username)); + socket.emit("users", neoModules.userData.users()) + }); + socket.on("user:changeusername", (oldusername, newusername, fn) => { + if (oldusername == socket.data.user.username) { fn({success: false, reason: "cannot change username of logged in account"}); return; } + let user = neoModules.userData.user.get(oldUserName); + if (user == null) { fn({success: false, reason: "unknown username", detail: oldusername}); return; } + user.username = newusername; + let res = neoModules.userData.user.save(user); + if (!res.success) { fn(res); return; } + res = neoModules.userData.user.delete(oldusername) + if (!res.success) { fn(res); return; } + fn({success: true}); + socket.emit("users", neoModules.userData.users()) + }); + socket.on("user:newpassword", (username, newPassword, fn) => { + let user = neoModules.userData.user.get(username); + if (user == null) { fn({success: false, reason: "unknown username", detail: username}); return; } + let newHash = hashPassword(newPassword); + fn(neoModules.userData.user.save(username, newHash.salt, newHash.hash)); + socket.emit("users", neoModules.userData.users()) + }); + socket.on("user:create", (username, newPassword, fn) => { + let user = neoModules.userData.user.get(username); + if (user != null) { fn({success: false, reason: "user already exists", detail: username}); return; } + if (username.length < 1) { fn({success: false, reason: "no username provided"}); return; } + let newHash = hashPassword(newPassword); + fn(neoModules.userData.user.save(username, newHash.salt, newHash.hash)); + socket.emit("users", neoModules.userData.users()) + }); + + /* Editor/debugger */ + let onProcStart = () => socket.emit("editor:proc:start"); + let onProcStop = (code) => socket.emit("editor:proc:exit", code); + let onProcStdout = (stdout) => socket.emit("editor:proc:stdout", stdout); + let onProcStderr = (stderr) => socket.emit("editor:proc:stderr", stderr); + let closeDebugger = () => { + debuggerOpen = false; + neoModules.neoRuntimeManager.event.removeListener("proc:start", onProcStart); + neoModules.neoRuntimeManager.event.removeListener("proc:stop", onProcStop); + neoModules.neoRuntimeManager.event.removeListener("proc:stdout", onProcStdout); + neoModules.neoRuntimeManager.event.removeListener("proc:stderr", onProcStderr); + return neoModules.neoRuntimeManager.stopDebugger(); + }; + socket.on("editor:open", (modeId, fn) => { + let res = neoModules.neoRuntimeManager.startDebugger(modeId); + if (!res.success) { fn(res); return; } + logger.info(`Starting debugger for ${modeId}.`) + debuggerOpen = true; + fn({success: true}) + socket.emit("editor:code", modeId, res.code); + + neoModules.neoRuntimeManager.event.on("proc:start", onProcStart); + neoModules.neoRuntimeManager.event.on("proc:exit", onProcStop); + neoModules.neoRuntimeManager.event.on("proc:stdout", onProcStdout); + neoModules.neoRuntimeManager.event.on("proc:stderr", onProcStderr); + if (neoModules.neoRuntimeManager.modeRunning()) { + socket.emit("editor:proc:start"); + } + }); + socket.on("editor:save", (modeId, code, fn) => { + if (!debuggerOpen) { fn({success: false, reason: "Debugger not open"}); return; }; + fn(neoModules.neoRuntimeManager.saveModeCode(modeId, code)); + }); + socket.on("editor:startmode", (fn) => { + fn(neoModules.neoRuntimeManager.startMode()); + }); + socket.on("editor:stopmode", (fn) => { + fn(neoModules.neoRuntimeManager.stopMode()); + }); + socket.on("editor:restartmode", (fn) => { + fn(neoModules.neoRuntimeManager.restartMode()); + }); + socket.on("editor:close", (fn) => { + fn(closeDebugger()); + logger.info("Stopped debugger"); + }); + + socket.on("disconnect", () => { + logger.access(`SOCKET:authed Client (${socket.id}@${socket.handshake.headers.host}) disconnected.`); + if (debuggerOpen) { + closeDebugger(); + logger.info("Stopped debugger because client disconnected") + } + }); + }); +} + +/** + * Creates an access-token from the clients host-name and the current EPOCH. + * + * @param {client} + * + * @return {string} - The access-token. + */ + function createToken(client) { + let time = Date.now().toString(); + let host = client.handshake.headers.host; + return (CryptoJS.SHA256(`${host}${time}`).toString()); +} + +/** + * Create a new salt and hash from a password. + * + * @param {string} password - The password to hash. + * @param {string} salt - If set, this salt will be used, else a new salt is generated. + * + * @return {object} A object containing a password and a salt property. + */ +function hashPassword(password, salt = null) { + if (salt == null) { + salt = CryptoJS.lib.WordArray.random(128 / 2); + } else { + salt = CryptoJS.enc.Hex.parse(salt); + } + let hash = CryptoJS.PBKDF2(password, salt, { + keySize: 512 / 32, + iterations: 1000, + hasher: CryptoJS.algo.SHA512 + }); + return {hash: hash.toString(), salt: salt.toString()} +} + +module.exports = (_neoModules, io) => { + neoModules = _neoModules; + return { + openNamespace: createOpenSocketNamespace(io), + authorizedNamespace: createAuthorizedNamespace(io) + } +}; + \ No newline at end of file diff --git a/src/UserData/index.js b/src/UserData/index.js new file mode 100644 index 0000000..e5318c9 --- /dev/null +++ b/src/UserData/index.js @@ -0,0 +1,330 @@ +/** + * This module is the entry of UserData. This will ensure the user-dirs and all config-files. + * Also, it will + * + * @author jakobst1n. + * @since 19.12.2019 + */ + +let logger = require(__basedir + "/src/logger"); +let fse = require("fs-extra"); +let ini = require('ini'); + +let neoModules; + +/** + * This method will ensure that all required fields are in config.ini + */ +function ensureMainConfig() { + var config = ini.decode(fse.readFileSync(__datadir + "/config/config.ini", 'utf-8')) + + if (config.instanceName == null) { config.instanceName = "neoStrip"; } + if (config.activeMode == null) { config.activeMode = "builtin/static"; } + + if (config.HTTP == null) { config.HTTP = {}; } + if (config.HTTP.port == null) { config.HTTP.port = 443; } + + if (config.SelfUpdater == null) { config.SelfUpdater = {}; } + if (config.SelfUpdater.branch == null) { config.SelfUpdater.branch = "master"; } + if (config.SelfUpdater.checkVersionInterval == null) { config.SelfUpdater.checkVersionInterval = 1; } + if (config.SelfUpdater.automaticUpdate == null) { config.SelfUpdater.automaticUpdate = false; } + + if (config.SSLCert == null) { config.SSLCert = {}; } + if (config.SSLCert.CN == null) { config.SSLCert.CN = "localhost"; } + if (config.SSLCert.certMade == null) { config.SSLCert.certMade = false; } + if (config.SSLCert.certDate == null) { config.SSLCert.certDate = 0; } + if (config.SSLCert.certExpire == null) { config.SSLCert.certExpire = 0; } + if (config.SSLCert.certCN == null) { config.SSLCert.certCN = ""; } + + if (config.DiscoveryServer == null) { config.DiscoveryServer = {}; } + if (config.DiscoveryServer.address == null) { config.DiscoveryServer.address = "https://erj46s.deta.dev"; } + if (config.DiscoveryServer.broadcastSelf == null) { config.DiscoveryServer.broadcastSelf = false; } + + fse.writeFileSync(__datadir + "/config/config.ini", ini.encode(config)) +} + +/** + * This method will ensure that all required fields are in config.ini + */ +function ensureStripConfig() { + var config = ini.decode(fse.readFileSync(__datadir + "/config/strip.ini", 'utf-8')) + + if (config.DEFAULT == null) { config.DEFAULT = {}; } + if (config.DEFAULT.led_pin == null) { config.DEFAULT.led_pin = 18; } + if (config.DEFAULT.led_freq_hz == null) { config.DEFAULT.led_freq_hz = 80000; } + if (config.DEFAULT.led_dma == null) { config.DEFAULT.led_dma = 10; } + if (config.DEFAULT.led_invert == null) { config.DEFAULT.led_invert = false; } + if (config.DEFAULT.led_channel == null) { config.DEFAULT.led_channel = 0 } + if (config.DEFAULT.segments == null) { config.DEFAULT.segments = ""; } + if (config.DEFAULT.matrix == null) { config.DEFAULT.matrix = ""; } + + fse.writeFileSync(__datadir + "/config/strip.ini", ini.encode(config)) +} + +/** + * This method will make sure all files and folders needed for the app exists, + * it will also make sure all files contain all needed data. + */ +function init() { + // Generate all user-folders + logger.info("Ensuring all folder in UserDir exists..."); + + fse.ensureDirSync(__datadir + "/"); + fse.ensureDirSync(__datadir + "/config/"); + fse.ensureDirSync(__datadir + "/config/certs"); + fse.ensureDirSync(__datadir + "/userCode/"); + fse.ensureDirSync(__datadir + "/remoteCode/"); + + // Generate config-files + if (!fse.existsSync(__datadir + "/config/config.ini")) { + fse.closeSync(fse.openSync(__datadir + "/config/config.ini", 'w')); + } + ensureMainConfig(); + + if (!fse.existsSync(__datadir + "/config/strip.ini")) { + fse.closeSync(fse.openSync(__datadir + "/config/strip.ini", 'w')); + } + ensureStripConfig(); + + if (!fse.existsSync(__datadir + "/config/users.ini")) { + fse.writeFileSync(__datadir + "/config/users.ini", ini.encode({ + "neo": { + "password": "5adbc90fb4716fff62d9cf634837e22f29b011803ba29cee51f921b920fa941651737bd15d00dc72e4cbeee5e64e06ec99cc50ea917285a029797a98740cce0f", + "salt": "59b6de1040f3ae3c63de984ca5d61ef46f41dc6ecead3a9d5dab69f0bb3636aa49017e179b74dbcdb407f62bc139a7d55aa78fe2bbdd5327609ea124b2fa03b1" + } + })) + } +}; + +/** + * Recursive function which adds setters and getters to all properties + * in a nested object. This will make us able to save config values + * directly without doing anything other that `prop = value`. + * + * @param {object} config - The full config object. + * @param {string} configFile - The path of the configfile. + * + * @return {object} The config object with setters for values. + */ + function withSetters(config, configFile) { + let outConfig = {}; + function iter(inNode, outNode) { + for (const key of Object.keys(inNode)) { + if (typeof(inNode[key]) === "object") { + outNode[key] = {}; + iter(inNode[key], outNode[key]); + } else { + outNode[`_${key}`] = inNode[key]; + Object.defineProperty(outNode, key, { + get: function() { return this[`_${key}`]; }, + set: function(value) { + this[`_${key}`] = value; + saveConfig(configFile, outConfig); + }, + enumerable: true + }); + } + } + } + iter(config, outConfig); + return outConfig +} + +/** + * Returns a object with only the actual values and not setters, this is the + * inverse of withSetters. + * + * @param {object} config - The full config object. + * + * @return {object} The config object without setters. + */ +function withoutSetters(config) { + let out = {}; + function iter(inNode, outNode) { + for (const key of Object.keys(inNode).filter(k => (k.substr(0, 1) != "_"))) { + if (typeof(inNode[key]) === "object") { + outNode[key] = {}; + iter(inNode[key], outNode[key], out); + } else { + outNode[key] = inNode[`_${key}`]; + } + } + } + iter(config, out); + return out; +} + +/** + * Save config object, this will run stripSetters on the object it saves. + * + * @param {string} file - filename to save the config object to. + * @param {object} object - the config object to save. + */ +function saveConfig(file, object, removeSetters=true) { + if (removeSetters) { + object = withoutSetters(object); + } + fse.writeFileSync(file, ini.encode(object)); +} + +/** + * Reads a ini file and add setters to all properties + * + * @param {string} file - filename of file to read. + * + * @return {object} The config in the file. + */ +function getFullConfig(file, addSetters=true) { + let fullConfig = ini.decode(fse.readFileSync(file, "utf-8")); + if (addSetters) { + fullConfig = withSetters(fullConfig, file); + } + return fullConfig; +} + +/** + * Save a user the user config file, this will append if a new user, and + * overwrite if it is a existsing user. + * + * @param {string} username - The username, case-insensitive. + * @param {string} salt - Salt used for password-checking. + * @param {string} password - Hashed password. + * + * @return {object} Standardform return object + */ + function saveUser(username, salt, password) { + let config = ini.decode(fse.readFileSync(__datadir + "/config/users.ini", 'utf-8')) + config[username] = {} + config[username].salt = salt + config[username].password = password + fse.writeFileSync(__datadir + "/config/users.ini", ini.encode(config)) + return {success: true} +} + +/** + * Get a user, this will return null if no user is found. + * + * @return {object} with username, salt and hash properties. + */ +function getUser(username) { + let config = ini.decode(fse.readFileSync(__datadir + "/config/users.ini", 'utf-8')) + if (Object.prototype.hasOwnProperty.call(config, username)) { + return {...config[username], username: username} + } + return null; +} + +/** + * Get all users + * + * @return {array} usernames + */ +function getUsers() { + let config = ini.decode(fse.readFileSync(__datadir + "/config/users.ini", "utf-8")); + let users = []; + for (const username of Object.keys(config)) { + users.push(username); + } + return users; +} + +/** + * Delete a user + * + * @return {object} Standardform success object. + */ +function deleteUser(username) { + let config = ini.decode(fse.readFileSync(__datadir + "/config/users.ini", 'utf-8')) + if (config.length <= 1) { return {success: false, reason: "cannot delete only user"}; } + if (!Object.prototype.hasOwnProperty.call(config, username)) { return {success: false, reason: "user not found", detail: username}; } + delete config[username]; + fse.writeFileSync(__datadir + "/config/users.ini", ini.encode(config)); + return {success: true} +} + +/** + * Create a new mode in the user directory. + * + * @param {string} name - The name of the file to use, a trailing number will + * be added if there are any conflicts. + * @param {string} template - Id of the template, builtin/static, template/base etc... + * + * @return {object} a standard convention result object. + */ +function createNewUserMode(name, template) { + source_script = null; + if ((template === "template/base") || (template === "") || (template == null)) { + source_script = __basedir + "/NeoRuntime/special/template_base/"; + } else { + source_script = neoModules.neoRuntimeManager.getModePath(template); + } + if (!neoModules.neoRuntimeManager.isMode(source_script)) { + return {success: false, reason: "Source script not found"}; + } + + let newModeName = neoModules.neoRuntimeManager.getModePath(`user/${name}`); + let counter = 0; + while (neoModules.neoRuntimeManager.isMode(newModeName)) { + counter += 1; + newModeName = neoModules.neoRuntimeManager.getModePath(`user/${name}_${counter}`); + } + + fse.ensureDirSync(newModeName); + fse.copySync(`${source_script}/script.py`, `${newModeName}/script.py`) + neoModules.neoRuntimeManager.event.emit("change", "modelist"); + return {success: true}; +} + +/** + * Delete a user created mode + * + * @param {string} modeid - modeid to delete + * + * @return {object} a standard convention result object. + */ +function deleteUserMode(modeid) { + if (modeid.substr(0, 5) !== "user/") { + return {success: false, reason: "Not user mode"} + } + let modePath = neoModules.neoRuntimeManager.getModePath(modeid); + if (!neoModules.neoRuntimeManager.isMode(modePath)) { + return {success: false, reason: "Mode does not found"} + } + if (modeid === neoModules.neoRuntimeManager.mode.current()) { + return {success: false, reason: "Cannot delete currently active mode"} + } + fse.removeSync(modePath); + neoModules.neoRuntimeManager.event.emit("change", "modelist"); + return {success: true} +} + +module.exports = (_neoModules) => { + neoModules = _neoModules; + init(); + return { + users: getUsers, + user: { + save: saveUser, + get: getUser, + delete: deleteUser + }, + strip: { + get: () => { + let c = getFullConfig(`${__datadir}/config/strip.ini`, addSetters=false); + c.DEFAULT.matrix = JSON.parse(c.DEFAULT.matrix); + c.DEFAULT.segments = c.DEFAULT.segments.split(" "); + return c.DEFAULT; + }, + set: (c) => { + c.segments = c.segments.join(" "); + c.matrix = JSON.stringify(c.matrix); + return saveConfig(`${__datadir}/config/strip.ini`, {DEFAULT: c}, removeSetters=false); + }, + }, + config: getFullConfig(`${__datadir}/config/config.ini`), + mode: { + create: createNewUserMode, + delete: deleteUserMode + } + } +}; \ No newline at end of file diff --git a/src/compileAndRun/index.js b/src/compileAndRun/index.js deleted file mode 100644 index 6f89e44..0000000 --- a/src/compileAndRun/index.js +++ /dev/null @@ -1,75 +0,0 @@ -let EventEmitter = require('events'); -let fse = require("fs-extra"); -let Process = require("./process"); -let pythonSupportFiles = __dirname + "/pythonSupportFiles/"; - -class Python extends EventEmitter { - - constructor(profileFolder, usrDataFolder) { - super(); - this.profileFolder = profileFolder; - this.usrDataFolder = usrDataFolder; - - this.stdout = ""; - this.stderr = ""; - } - - status() { - return {}; - } - - compile() { - try { - fse.removeSync(this.profileFolder + "/build"); - fse.copySync(pythonSupportFiles, this.profileFolder + "/build/"); - fse.copySync(this.profileFolder + "/script.py", this.profileFolder + "/build/script.py"); - } catch (err) { - console.log(err); - } - } - - run() { - // Setup paths and commands - let entryPath = this.profileFolder + "/build/entry.py"; - - // Spawn the new process - this.pyProc = new Process("python", [ - "-u", // This makes us able to get real-time output - entryPath, // This is where the entry-point is located - this.usrDataFolder // This is required for the python-script to now where our config-files are - ]); - this.pyProc.start(); - - this.pyProc.proc.stdout.on("data", (_stdout) => { - this.emit("stdout::data", "" + _stdout); - }); - this.pyProc.proc.stdout.on("end", () => { - this.emit("stdout::end"); - }); - this.pyProc.proc.stderr.on("data", (_stderr) => { - this.emit("stderr::data", _stderr); - }); - this.pyProc.proc.stderr.on("end", () => { - this.emit("stderr:end"); - }); - this.pyProc.proc.on("close", (_code) => { - this.emit("close", _code); - }); - - } - - compileAndRun() { - this.compile(); - this.run(); - } - - stop() { - this.pyProc.proc.kill("SIGINT"); - } - -} - -module.exports = { - Python: Python, - Process: Process -}; diff --git a/src/compileAndRun/process.js b/src/compileAndRun/process.js deleted file mode 100644 index 67ff546..0000000 --- a/src/compileAndRun/process.js +++ /dev/null @@ -1,41 +0,0 @@ -let spawn = require("child_process"); - -class Process { - - constructor(command, args = []) { - this.command = command; - this.args = args; - this.stdout = ""; - this.stderr = ""; - this.fl = false; - } - - start() { - this.proc = spawn.spawn(this.command, this.args); - - this.proc.on('error', (err) => { - console.log(err); - }); - - this.proc.stdout.on('data', (_stdout) => { - this.stdout += _stdout; - }); - - this.proc.stdout.on('end', () => { - }); - - this.proc.stderr.on('data', (_stderr) => { - this.stderr += _stderr; - }); - - this.proc.stderr.on('end', () => { - }); - - this.proc.on('close', (code) => { - }); - - } - -} - -module.exports = Process; \ No newline at end of file diff --git a/src/compileAndRun/pythonSupportFiles/LuxcenaNeo/Matrix.py b/src/compileAndRun/pythonSupportFiles/LuxcenaNeo/Matrix.py deleted file mode 100644 index 320da02..0000000 --- a/src/compileAndRun/pythonSupportFiles/LuxcenaNeo/Matrix.py +++ /dev/null @@ -1,73 +0,0 @@ -def getSegmentRange(segments, n): - """ Return a list of all the actual led-numbers in a segment """ - # Sum all the segments prior to the one we are looking for - i = 0 - start = 0 - while True: - if i >= n: break - start += segments[i] # Add number of leds in this segment to the start-index - i += 1 - - # Add all numbers in the segment we are looking for to a list - i = start - breakPoint = i + segments[n] - range = [] - while True: - range.append(i) - i += 1 - if i >= breakPoint: break - return range - - -class Matrix: - - def __init__(self, segments, matrix): - self.matrix = [] # Holds the matrix - self.xLen = 0 # The width of the matrix - self.yLen = len(matrix) # The heigth of the matrix - - for yPos in range(len(matrix)): - yVal = matrix[yPos] - - thisY = [] - for xPos in range(len(yVal)): - # This gets the range of segment n - segmentRange = getSegmentRange(segments, matrix[yPos][xPos][0]) - - # This adds the range to the current row's list - # if in the config [, ] - # reversed == true, revese the list before adding it - thisY += reversed(segmentRange) if matrix[yPos][xPos][1] else segmentRange - - # This just finds the longest row in the matrix - if (len(thisY) > self.xLen): - self.xLen = len(thisY) - - self.matrix.append(thisY) - - def get(self, x, y): - """ Return the value of a place in the matrix given x and y coordinates """ - return self.matrix[y][x] - - def dump(self): - nSpacers = (self.xLen*6) // 2 - 6 - print( ("=" * nSpacers) + "Matrix dump" + ("=" * nSpacers) ) - - for y in self.matrix: - thisYLine = "" - for x in y: - thisYLine += ( ' ' * (5 - len(str(x))) ) + str(x) + ' ' - print(thisYLine) - - print("=" * (self.xLen*6)) - - -if __name__ == "__main__": - testMatrix = Matrix( - [2, 2, 2, 2, 2, 2, 2, 2, 2], - [ - [[0, False], [1, True], [2, False]], - [[3, True], [4, False], [5, True]], - [[6, False], [7, True], [8, False]] - ] - ) diff --git a/src/compileAndRun/pythonSupportFiles/LuxcenaNeo/NeoBehaviour.py b/src/compileAndRun/pythonSupportFiles/LuxcenaNeo/NeoBehaviour.py deleted file mode 100644 index b0238e7..0000000 --- a/src/compileAndRun/pythonSupportFiles/LuxcenaNeo/NeoBehaviour.py +++ /dev/null @@ -1,29 +0,0 @@ -# This is the base-class "main" should inherit from! -# All methods are blocking :) This means that you could potentially loose a "tick" -# For example, if "eachSecond" is taking up the thread, and the clock goes from 11:58 to 12:02, "eachHour", will not be called. -class NeoBehaviour: - - # THIS METHOD SHOULD NOT BE OVERIDDEN! Use onStart if you want a setup-method!!! - # Contains basic setup - def __init__(self): - return - - # This method will be run right after __init__ - def onStart(self): - return - - # This method is called every second (on the clock), given that the thread is open - def eachSecond(self): - return - - # This method is called every mintue (on the clock), given that the thread is open - def eachMinute(self): - return - - # This method is called every whole hour (on the clock), given that the thread is open - def eachHour(self): - return - - # This method is called every day at noon, given that the thread is open - def eachDay(self): - return diff --git a/src/compileAndRun/pythonSupportFiles/LuxcenaNeo/Strip.py b/src/compileAndRun/pythonSupportFiles/LuxcenaNeo/Strip.py deleted file mode 100644 index c3a913f..0000000 --- a/src/compileAndRun/pythonSupportFiles/LuxcenaNeo/Strip.py +++ /dev/null @@ -1,121 +0,0 @@ -from neopixel import * -from Matrix import Matrix, getSegmentRange - -class Strip: - - def __init__(self, stripConf): - self.SEGMENTS = stripConf["segments"] - self.SEGMENT_CONFIG = stripConf["segment_config"] - - self.LED_FREQ_HZ = stripConf["led_freq_hz"] # LED signal frequency in hertz (usually 800khz) - self.LED_CHANNEL = stripConf["led_channel"] # Set to '1' for GPIOs 13, 19, 41, 45, 53 - self.LED_INVERT = stripConf["led_invert"] # True to invert the signal, (when using NPN transistor level shift) - self.LED_PIN = stripConf["led_pin"] # 18 uses PWM, 10 uses SPI /dev/spidev0.0 - self.LED_DMA = stripConf["led_dma"] # DMA channel for generating the signal, on the newer ones, try 10 - self.LED_COUNT = sum(self.SEGMENTS) # Number of LEDs in strip - - - self.LED_BRIGHTNESS = 255 - - self.strip = Adafruit_NeoPixel( - self.LED_COUNT, - self.LED_PIN, - self.LED_FREQ_HZ, - self.LED_DMA, - self.LED_INVERT, - self.LED_BRIGHTNESS, - self.LED_CHANNEL - ) - - self.strip.begin() - - # Blank out all the LEDs - i = 0 - while True: - self.strip.setPixelColor(i, 0) - i += 1 - if (i > self.LED_COUNT): break - self.strip.show() - - # Setup matrix - print(" * Generating matrix") - #try: - self.pixelMatrix = Matrix(self.SEGMENTS, stripConf["matrix"]) - self.pixelMatrix.dump() - #except: - # print("Something went wrong while setting up your self-defined matrix.") - - def show(self): - """Update the display with the data from the LED buffer.""" - self.strip.show() - - def setPixelColor(self, n, color): - """Set LED at position n to the provided 24-bit color value (in RGB order). - """ - self.strip.setPixelColor(n, color) - - def setPixelColorXY(self, x, y, color): - """Set LED at position n to the provided 24-bit color value (in RGB order). - """ - self.strip.setPixelColor(self.pixelMatrix.get(x, y), color) - - def setPixelColorRGB(self, n, red, green, blue, white = 0): - """Set LED at position n to the provided red, green, and blue color. - Each color component should be a value from 0 to 255 (where 0 is the - lowest intensity and 255 is the highest intensity). - """ - self.strip.setPixelColor(n, Color(red, green, blue, white)) - - def setPixelColorXYRGB(self, x, y, red, green, blue, white = 0): - """Set LED at position n to the provided red, green, and blue color. - Each color component should be a value from 0 to 255 (where 0 is the - lowest intensity and 255 is the highest intensity). - """ - self.strip.setPixelColor(self.pixelMatrix.get(x, y), Color(red, green, blue, white)) - - def setSegmentColorRGB(self, segment, red, green, blue, white = 0): - """Set a whole segment to the provided red, green and blue color. - Each color component should be a value from 0 to 255 (where 0 is the - lowest intensity and 255 is the highest intensity).""" - for n in getSegmentRange(self.SEGMENTS, segment): - self.strip.setPixelColor(n, Color(red, green, blue, white)) - - def setBrightness(self, brightness): - """Scale each LED in the buffer by the provided brightness. A brightness - of 0 is the darkest and 255 is the brightest. - """ - self.strip.setBrightness(brightness) - - def getBrightness(self): - """Get the brightness value for each LED in the buffer. A brightness - of 0 is the darkest and 255 is the brightest. - """ - return self.strip.getBrightness() - - def getPixels(self): - """Return an object which allows access to the LED display data as if - it were a sequence of 24-bit RGB values. - """ - return self.strip.getPixels() - - def numPixels(self): - """Return the number of pixels in the display.""" - return self.LED_COUNT - - def getPixelColor(self, n): - """Get the 24-bit RGB color value for the LED at position n.""" - return self.strip.getPixelColor(n) - - -def Color(red, green, blue, white = 0): - """Convert the provided red, green, blue color to a 24-bit color value. - Each color component should be a value 0-255 where 0 is the lowest intensity - and 255 is the highest intensity. - """ - return (white << 24) | (red << 16)| (green << 8) | blue - -def hexColor(value): - value = value.lstrip('#') - lv = len(value) - rgb = tuple(int(value[i:i+lv/3], 16) for i in range(0, lv, lv/3)) - return (0 << 24) | (rgb[1] << 16) | (rgb[0] << 8) | rgb[2] diff --git a/src/compileAndRun/pythonSupportFiles/LuxcenaNeo/__init__.py b/src/compileAndRun/pythonSupportFiles/LuxcenaNeo/__init__.py deleted file mode 100644 index 40b8e2d..0000000 --- a/src/compileAndRun/pythonSupportFiles/LuxcenaNeo/__init__.py +++ /dev/null @@ -1,10 +0,0 @@ -from NeoBehaviour import * -from Strip import * - -strip = None # The strip object, should be set in entry.py, and is then accessible in the script-file -forceStop = False # When set to true, execution of the script will halt - -# A function that could be used to halt the script -def stop(): - global forceStop - forceStop = True diff --git a/src/compileAndRun/pythonSupportFiles/entry.py b/src/compileAndRun/pythonSupportFiles/entry.py deleted file mode 100644 index 45de822..0000000 --- a/src/compileAndRun/pythonSupportFiles/entry.py +++ /dev/null @@ -1,76 +0,0 @@ -# This is the entry-point for all Luxcena-Neo python-scripts -# The script should be in the same folder as this, and be named "script.py" -# In the future you could possibly have more files and stuff alongside the "script.py"-file as well -import sys -import json -import importlib -import datetime - -def runSync(moduleSc, sc): - timeNow = datetime.datetime.now() - lastDay = timeNow.day - lastHour = timeNow.hour - lastMinute = timeNow.minute - lastSecond = timeNow.second - - while True: - timeNow = datetime.datetime.now() - - if ("LuxcenaNeo" in dir(moduleSc)): - if moduleSc.LuxcenaNeo.forceStop: break - elif ("neo" in dir(moduleSc)): - if moduleSc.neo.forceStop == True: break - - if (timeNow.second != lastSecond): - lastSecond = timeNow.second - sc.eachSecond() - - if (timeNow.minute != lastMinute): - lastMinute = timeNow.minute - sc.eachMinute() - - if (timeNow.hour != lastHour): - lastHour = timeNow.hour - sc.eachHour() - - if (timeNow.day != lastDay): - lastDay = timeNow.lastDay - sc.eachDay() - -def runAsync(moduleSc, sc): - return - -def main(): - print ("Starting script named \"{0}\"".format("test")) - - root_dir = sys.argv[1] - config_dir = root_dir + "/config/" - - print ("> Loading pixel-configuration...") - with open(config_dir + "strip.json", "r") as rawStripConf: - stripConf = json.load(rawStripConf) - - print ("> Initializing script...") - moduleSc = importlib.import_module("script") - - if ("LuxcenaNeo" in dir(moduleSc)): - moduleSc.LuxcenaNeo.strip = moduleSc.LuxcenaNeo.Strip(stripConf) - elif ("neo" in dir(moduleSc)): - moduleSc.neo.strip = moduleSc.neo.Strip(stripConf) - else: - raise Exception("Neither LuxcenaNeo nor neo found in script, check docs!") - - sc = moduleSc.Main() - - print ("> Running the script...") - sc.onStart() - - if (("async" in dir(moduleSc)) and (moduleSc.async == True)): - runAsync(moduleSc, sc) - else: - runSync(moduleSc, sc) - - print ("> Script exited...") - -if __name__ == "__main__": - main() diff --git a/src/domain/middleware.js b/src/domain/middleware.js deleted file mode 100644 index ebd00f8..0000000 --- a/src/domain/middleware.js +++ /dev/null @@ -1,40 +0,0 @@ -module.exports = function(options) { - return function(req, res, next) { - let dirPublic = options.srcDir + "/public/"; - - if (global.runtimeData.get("updaterRunning") === true) { - res.sendFile(dirPublic + "/update/index.html"); - return; - } - - switch (req.path) { - - case "/": - res.sendFile(dirPublic + "index.html"); - return; - - case "/scripts": - res.sendFile(dirPublic + "scripts.html"); - return; - - case "/strip_setup": - res.sendFile(dirPublic + "strip_setup.html"); - return; - - case "/neo_ide": - res.sendFile(dirPublic + "neo_ide.html"); - return; - - case "/logviewer": - res.sendFile(dirPublic + "logviewer.html"); - return; - - case "/settings": - res.sendFile(dirPublic + "settings.html"); - return; - - } - - next() - } -} diff --git a/src/neoRuntime/index.js b/src/neoRuntime/index.js deleted file mode 100644 index d34f4b4..0000000 --- a/src/neoRuntime/index.js +++ /dev/null @@ -1,232 +0,0 @@ -let fs = require("fs-extra"); -let path = require("path"); -let compileRun = require("../compileAndRun"); - -let listDirsInDir = p => fs.readdirSync(p).filter(f => fs.statSync(path.join(p, f)).isDirectory()); - -class neoRuntime { - - constructor(dirUsrData) { - this._proc = undefined; - this._cScript = "None"; - this._cScriptHasExited = false; - this._dirUsrData = dirUsrData; - } - - status() { - return { - "currentScript": this._cScript, - "scriptIsExited": this._cScriptHasExited, - "uptime": process.uptime() - }; - } - - listScripts() { - let localScripts = listDirsInDir(this._dirUsrData + "/usrCode/"); - let remoteScripts = listDirsInDir(this._dirUsrData + "/remoteCode/"); - let scriptList = []; - - for (let i = 0; i < localScripts.length; i++) { - if (fs.existsSync(this._dirUsrData + "/usrCode/" + localScripts[i] + "/script.py")) { - scriptList.push({ - "name": localScripts[i], - "loc": "local", - "path": "local/" + localScripts[i], - "lang": "python" - }); - } - } - - for (let i = 0; i < remoteScripts.length; i++) { - if (fs.existsSync(this._dirUsrData + "/remoteCode/" + remoteScripts[i] + "/script.py")) { - scriptList.push({ - "name": remoteScripts[i], - "loc": "remote", - "path": "remote/" + remoteScripts[i], - "lang": "python" - }); - } - } - - return scriptList; - } - - selectScript(path) { - global.log(`Selecting script \"${path}\"`, "event"); - - try { - this._proc.stop(); - } catch (err) { - global.log("Could not kill process: " + err, "error"); - } - - this._cScript = path; - path = path.split("/"); - let location = path.splice(0, 1).toString(); - if (location === "local") { path = this._dirUsrData + "/usrCode/" + path.join("/"); } - if (location === "remote") { path = this._dirUsrData + "/remoteCode/" + path.join("/"); } - //if (location === "base") { path = this._dirUsrData + "/src/compileAndRun/scripts/" + path.join("/"); } // TODO make this do something - - if (!fs.existsSync(path + "/script.py")) { - global.log(`No script file found when selecting script with real path \"${path}\"`, "ERROR"); - return; - } - - fs.removeSync(path + "/build/logs/log"); - - this._cScriptHasExited = false; - this._proc = new compileRun.Python(path, this._dirUsrData); - this._proc.compileAndRun(); - - fs.ensureFileSync(path + "/build/logs/log"); - this._proc.on("stdout::data", (_stdout) => { - fs.appendFile(path + "/build/logs/log", "\n====stdout====\n" + _stdout.toString().replace(/\n$/, "")); - }); - this._proc.on("stderr::data", (_stderr) => { - fs.appendFile(path + "/build/logs/log", "\n====stderr====\n" + _stderr.toString().replace(/\n$/, "")); - }); - this._proc.on("stderr::end", () => { - fs.appendFile(path + "/build/logs/log", "\n"); - }); - this._proc.on("stdout::end", () => { - fs.appendFile(path + "/build/logs/log", "\n"); - }); - this._proc.on("close", (_code) => { - fs.appendFile(path + "/build/logs/log","\n====close====\nScript exited with code " + _code.toString()); - this._cScriptHasExited = true; - }); - - } - - stopScript() { - try { - this._proc.stop(); - return { - success: true - } - } catch (err) { - return { - success: false, - error: {reason: err} - }; - } - } - - deleteScript(path) { - global.log(`Deleting script \"${path}\"`, "DEBUG"); - - let sPath = path.split("/"); - let location = sPath.splice(0, 1).toString(); - if (location === "remote") { - global.log(`Cannot delete remote script ${path}`, "DEBUG"); - return; - } - let absPath = this._dirUsrData + "/usrCode/" + sPath.join("/"); - - if (this._cScriptPath == path) { - try { - this._proc.stop(); - } catch (err) { - global.log("Could not kill process: " + err, "error"); - } - } - - fs.removeSync(absPath); - - } - - createEmptyScript(name) { - global.log(`Creating script with name \"${name}/"`, "DEBUG"); - - let scriptFolderPath = this._dirUsrData + "/usrCode/" + name; - if (fs.existsSync(scriptFolderPath)) { - global.log(`A Script with the name \"${name}\" already exists`, "ERROR"); - return; - } - - fs.ensureDirSync(scriptFolderPath); - fs.writeFile(scriptFolderPath + "/script.py", - "import LuxcenaNeo as neo # Can be imported as LuxcenaNeo as well. but anything else and it will fail...\n\nclass Main(neo.NeoBehaviour):\n\n def onStart(self):\n print (\"Script started\")\n\n def eachSecond(self):\n print (\"A second has passed\")", - (err) => { - if (err) { - global.log("Could not create script.py for profile \"" + name + "\"", "ERROR"); - } else { - global.log("Script \"" + name + "\" created.", "SUCCESS"); - } - } - ); - - } - - getScript(scriptPath) { - let sPath = scriptPath.split("/"); - let location = sPath.splice(0, 1).toString(); - if (location === "remote") { - global.log(`Cannot edit remote script ${path}`, "DEBUG"); - return; - } - let absPath = this._dirUsrData + "/usrCode/" + sPath.join("/"); - - if (!fs.existsSync(absPath + "/script.py")) { - return false; - } - - return { - name : sPath[sPath.length - 1], - files : { - main : fs.readFileSync(absPath + "/script.py", "utf8") - } - }; - } - - saveScript(script, callback) { - if (!fs.existsSync(this._dirUsrData + "/usrCode/" + script.name )) { - callback({success: false, error: {reason: "Script file not found"}}); - } - fs.writeFile(this._dirUsrData + "/usrCode/" + script.name + "/script.py", script.files.main, (err) => { - if (err) { - callback({success: false, error: {reason: err}}); - } else { - callback({success: true}); - } - }); - } - - getScriptOutput(scriptPath) { - if (scriptPath != this._cScript) { - return { - success: false, - error: {reason: "This is not the current running script"} - } - } - - let path = scriptPath.split("/"); - let location = path.splice(0, 1).toString(); - if (location === "local") { path = this._dirUsrData + "/usrCode/" + path.join("/"); } - if (location === "remote") { path = this._dirUsrData + "/remoteCode/" + path.join("/"); } - - if (!fs.existsSync(path + "/build/logs/log")){ - return { - success: false, - error: {reason: "No log file found"} - } - } - - try { - let output = fs.readFileSync(path + "/build/logs/log", "utf8"); - return { - success: true, - output: output - } - } catch (err) { - return { - success: false, - error: {reason: err} - }; - } - } -} - -module.exports = (dirUsrData) => { - return new neoRuntime(dirUsrData); -}; diff --git a/src/public/app.js b/src/public/app.js deleted file mode 100644 index 58af98a..0000000 --- a/src/public/app.js +++ /dev/null @@ -1,19 +0,0 @@ -// General JavaScript -require ("./js/general")(); - -// Page-specific JavaScript -const pageName = document.getElementsByTagName("body")[0].id; -try { - require("./js/" + pageName)(); -} catch (error) { - console.log( - "Something went wrong when loading the js for this page...\n" + - "The pageName is \"" + pageName + "\".\n" + - "If it was excpected to get js for this page, please check the filename, and recompile webpack." - ); -} - -// Require all styles -require("./app.scss"); -// Require font awesome -require("fontawesome"); diff --git a/src/public/app.scss b/src/public/app.scss deleted file mode 100644 index 845d36a..0000000 --- a/src/public/app.scss +++ /dev/null @@ -1,9 +0,0 @@ -// This file is probably not needed anymore, as all the files are loaded directly by our sass-loader -// General scss -@import "./scss/general.scss"; - -// Page-specific css -@import "./scss/scripts.scss"; -@import "./scss/neo_ide.scss"; -@import "./scss/setup.scss"; -@import "./scss/update.scss"; diff --git a/src/public/components/sidenav.js b/src/public/components/sidenav.js deleted file mode 100644 index a69aac5..0000000 --- a/src/public/components/sidenav.js +++ /dev/null @@ -1,24 +0,0 @@ -module.exports = ` - -`; diff --git a/src/public/js/general.js b/src/public/js/general.js deleted file mode 100644 index b0b04d2..0000000 --- a/src/public/js/general.js +++ /dev/null @@ -1,10 +0,0 @@ -let sidenav = require("../components/sidenav"); - -module.exports = () => { - const pageName = document.getElementsByTagName("body")[0].id; - if (pageName == "neo_ide") { return; } - - document.getElementById("sidenav").innerHTML = sidenav; - - M.AutoInit(); -}; diff --git a/src/public/js/index.js b/src/public/js/index.js deleted file mode 100644 index 5b67de2..0000000 --- a/src/public/js/index.js +++ /dev/null @@ -1,68 +0,0 @@ -let socket = io(); - -module.exports = () => { - M.AutoInit(); - setupSocket(); - - setInterval(() => { - socket.emit("GetGeneralInfo"); - }, 500); - - socket.emit("GetLog", {filter: "success error event", entryN: 10}); -}; - -function setupSocket() { - - socket.on("lastLogEntries", (entries) => { - let list = ""; - entries.forEach((entry) => { - list += "" + prettifyType(entry.type) + "" + entry.time + "" + entry.details + ""; - }); - - document.getElementById("log-table-body").innerHTML = list; - M.AutoInit(); - }); - - socket.on("newLogEntry", (entry) => { - // Start with parsing the new entry, no reason to select the DOM-element and stuff, if we are filtering out the entry anyway. - let type = entry.type; - if ( (type.toUpperCase() !== "SUCCESS") && (type.toUpperCase() !== "ERROR") && (type.toUpperCase() !== "EVENT") && (type.toUpperCase() !== "INFO")) { - return; - } - - let logTable = document.getElementById("log-table-body"); - - let LTable = logTable.rows.length; - logTable.deleteRow(LTable - 1); // Since length outputs a 1-based number - - let newEntry = logTable.insertRow(0); - newEntry.insertCell(0).innerHTML = prettifyType(entry.type); - newEntry.insertCell(1).innerHTML = entry.time; - newEntry.insertCell(2).innerHTML = entry.details; - M.AutoInit(); - newEntry.className = "newLogEntry"; - }); - - socket.on("generalInfo", (info) => { - if (info["scriptIsExited"]) { - document.getElementById("currentScript").innerHTML = info["currentScript"] + " (exited)"; - } else { - document.getElementById("currentScript").innerHTML = info["currentScript"]; - } - document.getElementById("uptime").innerHTML = info["uptime"] + " seconds"; - }); - -} - -function prettifyType(type) { - let prettyTable = { - "DEBUG": `😸`, - "INFO": `ℹ️`, - "WARNING": `⚠️`, - "EVENT": `⚡️`, - "SUCCESS": ``, - "ERROR": `🔴`, - "PYTHON": `🐍` - }; - return prettyTable[type]; -} diff --git a/src/public/js/logviewer.js b/src/public/js/logviewer.js deleted file mode 100644 index d376196..0000000 --- a/src/public/js/logviewer.js +++ /dev/null @@ -1,64 +0,0 @@ -let socket = io(); - -module.exports = () => { - M.AutoInit(); - - socket.emit("GetLog", {filter: "success error event debug python info warning", entryN: 1000}); - socket.on("lastLogEntries", (entries) => { - M.toast({html: "Loading log-files..."}); - console.log("Log-entries received: " + entries.length); - let HTMLBasicTable = ""; - let HTMLAdvancedTable = ""; - let HTMLScriptTable = ""; - let HTMLRAWTable = ""; - - entries.forEach((entry) => { - let strHTML = "" + prettifyType(entry.type) + "" + entry.time + "" + entry.details + ""; - - if (entry.type === "SUCCESS") { HTMLBasicTable += strHTML; } - if (entry.type === "ERROR") { HTMLBasicTable += strHTML; } - if (entry.type === "EVENT") { HTMLBasicTable += strHTML; } - if (entry.type === "PYTHON") { HTMLScriptTable += strHTML; } - if (entry.type !== "PYTHON") { HTMLAdvancedTable += strHTML; } - - //HTMLRAWTable += entry.join(" "); - }); - - document.getElementById("log-table-basic").innerHTML = HTMLBasicTable; - document.getElementById("log-table-script").innerHTML = HTMLScriptTable; - document.getElementById("log-table-advanced").innerHTML = HTMLAdvancedTable; - //document.getElementById("log-table-raw").innerHTML = HTMLRAWTable; - - }); - - socket.on("newLogEntry", (entry) => { - if (entry.type === "SUCCESS") { appendEntryToTable("log-table-basic", entry); } - if (entry.type === "ERROR") { appendEntryToTable("log-table-basic", entry); } - if (entry.type === "EVENT") { appendEntryToTable("log-table-basic", entry); } - if (entry.type === "PYTHON") { appendEntryToTable("log-table-script", entry); } - if (entry.type !== "PYTHON") { appendEntryToTable("log-table-advanced", entry); } - }); - -}; - -function appendEntryToTable(tableName, entry) { - let newEntry = document.getElementById(tableName).insertRow(0); - newEntry.insertCell(0).innerHTML = prettifyType(entry.type); - newEntry.insertCell(1).innerHTML = entry.time; - newEntry.insertCell(2).innerHTML = entry.details; - M.AutoInit(); - newEntry.className = "newLogEntry"; -} - -function prettifyType(type) { - let prettyTable = { - "DEBUG": `😸`, - "INFO": `ℹ️`, - "WARNING": `⚠️`, - "EVENT": `⚡️`, - "SUCCESS": ``, - "ERROR": `🔴`, - "PYTHON": `🐍` - }; - return prettyTable[type]; -} \ No newline at end of file diff --git a/src/public/js/neo_ide.js b/src/public/js/neo_ide.js deleted file mode 100644 index 6108be4..0000000 --- a/src/public/js/neo_ide.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = () => { - - -}; \ No newline at end of file diff --git a/src/public/js/scripts.js b/src/public/js/scripts.js deleted file mode 100644 index ccad3cf..0000000 --- a/src/public/js/scripts.js +++ /dev/null @@ -1,71 +0,0 @@ -module.exports = () => { - let socket = io(); - socket.emit("GetScripts", {}); - - socket.on("updatedScriptList", (scriptList) => { - let localScriptsHTML = ""; - let remoteScriptsHTML = ""; - - for (let i = 0; i < scriptList.length; i++) { - if (scriptList[i].loc !== "local") { continue; } - let HTMLElem = "
              • {{script_name}}

                {{badges}}

                {{buttons}}
              • "; - if (scriptList[i].loc === "local") { - HTMLElem = HTMLElem.replace("{{badges}}", ""); - HTMLElem = HTMLElem.replace("{{script_name}}", scriptList[i].name); - HTMLElem = HTMLElem.replace("{{buttons}}", - "play_arrow" + - "edit" + - "delete_forever" - ); - localScriptsHTML += HTMLElem; - } else if (scriptList[i].loc === "remote") { - HTMLElem = HTMLElem.replace("{{badges}}", "GitHub"); - HTMLElem = HTMLElem.replace("{{script_name}}", scriptList[i].name); - remoteScriptsHTML += HTMLElem; - } - } - - document.getElementById("local-scripts").innerHTML = localScriptsHTML; - document.getElementById("remote-scripts").innerHTML = remoteScriptsHTML; - - }); - - /* - The delays here with settimeout, is set to a second deliberately, because, rather than making a whole checking-thing. - We just wait a second, and assume, that if it worked, the change should show now. Else, check the logViewer. - */ - function clickHandler(event) { - let element = event.target.parentElement; - - if (element.className === "selectScript") { - M.toast({html: "Now selecting script: " + element.dataset.path}); - socket.emit("SelectScript", {"scriptPath": element.dataset.path}); - - } else if (element.className === "editScript") { - window.location.href = ( - "http://" + window.location.hostname + ":" + window.location.port + - "/neo_ide?scriptName=" + btoa(element.dataset.path) - ); - - } else if (element.className === "deleteScript") { - if (confirm("Do you really want to delete this script?\n" + element.dataset.path + "\n\nYou can not undo this action, and the script will be lost forever...")) { - M.toast({html: "Trying to create script. If no change after a second. Check the logViewer."}); - socket.emit("DeleteScript", {"scriptPath": element.dataset.path}); - setTimeout(() => {socket.emit("GetScripts", {})}, 1000); - } - - } else if (element.id === "createEmptyScript") { - var scriptName = prompt("Please enter the name of the new script:"); - if (scriptName != null || scriptName != "") { - M.toast({html: "Trying to create script. If no change after a second. Check the logViewer."}); - socket.emit("CreateEmptyScript", {"scriptName": scriptName}); - setTimeout(() => {socket.emit("GetScripts", {})}, 1000); - } - - } - - } - - addEventListener("click", clickHandler, false); - -}; diff --git a/src/public/scss/general.scss b/src/public/scss/general.scss deleted file mode 100644 index cbbc654..0000000 --- a/src/public/scss/general.scss +++ /dev/null @@ -1,44 +0,0 @@ -.general { - - header, main, footer { - padding-left: 300px; - } - - header .brand-logo { - padding-left: 15px; - } - - @media only screen and (max-width : 992px) { - header, main, footer { - padding-left: 0; - } - } - - .user-view { - margin-top: 5px; - height: 150px; - } - - .user-view .background { - margin-left: 85px; - } - - .log-table { - - - - - } - - @keyframes highlightNew { - 0% {background-color:#ffc107;} - 100% {background-color:white;} - } - - .newLogEntry { - -webkit-animation-name: highlightNew; /* Safari 4.0 - 8.0 */ - -webkit-animation-duration: 4s; /* Safari 4.0 - 8.0 */ - animation-name: highlightNew; - animation-duration: 4s; - } -} diff --git a/src/public/scss/neo_ide.scss b/src/public/scss/neo_ide.scss deleted file mode 100644 index fb10885..0000000 --- a/src/public/scss/neo_ide.scss +++ /dev/null @@ -1,254 +0,0 @@ -.neo_ide { - - html, - body { - height: 100%; - font-family: 'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif; - padding: 0; - margin: 0; - /*margin-top: -20px;*/ - overflow: auto; - } - - #editor { - width: 100%; - height: 100%; - margin: -10px; - } - - .page-container { - display: flex; - flex-direction: column; - justify-content: center; - } - - .nav-container { - width: 100%; - height: 45px; - background-color: #333333; - - ul { - display: flex; - flex-direction: row; - justify-content: space-between; - flex: 1; - align-self: center; - width: 100%; - list-style: none; - } - - ul .left { - color: white; - padding: 15px; - margin-left: -40px; - margin-top: -19px; - font-size: 20px; - } - - ul .center { - color: white; - } - - ul .right { - width: 80px; - margin-right: 174px; - color: white; - } - - ul .right .button { - padding: 15px; - margin-top: -15px; - } - - .fileName { - color: grey; - } - - ul .button { - - } - - ul .button:hover { - background-color: black; - } - } - - @keyframes menuBarIn { - from {height: 0;} - to {height: 25px;} - } - - @keyframes menuBarOut { - from {height: 25px;} - to {height: 0;} - } - - .menuBarIn { - animation-name: menuBarIn; - animation-duration: 0.5s; - height: 25px !important; - } - - .menuBarOut { - animation-name: menuBarOut; - animation-duration: 0.5s; - height: 0px !important; - } - - .menubar-container { - background-color: #4e4e4e; - height: 0; - - ul { - display: flex; - flex-direction: row; - flex: 1; - width: 100%; - list-style: none; - margin-top: 2px; - margin-left: -30px; - } - - .button { - background-color: #3e3e3e; - color: white; - padding: 3px 10px 3px 10px; - margin-right: 4px; - font-size: 13px; - border-radius: 7px; - } - - .button:hover { - background-color: black; - } - - } - - .panel-container { - display: flex; - flex-direction: column; - flex: 1; - overflow: hidden; - - .panel-top { - flex: 0 0 auto; - padding: 10px; - height: 80%; - width: 100%; - white-space: nowrap; - background: #838383; - color: white; - } - - .splitter { - flex: 0 0 auto; - margin-top: -20px; - height: 25px; - background: url(https://raw.githubusercontent.com/RickStrahl/jquery-resizable/master/assets/hsizegrip.png) center center no-repeat #535353; - cursor: row-resize; - } - - .splitter .text { - margin-left: 10px; - margin-top: 4px; - color: #cccccc; - - span { - margin-left: 5px; - } - } - - .panel-bottom { - flex: 1 1 auto; - padding: 10px; - /*min-height: 200px;*/ - background: black; - color: white; - - overflow-y: scroll; - } - - .panel-bottom pre { - margin-top: -10px; - - .stdout { - color: white; - } - - .stderr { - color: red; - } - - .close { - color: yellow; - } - } - } - - label { - font-size: 1.2em; - display: block; - font-weight: bold; - margin: 30px 0 10px; - } - - - - - - .page-loader { - position: absolute; - margin: 0; - padding: 0; - border: 0; - width: 100vw; - height: 100vh; - background-color: #1fa2ed; - color: #fff; - - // LET THE LOADING BEGIN - .loader { - display: flex; - justify-content: center; - flex-flow: nowrap column; - align-items: center; - min-height: 100vh; - } - .loading { - display: flex; - margin: 24px 0; - } - .loading__element { - font: normal 100 2rem/1 Roboto; - letter-spacing: .5em; - } - [class*="el"] { - animation: bouncing 3s infinite ease; - } - - @for $i from 1 through 19 { - $delay: percentage($i); - .el#{$i} { - animation-delay: $delay / 1000% + s; - } - } - - @keyframes bouncing { - 0%, 100% { - transform: scale3d(1,1,1); - } - 50% { - transform: scale3d(0,0,1); - } - } - - .current-event { - color: rgba(255, 255, 255, 0.53); - font: normal 100 1rem/1 Roboto; - letter-spacing: .1em; - } - - } - - -} diff --git a/src/public/scss/scripts.scss b/src/public/scss/scripts.scss deleted file mode 100644 index 400c5f1..0000000 --- a/src/public/scss/scripts.scss +++ /dev/null @@ -1,35 +0,0 @@ -#scripts { - - .script-list .badge { - margin-left: 0; - float: none; - } - - .card { - /*margin-bottom: 60px;*/ - } - - @media only screen and (max-width: 599px) { - .card-action { - border-top: 0 !important; - padding: 0 !important; - height: 0; - transition: padding 0.5s ease 0s, - height 0.5s ease 0s; - } - - .card-action a i { - transform: scale(0); - transition: transform 0.1s ease 0.1s; - } - .card:hover > .card-action { - height: 55px; - padding: 16px 24px !important; - } - - .card:hover > .card-action > a > i { - transform: scale(1); - } - } - -} \ No newline at end of file diff --git a/src/public/scss/setup.scss b/src/public/scss/setup.scss deleted file mode 100644 index e69de29..0000000 diff --git a/src/public/scss/update.scss b/src/public/scss/update.scss deleted file mode 100644 index 8e9d2f2..0000000 --- a/src/public/scss/update.scss +++ /dev/null @@ -1,62 +0,0 @@ -#update { - * { - margin: 0; - padding: 0; - border: 0; - box-sizing: border-box; - &:before, &:after { - box-sizing: inherit; - } - } - html { - width: 100vw; - height: 100vh; - } - body { - background-color: #1fa2ed; - color: #fff; - } - - // LET THE LOADING BEGIN - .start-screen { - display: flex; - justify-content: center; - flex-flow: nowrap column; - align-items: center; - min-height: 100vh; - } - .loading { - display: flex; - margin: 24px 0; - } - .loading__element { - font: normal 100 2rem/1 Roboto; - letter-spacing: .5em; - } - [class*="el"] { - animation: bouncing 3s infinite ease; - } - - @for $i from 1 through 19 { - $delay: percentage($i); - .el#{$i} { - animation-delay: $delay / 1000% + s; - } - } - - @keyframes bouncing { - 0%, 100% { - transform: scale3d(1,1,1); - } - 50% { - transform: scale3d(0,0,1); - } - } - - .current-event { - color: rgba(255, 255, 255, 0.53); - font: normal 100 1rem/1 Roboto; - letter-spacing: .1em; - } - -} diff --git a/src/runtimeData/index.js b/src/runtimeData/index.js deleted file mode 100644 index 8253140..0000000 --- a/src/runtimeData/index.js +++ /dev/null @@ -1,45 +0,0 @@ -let fse = require("fs-extra"); - -class RuntimeData { - - constructor (DirUserData) { - this.lockFile = DirUserData + "/config/runtime.json"; - this.runtimeVars = {}; - - this.readFile(); - this.saveFile(); - }; - - saveFile() { - fse.outputJsonSync(this.lockFile, this.runtimeVars); - } - - readFile() { - try { - this.runtimeVars = fse.readJsonSync(this.lockFile); - } catch (err) { - this.runtimeVars = {}; - } - } - - set (name, value) { - this.runtimeVars[name] = value; - this.saveFile(); - }; - - get (name) { - this.readFile(); - if (typeof (this.runtimeVars[name]) != undefined) { - return this.runtimeVars[name]; - } else { - return false; - } - } - - unset (name) { - delete this.runtimeVars[name]; - } - -} - -module.exports = RuntimeData; diff --git a/src/versionChecker/index.js b/src/versionChecker/index.js deleted file mode 100644 index cee1486..0000000 --- a/src/versionChecker/index.js +++ /dev/null @@ -1,58 +0,0 @@ -let fs = require("fs-extra"); -let url = require("url"); -let request = require('request'); -let exec = require("child_process").exec; - -class versionChecker { - - constructor(configJson, packageJson) { - this.config = JSON.parse(fs.readFileSync(configJson)); - this.CPackageJson = JSON.parse(fs.readFileSync(packageJson)); - - this.version = this.CPackageJson["version"]; - this.repoVersion = this.version; - this.checkFrequency = this.config["checkInterval"] * 100 * 10 * 60 * 60; // takes in hours - this.repoLink = this.CPackageJson["repository"]["url"]; - this.repoBranch = this.config["branch"]; - - this.checkVersion(this); // Because we have to send the reference in our interval, we have to to it here as well - this.updateChecker = setInterval(this.checkVersion, this.checkFrequency, this); // We have to send a reference to this class - } - - checkVersion(parent) { - if (typeof(parent) == "undefined") { parent = this; } - let path = url.parse(parent.repoLink); - let link = "https://raw.githubusercontent.com" + path.pathname + '/' + parent.repoBranch + "/package.json"; - - request.get(link, (error, response, body) => { - if (!error && response.statusCode === 200) { - let remotePackageJSON = JSON.parse(body); - this.repoVersion = remotePackageJSON["version"]; - if (parent.VersionIsNewerThan(this.repoVersion, parent.version)) { - global.log("A new version is available on \"" + parent.repoBranch + "\" (v" + this.repoVersion + ")", "INFO"); - } - } else { - global.log("Could not find latest version! Please check you internet connection.", "ERROR"); - } - }); - } - - VersionIsNewerThan(check, current) { - let checkParts = check.split("."); - let currentParts = current.split("."); - let lCheckParts = checkParts.length; - let lCurrentParts = currentParts.length; - - for (let i = 0; i < lCheckParts; i++) { - if (i >= lCurrentParts) { return true; } - if (Number (checkParts[i]) > Number (currentParts[i])) { return true; } - if (Number (checkParts[i]) < Number (currentParts[i])) { return false; } - } - return false; - } - -} -  -module.exports = (configJson, packageJson) => { - return new versionChecker(configJson, packageJson); -}; diff --git a/src_frontend/App.svelte b/src_frontend/App.svelte new file mode 100644 index 0000000..e95f316 --- /dev/null +++ b/src_frontend/App.svelte @@ -0,0 +1,110 @@ + + + + +{#if $connected} + +{:else if $reconnecting} +
                +
                +
                Lost connection to server, attempting to reconnect...
                +
                +{:else} +
                +
                +
                No server connection, attempting to connect...
                +
                +{/if} \ No newline at end of file diff --git a/src_frontend/ComponentLib/Button/Button.svelte b/src_frontend/ComponentLib/Button/Button.svelte new file mode 100644 index 0000000..3943ecf --- /dev/null +++ b/src_frontend/ComponentLib/Button/Button.svelte @@ -0,0 +1,80 @@ + + + + + \ No newline at end of file diff --git a/src_frontend/ComponentLib/Button/FloatingButton.svelte b/src_frontend/ComponentLib/Button/FloatingButton.svelte new file mode 100644 index 0000000..123debc --- /dev/null +++ b/src_frontend/ComponentLib/Button/FloatingButton.svelte @@ -0,0 +1,104 @@ + + + + +
                + + {#if label != null} + {label} + {/if} +
                \ No newline at end of file diff --git a/src_frontend/ComponentLib/FloatingSelect.svelte b/src_frontend/ComponentLib/FloatingSelect.svelte new file mode 100644 index 0000000..0d71ca7 --- /dev/null +++ b/src_frontend/ComponentLib/FloatingSelect.svelte @@ -0,0 +1,45 @@ + + + + + + \ No newline at end of file diff --git a/src_frontend/ComponentLib/Input.svelte b/src_frontend/ComponentLib/Input.svelte new file mode 100644 index 0000000..ecbaefb --- /dev/null +++ b/src_frontend/ComponentLib/Input.svelte @@ -0,0 +1,14 @@ + + + + +
                + +
                \ No newline at end of file diff --git a/src_frontend/ComponentLib/PrettyVar.svelte b/src_frontend/ComponentLib/PrettyVar.svelte new file mode 100644 index 0000000..68f082f --- /dev/null +++ b/src_frontend/ComponentLib/PrettyVar.svelte @@ -0,0 +1,16 @@ + + +{prettyVarText} diff --git a/src_frontend/ComponentLib/RoundRange.svelte b/src_frontend/ComponentLib/RoundRange.svelte new file mode 100644 index 0000000..42c4d57 --- /dev/null +++ b/src_frontend/ComponentLib/RoundRange.svelte @@ -0,0 +1,169 @@ + + + + + + + + + + + + {value}% + \ No newline at end of file diff --git a/src_frontend/Components/Dialogs/ConfirmActionDialog.svelte b/src_frontend/Components/Dialogs/ConfirmActionDialog.svelte new file mode 100644 index 0000000..185c743 --- /dev/null +++ b/src_frontend/Components/Dialogs/ConfirmActionDialog.svelte @@ -0,0 +1,59 @@ + + + + + + +

                {title}

                +

                {text}

                +
                +
                +
                +
                +
                \ No newline at end of file diff --git a/src_frontend/Components/Editor/Controls.svelte b/src_frontend/Components/Editor/Controls.svelte new file mode 100644 index 0000000..302aa7a --- /dev/null +++ b/src_frontend/Components/Editor/Controls.svelte @@ -0,0 +1,83 @@ + + + + +
                +
                + + +
                +
                + +
                + + {brightnessValue} +
                +
                + + {#each Object.entries(variables) as [name, value]} +
                + + +
                + {/each} +
                \ No newline at end of file diff --git a/src_frontend/Components/Editor/Editor.svelte b/src_frontend/Components/Editor/Editor.svelte new file mode 100644 index 0000000..b63ee9b --- /dev/null +++ b/src_frontend/Components/Editor/Editor.svelte @@ -0,0 +1,296 @@ + + + + + + +
                +
                + + +
                + +
                + + + + +
                + +
                + +
                + + + +
                +
                diff --git a/src_frontend/Components/Editor/Output.svelte b/src_frontend/Components/Editor/Output.svelte new file mode 100644 index 0000000..dcd5995 --- /dev/null +++ b/src_frontend/Components/Editor/Output.svelte @@ -0,0 +1,54 @@ + + + + +
                +
                +        {@html htmlCode}
                +    
                +
                \ No newline at end of file diff --git a/src_frontend/Components/Editor/Pane.svelte b/src_frontend/Components/Editor/Pane.svelte new file mode 100644 index 0000000..143c569 --- /dev/null +++ b/src_frontend/Components/Editor/Pane.svelte @@ -0,0 +1,41 @@ + + + + +
                +
                +

                {header}

                +
                +
                + +
                +
                \ No newline at end of file diff --git a/src_frontend/Components/Editor/TopBar.svelte b/src_frontend/Components/Editor/TopBar.svelte new file mode 100644 index 0000000..c74adf0 --- /dev/null +++ b/src_frontend/Components/Editor/TopBar.svelte @@ -0,0 +1,62 @@ + + + + +
                +
                +
                + + + {#if hasChange} + (not saved) + {/if} + +
                +
                + {#if procIsRunning} + + + {:else} + + {/if} +
                +
                \ No newline at end of file diff --git a/src_frontend/Components/LEDConfig/LEDConfig.svelte b/src_frontend/Components/LEDConfig/LEDConfig.svelte new file mode 100644 index 0000000..2cf9aa2 --- /dev/null +++ b/src_frontend/Components/LEDConfig/LEDConfig.svelte @@ -0,0 +1,204 @@ + + + + +
                +

                Segments

                +

                Here you are defining the "segments" of your light-display. Use this to split the strip in stairs, blocks or any other configuration. Normally you would define a segment, for each cut you have made in the strip. But you could do other things to get fancy results. Each segment will be represented in the "matrix", by the number just below the number. Each segment should have it's own box below.

                + +
                + {#each segments as segment, i} +
                + +
                + {/each} + + +
                + +

                Matrix

                +

                Here you are defining your matrix. A matrix is really nothing more than a 2-dimentional array, or a list of lists. This is not a mathematical array, meaning each "row" can have different lengths. Use this to stitch your segments together. Each "box" should contain the number of the segment it is representing. By pressing the double-arrows on the box, you can "invert" a segment. This means counting from the other end. Use this if you have the segments in a snake-layout.

                + +
                + {#each matrix as row, i} +
                + {#each row as cell} +
                + +
                + {/each} + + +
                + {/each} + + +
                + +

                Advanced

                +
                + + + + + + + + + + + + + + + +
                +
                \ No newline at end of file diff --git a/src_frontend/Components/LEDConfig/MatrixSegment.svelte b/src_frontend/Components/LEDConfig/MatrixSegment.svelte new file mode 100644 index 0000000..c2c1934 --- /dev/null +++ b/src_frontend/Components/LEDConfig/MatrixSegment.svelte @@ -0,0 +1,57 @@ + + + + +
                + + +
                \ No newline at end of file diff --git a/src_frontend/Components/LEDConfig/Segment.svelte b/src_frontend/Components/LEDConfig/Segment.svelte new file mode 100644 index 0000000..3b71451 --- /dev/null +++ b/src_frontend/Components/LEDConfig/Segment.svelte @@ -0,0 +1,38 @@ + + + + +
                + + {id} +
                \ No newline at end of file diff --git a/src_frontend/Components/Logs/Logs.svelte b/src_frontend/Components/Logs/Logs.svelte new file mode 100644 index 0000000..a7256ae --- /dev/null +++ b/src_frontend/Components/Logs/Logs.svelte @@ -0,0 +1,10 @@ + + + +
                + +
                \ No newline at end of file diff --git a/src_frontend/Components/MainControls/ControlColors.svelte b/src_frontend/Components/MainControls/ControlColors.svelte new file mode 100644 index 0000000..5d21cc0 --- /dev/null +++ b/src_frontend/Components/MainControls/ControlColors.svelte @@ -0,0 +1,107 @@ + + + + +
                +
                +
                + {#each Object.keys(colorVariables) as colorVar} + + + + {/each} +
                +
                \ No newline at end of file diff --git a/src_frontend/Components/MainControls/ControlComponents.svelte b/src_frontend/Components/MainControls/ControlComponents.svelte new file mode 100644 index 0000000..5f6d165 --- /dev/null +++ b/src_frontend/Components/MainControls/ControlComponents.svelte @@ -0,0 +1,139 @@ + + + + +
                +

                {name}

                + + +
                + +
                + + {#each Object.entries(allModes) as [modePath, modes]} + + {#each modes as mode} + + {/each} + + {/each} + +
                +
                + + {#if Object.keys(colorVariables).length > 0} + + {/if} + +
                \ No newline at end of file diff --git a/src_frontend/Components/MainControls/ControlOthers.svelte b/src_frontend/Components/MainControls/ControlOthers.svelte new file mode 100644 index 0000000..862a4f5 --- /dev/null +++ b/src_frontend/Components/MainControls/ControlOthers.svelte @@ -0,0 +1,36 @@ + + + + +
                + {#each variables as variable} + + {#if variable.type == "range"} + + {:else} + + {/if} + {/each} +
                \ No newline at end of file diff --git a/src_frontend/Components/MainMenu.svelte b/src_frontend/Components/MainMenu.svelte new file mode 100644 index 0000000..7de36a5 --- /dev/null +++ b/src_frontend/Components/MainMenu.svelte @@ -0,0 +1,80 @@ + + + + + \ No newline at end of file diff --git a/src_frontend/Components/ModeList/Mode.svelte b/src_frontend/Components/ModeList/Mode.svelte new file mode 100644 index 0000000..67752c2 --- /dev/null +++ b/src_frontend/Components/ModeList/Mode.svelte @@ -0,0 +1,57 @@ + + + + +
                + {id} +
                + + + + + + +
                +
                \ No newline at end of file diff --git a/src_frontend/Components/ModeList/ModeList.svelte b/src_frontend/Components/ModeList/ModeList.svelte new file mode 100644 index 0000000..8bac3f9 --- /dev/null +++ b/src_frontend/Components/ModeList/ModeList.svelte @@ -0,0 +1,64 @@ + + + + +
                +

                Modes

                +
                + {#each userModes as mode} +
                + +
                + {/each} +
                + +
                + + + + + +
                +
                \ No newline at end of file diff --git a/src_frontend/Components/ModeList/NewModeDialog.svelte b/src_frontend/Components/ModeList/NewModeDialog.svelte new file mode 100644 index 0000000..539e3ef --- /dev/null +++ b/src_frontend/Components/ModeList/NewModeDialog.svelte @@ -0,0 +1,153 @@ + + + + + + + +
                + { activeTab = 0; }} class="far fa-file"> + { activeTab = 1; }} class="far fa-clone"> +
                + +
                +
                + {#if [0, 1].includes(activeTab)} +
                + + + {#if activeTab == 1} + + + {/if} +
                + {/if} +
                +
                +
                +
                +
                + +
                \ No newline at end of file diff --git a/src_frontend/Components/NotImplemented.svelte b/src_frontend/Components/NotImplemented.svelte new file mode 100644 index 0000000..a3f385a --- /dev/null +++ b/src_frontend/Components/NotImplemented.svelte @@ -0,0 +1,7 @@ + + +
                + Sorry, this functionality is not implemented yet... +
                \ No newline at end of file diff --git a/src_frontend/Components/Notifs/Notif.svelte b/src_frontend/Components/Notifs/Notif.svelte new file mode 100644 index 0000000..c8ef807 --- /dev/null +++ b/src_frontend/Components/Notifs/Notif.svelte @@ -0,0 +1,126 @@ + + + + +
                +
                + {#if title} +

                {title}

                + {/if} +

                {text}

                +
                +
                + removeNotif(nid)}>× +
                +
                \ No newline at end of file diff --git a/src_frontend/Components/Notifs/NotifsWrapper.svelte b/src_frontend/Components/Notifs/NotifsWrapper.svelte new file mode 100644 index 0000000..e68e2e2 --- /dev/null +++ b/src_frontend/Components/Notifs/NotifsWrapper.svelte @@ -0,0 +1,33 @@ + + + + +
                +{#each $notifs as notification (notification.id)} + +{/each} +
                \ No newline at end of file diff --git a/src_frontend/Components/Settings/CreateEditUser.svelte b/src_frontend/Components/Settings/CreateEditUser.svelte new file mode 100644 index 0000000..ca87336 --- /dev/null +++ b/src_frontend/Components/Settings/CreateEditUser.svelte @@ -0,0 +1,93 @@ + + + + + + +
                +

                + {#if newUser} + Create user + {:else} + Edit user + {/if} +

                + + + + +
                +
                +
                + {#if newUser} +
                + {:else} +
                + {/if} +
                + +
                \ No newline at end of file diff --git a/src_frontend/Components/Settings/InstanceName.svelte b/src_frontend/Components/Settings/InstanceName.svelte new file mode 100644 index 0000000..6d1892a --- /dev/null +++ b/src_frontend/Components/Settings/InstanceName.svelte @@ -0,0 +1,36 @@ + + + + +
                +

                Name

                + +
                diff --git a/src_frontend/Components/Settings/SSLCert.svelte b/src_frontend/Components/Settings/SSLCert.svelte new file mode 100644 index 0000000..adb3649 --- /dev/null +++ b/src_frontend/Components/Settings/SSLCert.svelte @@ -0,0 +1,57 @@ + + + + +
                +

                SSL Certificate

                +

                {isValid ? "VALID" : "INVALID"} (for {validTime} days)

                +

                CN {CN}

                + + + +
                Generate new cerificate
                +
                +
                + +
                diff --git a/src_frontend/Components/Settings/Settings.svelte b/src_frontend/Components/Settings/Settings.svelte new file mode 100644 index 0000000..b95f1ac --- /dev/null +++ b/src_frontend/Components/Settings/Settings.svelte @@ -0,0 +1,25 @@ + + + + +
                + + + + + +
                \ No newline at end of file diff --git a/src_frontend/Components/Settings/System.svelte b/src_frontend/Components/Settings/System.svelte new file mode 100644 index 0000000..1af4531 --- /dev/null +++ b/src_frontend/Components/Settings/System.svelte @@ -0,0 +1,34 @@ + + + + +
                +

                System restart

                + + +
                Restart system
                +
                +
                + + +
                Restart service
                +
                +
                +
                \ No newline at end of file diff --git a/src_frontend/Components/Settings/Users.svelte b/src_frontend/Components/Settings/Users.svelte new file mode 100644 index 0000000..7e68c3a --- /dev/null +++ b/src_frontend/Components/Settings/Users.svelte @@ -0,0 +1,93 @@ + + + + +
                +

                Users

                +
                  + {#each usersList as _user} +
                • + {_user} +
                  + {#if $user?.username != _user} + {deleteUser(_user)}}> + + + + + {/if} + + + + + +
                  +
                • + {/each} +
                + + +
                Create new user
                +
                +
                +
                \ No newline at end of file diff --git a/src_frontend/Components/Settings/Version.svelte b/src_frontend/Components/Settings/Version.svelte new file mode 100644 index 0000000..29d04ae --- /dev/null +++ b/src_frontend/Components/Settings/Version.svelte @@ -0,0 +1,60 @@ + + + + +
                +

                Version

                +

                Current version

                +

                Current branch

                + {#if newVer != version} +

                Version available.

                + {/if} +
                + Check for updates +
                +
                \ No newline at end of file diff --git a/src_frontend/layout/Desktop.svelte b/src_frontend/layout/Desktop.svelte new file mode 100644 index 0000000..e90a4a2 --- /dev/null +++ b/src_frontend/layout/Desktop.svelte @@ -0,0 +1,48 @@ + + + + + +
                + +
                +
                + +
                +
                \ No newline at end of file diff --git a/src_frontend/layout/Drawer.svelte b/src_frontend/layout/Drawer.svelte new file mode 100644 index 0000000..abf41fd --- /dev/null +++ b/src_frontend/layout/Drawer.svelte @@ -0,0 +1,38 @@ + + + + +
                + +
                \ No newline at end of file diff --git a/src_frontend/layout/Phone.svelte b/src_frontend/layout/Phone.svelte new file mode 100644 index 0000000..dc8d69a --- /dev/null +++ b/src_frontend/layout/Phone.svelte @@ -0,0 +1,50 @@ + + + + + +
                +
                +
                +
                Luxcena NEO
                +
                +
                + + + + + +
                \ No newline at end of file diff --git a/src_frontend/main.js b/src_frontend/main.js new file mode 100644 index 0000000..4c473fa --- /dev/null +++ b/src_frontend/main.js @@ -0,0 +1,7 @@ +import App from './App.svelte'; + +const app = new App({ + target: document.body +}); + +export default app; \ No newline at end of file diff --git a/src_frontend/routes/EditorRoute.svelte b/src_frontend/routes/EditorRoute.svelte new file mode 100644 index 0000000..283f8db --- /dev/null +++ b/src_frontend/routes/EditorRoute.svelte @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/src_frontend/routes/LoginRoute.svelte b/src_frontend/routes/LoginRoute.svelte new file mode 100644 index 0000000..1f9ef45 --- /dev/null +++ b/src_frontend/routes/LoginRoute.svelte @@ -0,0 +1,106 @@ + + + + +
                + +
                \ No newline at end of file diff --git a/src_frontend/routes/MainRoute.svelte b/src_frontend/routes/MainRoute.svelte new file mode 100644 index 0000000..30a689c --- /dev/null +++ b/src_frontend/routes/MainRoute.svelte @@ -0,0 +1,61 @@ + + + + + diff --git a/src_frontend/routes/UnknownRoute.svelte b/src_frontend/routes/UnknownRoute.svelte new file mode 100644 index 0000000..eb649dd --- /dev/null +++ b/src_frontend/routes/UnknownRoute.svelte @@ -0,0 +1,21 @@ + + + + +
                +
                + Unknown path ({params.wild})... +
                +
                \ No newline at end of file diff --git a/src_frontend/routes/WidgetRoute.svelte b/src_frontend/routes/WidgetRoute.svelte new file mode 100644 index 0000000..a3bbbe7 --- /dev/null +++ b/src_frontend/routes/WidgetRoute.svelte @@ -0,0 +1,130 @@ + + + + +
                +
                + {instanceName} +
                +
                + +
                +
                + +
                +
                \ No newline at end of file diff --git a/src_frontend/stores/notifs.js b/src_frontend/stores/notifs.js new file mode 100644 index 0000000..f117f18 --- /dev/null +++ b/src_frontend/stores/notifs.js @@ -0,0 +1,24 @@ +import { writable } from "svelte/store"; +import { nanoid } from 'nanoid' + +export const notifs = writable([]); + +export function notif(notification) { + let _notif = { + id: nanoid(), + timeout: 10000, + ...notification + } + notifs.update(_notifs => { + setTimeout(() => { + removeNotif(_notif.id) + }, _notif.timeout); + return [..._notifs, _notif]; + }); +} + +export function removeNotif(notifId) { + notifs.update(_notifs => { + return _notifs.filter(n => n.id !== notifId); + }); +} diff --git a/src_frontend/stores/socketStore.js b/src_frontend/stores/socketStore.js new file mode 100644 index 0000000..d87a075 --- /dev/null +++ b/src_frontend/stores/socketStore.js @@ -0,0 +1,112 @@ +import { writable, derived, get } from "svelte/store"; +import { replace } from "svelte-spa-router"; +import { io } from 'socket.io-client'; +import {location, querystring} from 'svelte-spa-router' + +export const openSocket = io("/open"); +export let openSocketConnected = writable(false); +export let openSocketReconnecting = writable(false); + +openSocket.on("connect", () => { + openSocketConnected.set(true); +}); +openSocket.on("disconnect", () => { + openSocketConnected.set(false); +}); +openSocket.io.on("reconnect_attempt", () => { + openSocketReconnecting.set(true); +}); +openSocket.io.on("reconnect", () => { + openSocketReconnecting.set(false); +}); + +export const authorizedSocket = io("/authed", {auth: {token: "te"}}); +export let authorizedSocketConnected = writable(false); +export let authorizedSocketReconnecting = writable(false); +export let authorizedSocketConnectError = writable(false); +export const user = writable({}); + +authorizedSocket.on("connect_error", (err) => { + authorizedSocketConnectError.set(true); + authorizedSocketReconnecting.set(false); + if ((err.message == "not authorized") && + get(authorizedSocketNeeded) && + (get(location) != "/login")) { + replace(`/login?ref=${get(location)}&${get(querystring)}`); + authorizedSocketConnected.set(false); + } +}); +authorizedSocket.on("connect", () => { + authorizedSocketConnected.set(true); + authorizedSocketConnectError.set(false); + if (get(location) == "/login") { + let searchParams = new URLSearchParams(get(querystring)) + if (searchParams.has("ref")) { + let path = searchParams.get("ref"); + searchParams.delete("ref"); + let params = ""; + if (searchParams.values().length > 0) { + params = "?" + searchParams.toString(); + } + replace(`${path}${params}`); + } else { + replace(`/`); + } + } +}); +authorizedSocket.on("disconnect", () => { + authorizedSocketConnected.set(false); +}); +authorizedSocket.io.on("reconnect_attempt", () => { + authorizedSocketReconnecting.set(true); +}); +authorizedSocket.io.on("reconnect", () => { + authorizedSocketReconnecting.set(false); +}); +authorizedSocket.on("user", (userObj) => { + user.set(userObj); +}); + + +let storedSessionToken = localStorage.getItem("sessionToken"); +export const isAuthenticating = writable(storedSessionToken != undefined); +export const sessionToken = writable(storedSessionToken); +function connectAuthorizedSocket() { + authorizedSocket.auth.token = get(sessionToken); + authorizedSocket.disconnect().connect(); +} +sessionToken.subscribe((token) => localStorage.setItem("sessionToken", token)); +sessionToken.subscribe(() => connectAuthorizedSocket()); + +export const authorizedSocketNeeded = writable(false); +authorizedSocketNeeded.subscribe((value) => { + if (value) { connectAuthorizedSocket(); } +}); + +export function authenticate(username, password, callback) { + openSocket.emit("authenticate:user", username, password, (res) => { + if (res.success) { + sessionToken.set(res.token); + } else if (res.reason != "Invalid username/password") { + console.log(res); + } + callback(res.success); + }); +} + +export const connected = writable(false); +export const reconnecting = writable(false); +function connectedStateChange() { + // console.log(`${get(openSocketConnected)} ${get(authorizedSocketConnectError)} ${get(authorizedSocketReconnecting)}`); + connected.set(get(openSocketConnected) + && (get(authorizedSocketConnectError) + || get(authorizedSocketConnected))); + reconnecting.set(get(openSocketReconnecting) + && (get(authorizedSocketConnectError) + || get(authorizedSocketReconnecting))); +} +openSocketConnected.subscribe(connectedStateChange); +openSocketReconnecting.subscribe(connectedStateChange); +authorizedSocketConnected.subscribe(connectedStateChange); +authorizedSocketReconnecting.subscribe(connectedStateChange); +authorizedSocketConnectError.subscribe(connectedStateChange); diff --git a/tests/runTests.js b/tests/runTests.js deleted file mode 100644 index 4028de9..0000000 --- a/tests/runTests.js +++ /dev/null @@ -1,8 +0,0 @@ - -console.log("Unit-tests"); -console.log("~~~~~~~~~~"); - -require("./Unit/CCompiler/CCompiler")(); - - - diff --git a/webpack.config.js b/webpack.config.js deleted file mode 100644 index 8d838a4..0000000 --- a/webpack.config.js +++ /dev/null @@ -1,35 +0,0 @@ -const MiniCssExtractPlugin = require("mini-css-extract-plugin"); -const path = require('path'); - -module.exports = { - mode: "none", - entry: "./src/public/app.js", - output: { - path: path.resolve(__dirname, "public/assets/js"), - filename: "bundle.js" - }, - resolve: { - extensions: ['.js', '.css', '.scss'], - alias: { - "fontawesome": path.join(__dirname, "/node_modules/@fortawesome/fontawesome-free/js/all.min.js"), - "node_modules": path.join(__dirname, "/node_modules") - } - }, - module: { - rules: [ - { - test: /\.scss$/, - use: [ - MiniCssExtractPlugin.loader, - "css-loader", - "sass-loader" - ] - } - ] - }, - plugins: [ - new MiniCssExtractPlugin({ - filename: "../css/bundle.css" - }) - ] -}; -- cgit v1.2.3