- Commit
- 275e60021c31e025a79f777f097f48c2f2d6a5d7
- Parent
- fa588ec6a82213ca3bb79b1bb83390bd3684b5f1
- Author
- Pablo Escobar Gaviria <gark.garcia@protonmail.com>
- Date
Updated elm-syntax-highlight to version 3.1.1
A simple SVG markup editor for the web
Updated elm-syntax-highlight to version 3.1.1
19 files changed, 439 insertions, 469 deletions
Status | Name | Changes | Insertions | Deletions |
Modified | .gitignore | 2 files changed | 6 | 6 |
Modified | LICENSE | 2 files changed | 9 | 9 |
Modified | README.md | 2 files changed | 3 | 3 |
Modified | assets/example.svg | 2 files changed | 5 | 5 |
Modified | assets/github.svg | 2 files changed | 4 | 4 |
Modified | assets/icons/favicon.svg | 2 files changed | 5 | 3 |
Modified | assets/logo.svg | 2 files changed | 4 | 4 |
Modified | build/build.py | 2 files changed | 16 | 16 |
Modified | elm.json | 2 files changed | 32 | 33 |
Deleted | index.html | 1 file changed | 0 | 33 |
Added | index.html | 1 file changed | 2 | 0 |
Modified | manifest.json | 2 files changed | 19 | 19 |
Deleted | script.min.js | 1 file changed | 0 | 3 |
Added | script.min.js | 1 file changed | 2 | 0 |
Modified | service-worker.js | 2 files changed | 17 | 17 |
Modified | src/Editor.elm | 2 files changed | 56 | 56 |
Modified | src/Main.elm | 2 files changed | 92 | 92 |
Modified | src/Types.elm | 2 files changed | 39 | 39 |
Modified | src/View.elm | 2 files changed | 130 | 130 |
diff --git a/.gitignore b/.gitignore @@ -1,7 +1,7 @@ -.vscode -.idea -elm-stuff -build/output -src/assets -output +.vscode +.idea +elm-stuff +build/output +src/assets +output *.afphoto \ No newline at end of file
diff --git a/LICENSE b/LICENSE @@ -1,9 +1,9 @@ - - -Copyright 2019 Thiago Brevidelli - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +Copyright 2019 Thiago Brevidelli + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/README.md b/README.md @@ -1,4 +1,4 @@ -# RawSvg -A simple SVG markup editor for the web. Avaiable in for free in [here](https://garkgarcia.github.io/RawSvg/)! - +# RawSvg +A simple SVG markup editor for the web. Avaiable in for free in [here](https://garkgarcia.github.io/RawSvg/)! + The color scheme used in the app's design is based on [Ahmad Awais](https://github.com/ahmadawais)'s [Shades of Purple theme](https://github.com/ahmadawais/shades-of-purple-vscode). \ No newline at end of file
diff --git a/assets/example.svg b/assets/example.svg @@ -1,5 +1,5 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Edit the source code of the image and preview the results --> -<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 70"> - <path fill="#2D2B55" d="M22.58 8.37h-3.67l-.66 1.69h-3.31L19.17.39h3.2l4.23 9.67h-3.37l-.65-1.69zm-.9-2.35l-.94-2.43-.94 2.43h1.88zm13.2 4.26c-.8 0-1.58-.1-2.35-.28a6.36 6.36 0 0 1-1.87-.71l1.05-2.38a6.38 6.38 0 0 0 3.2.88c.45 0 .77-.04.96-.12.2-.1.3-.22.3-.4 0-.21-.13-.36-.4-.46-.24-.1-.66-.2-1.24-.33-.63-.12-1.25-.29-1.86-.5-.5-.18-.95-.49-1.3-.88a2.4 2.4 0 0 1-.56-1.67c0-.61.17-1.16.52-1.66.34-.5.84-.89 1.52-1.18a6.3 6.3 0 0 1 2.47-.42 8.4 8.4 0 0 1 3.65.84l-.98 2.36a5.96 5.96 0 0 0-2.7-.72c-.84 0-1.26.21-1.26.61 0 .2.13.35.38.44.25.1.66.2 1.23.3.73.15 1.35.31 1.86.49s.94.47 1.31.87c.38.4.57.95.57 1.66 0 .6-.16 1.16-.5 1.66-.36.48-.87.88-1.54 1.17-.68.28-1.5.43-2.46.43zm5.47-9.9h3.26v9.68h-3.26V.39zm13.47 9.68l-.03-4.4-2.1 3.53h-1.43l-2.1-3.39v4.26h-2.97V.39h2.68l3.15 5.15L54.08.39h2.68l.03 9.67h-2.97zm9.2-9.67c.9 0 1.67.15 2.34.44a3.4 3.4 0 0 1 1.53 1.27c.36.55.54 1.2.54 1.93 0 .74-.18 1.39-.54 1.94-.36.55-.87.98-1.53 1.27-.67.29-1.44.44-2.34.44h-1.4v2.38h-3.25V.39h4.65zm-.2 4.78c.44 0 .77-.1.99-.3.22-.2.33-.48.33-.84 0-.35-.1-.63-.33-.82-.22-.21-.55-.3-1-.3h-1.18v2.26h1.18zM68.48.39h3.26v7.14h4.37v2.53H68.5V.39zm16.57 7.2v2.47h-8.04V.39h7.86v2.46h-4.66v1.13h4.1v2.35h-4.1V7.6h4.84zM3.98 30.29c-.84 0-1.63-.1-2.36-.28a6.6 6.6 0 0 1-1.82-.7l1.25-2.4c1.04.59 2.13.9 3.26.9.42 0 .74-.06.96-.16.22-.1.33-.23.33-.41 0-.17-.11-.3-.35-.4a7.6 7.6 0 0 0-1.06-.34c-.54-.13-1.08-.3-1.6-.5-.43-.17-.81-.44-1.12-.78A2.05 2.05 0 0 1 1 23.8c0-.73.2-1.37.58-1.9.4-.56.97-.99 1.7-1.28a8.35 8.35 0 0 1 4.61-.23c.57.12 1.12.32 1.62.6l-1.17 2.38a5.18 5.18 0 0 0-2.65-.72c-.46 0-.8.07-1.06.2-.25.12-.37.27-.37.45s.11.32.33.42c.24.1.6.2 1.12.33.62.15 1.15.3 1.58.47.42.17.8.43 1.12.77.31.35.47.82.47 1.38 0 .72-.2 1.36-.6 1.9-.4.54-.97.96-1.7 1.25-.73.3-1.6.46-2.6.46zm17.51-9.9l-6.02 9.68h-3.21l-2.16-9.67h3.35l1.2 5.63 3.5-5.63h3.34zm5.66 4.58H30l-.83 4.17c-.51.38-1.1.65-1.77.86-.7.2-1.43.3-2.16.29-.98 0-1.85-.18-2.6-.54a4.12 4.12 0 0 1-2.36-3.78c0-1.12.27-2.13.8-3a5.41 5.41 0 0 1 2.19-2.05 6.8 6.8 0 0 1 3.23-.74c2 0 3.47.63 4.4 1.89l-2.34 1.8c-.3-.38-.64-.65-.98-.8a2.83 2.83 0 0 0-1.23-.25c-.57 0-1.05.12-1.47.37-.42.24-.76.6-.98 1.05-.22.44-.33.95-.33 1.52 0 .56.2 1.03.57 1.38.37.35.9.51 1.56.51.33 0 .65-.04.95-.14l.51-2.54zm16.75 5.1l-.03-4.4-2.1 3.53h-1.43l-2.1-3.39v4.26h-2.97v-9.67h2.68l3.15 5.15 3.06-5.15h2.68l.03 9.67H43.9zm11.14-1.69h-3.68l-.65 1.69H47.4l4.22-9.67h3.2l4.24 9.67h-3.37l-.65-1.69zm-.9-2.35l-.94-2.43-.94 2.43h1.88zm9.59 1.6h-.89v2.44h-3.26v-9.67h4.66c.9 0 1.67.15 2.33.44a3.4 3.4 0 0 1 1.54 1.27c.36.55.54 1.2.54 1.93 0 .7-.16 1.3-.47 1.81-.32.52-.76.93-1.36 1.23l2.03 2.99h-3.48l-1.64-2.43zm1.63-3.59c0-.35-.11-.63-.33-.82-.23-.21-.56-.3-1-.3h-1.19v2.26h1.2c.43 0 .76-.1.99-.3.22-.2.33-.48.33-.84zm8.45 2.82l-.73.82v2.39h-3.2v-9.67h3.2v3.5l3.18-3.5h3.55l-3.87 4.25L80 30.06h-3.77l-2.42-3.2zm11.13 3.43c-1.48 0-2.64-.4-3.47-1.2a4.46 4.46 0 0 1-1.25-3.37v-5.32h3.27v5.22c0 .7.12 1.23.37 1.55.26.32.62.48 1.1.48.49 0 .85-.16 1.1-.48.26-.32.38-.85.38-1.55v-5.22h3.2v5.32c0 1.45-.4 2.57-1.24 3.37-.83.8-1.99 1.2-3.46 1.2zm10.86-9.9c.9 0 1.67.16 2.33.45.66.29 1.18.72 1.53 1.27.36.55.54 1.2.54 1.93 0 .74-.18 1.39-.54 1.94-.35.55-.87.98-1.53 1.27-.66.29-1.44.44-2.33.44h-1.4v2.38h-3.26v-9.67h4.66zm-.21 4.79c.44 0 .77-.1 1-.3.21-.2.33-.48.33-.84 0-.35-.11-.63-.34-.82-.22-.21-.55-.3-1-.3H94.4v2.26h1.19zM13.48 47.6v2.46H5.43v-9.67h7.87v2.46H8.64v1.13h4.09v2.35H8.64v1.27h4.84zm1.25-7.21h4.77c1.08 0 2.03.19 2.86.6.82.38 1.46.93 1.92 1.66.44.74.68 1.6.68 2.57 0 .98-.24 1.84-.68 2.57a4.57 4.57 0 0 1-1.92 1.69 6.7 6.7 0 0 1-2.86.58h-4.77v-9.67zm4.63 7.13c.7 0 1.26-.2 1.69-.6.41-.4.62-.96.62-1.7 0-.73-.2-1.28-.64-1.68a2.3 2.3 0 0 0-1.67-.61H18v4.59h1.37zm6.79-7.13h3.26v9.67h-3.26v-9.67zm6.93 2.52h-2.83V40.4h8.93v2.52h-2.84v7.15h-3.26V42.9zm11.87 7.37a6.03 6.03 0 0 1-2.8-.65 4.84 4.84 0 0 1-2.66-4.4c0-.98.24-1.85.7-2.62a4.9 4.9 0 0 1 1.96-1.8 6.05 6.05 0 0 1 2.8-.65c1.04 0 1.98.23 2.8.66a4.89 4.89 0 0 1 2.66 4.4 4.85 4.85 0 0 1-2.65 4.41c-.83.43-1.77.65-2.81.65zm0-2.64c.4 0 .77-.1 1.1-.3.32-.2.59-.47.78-.85.2-.36.29-.78.29-1.27 0-.48-.1-.9-.3-1.28a2.07 2.07 0 0 0-1.88-1.13c-.39 0-.76.1-1.1.28-.32.21-.59.5-.77.85-.2.37-.29.8-.29 1.28 0 .49.1.91.3 1.27a2.08 2.08 0 0 0 1.87 1.15zm10.79-.01h-.88v2.43H51.6v-9.67h4.65c.9 0 1.67.15 2.34.44.66.29 1.17.72 1.53 1.27.36.55.54 1.2.54 1.93 0 .7-.15 1.3-.47 1.81-.32.51-.76.93-1.35 1.23l2.03 2.99h-3.48l-1.65-2.43zm1.63-3.6c0-.36-.1-.63-.33-.83-.22-.2-.55-.3-1-.3h-1.18v2.27h1.18c.45 0 .78-.1 1-.3.22-.2.33-.48.33-.84zm11.93-1.18v1.65h4.03v2.46h-4.04v3.1h-3.26v-9.67h7.87v2.46h-4.6zm10.63 7.43a6.03 6.03 0 0 1-2.8-.65 4.84 4.84 0 0 1-2.65-4.4c0-.98.23-1.85.7-2.62a4.9 4.9 0 0 1 1.95-1.8 6.05 6.05 0 0 1 2.8-.65c1.04 0 1.98.23 2.8.65a4.89 4.89 0 0 1 2.66 4.41 4.85 4.85 0 0 1-2.65 4.41c-.83.43-1.77.65-2.8.65zm0-2.64c.4 0 .78-.1 1.1-.3.33-.2.59-.47.78-.85.2-.36.3-.78.3-1.27 0-.48-.1-.9-.3-1.28a2.07 2.07 0 0 0-1.88-1.13c-.4 0-.77.1-1.1.28-.33.21-.6.5-.78.85-.19.37-.29.8-.29 1.28 0 .49.1.91.3 1.27a2.08 2.08 0 0 0 1.87 1.15zm10.8-.01h-.89v2.43h-3.26v-9.67h4.66c.9 0 1.67.15 2.33.44.66.29 1.18.72 1.54 1.27.36.55.53 1.2.53 1.93 0 .7-.15 1.3-.47 1.81-.31.51-.76.93-1.35 1.23l2.03 2.99h-3.48l-1.64-2.43zm1.62-3.6c0-.36-.1-.63-.33-.83-.22-.2-.55-.3-1-.3h-1.18v2.27h1.19c.44 0 .77-.1 1-.3.21-.2.32-.48.32-.84zm-74.1 18.88H15.4V60.4h8.92v2.52H21.5v7.15h-3.26V62.9zM34.7 60.4v9.67h-3.26v-3.57h-3.01v3.57h-3.26v-9.67h3.26v3.42h3.01V60.4h3.26zm9.62 7.2v2.47h-8.04v-9.67h7.86v2.46h-4.66v1.13h4.1v2.35h-4.1v1.27h4.84zm21.14-7.2l-3.1 9.67h-3.5l-1.55-5.17-1.65 5.17h-3.5l-3.09-9.67h3.36l1.68 5.5 1.79-5.5h3l1.68 5.56 1.78-5.56h3.1zm8.76 7.2v2.47h-8.04v-9.67h7.86v2.46h-4.66v1.13h4.1v2.35h-4.1v1.27h4.84zm9-2.59c.56.2 1 .53 1.32.93.32.4.47.9.47 1.46 0 .84-.35 1.5-1.05 1.98a5.6 5.6 0 0 1-3.04.69h-5.45v-9.67h5.17a5.1 5.1 0 0 1 2.92.69c.66.45 1 1.07 1 1.83 0 .46-.12.86-.34 1.22-.23.36-.56.65-1 .87zm-4.54-2.33v1.43h1.52c.7 0 1.06-.23 1.06-.71 0-.49-.36-.72-1.06-.72h-1.52zm1.96 5.1c.72 0 1.08-.24 1.08-.75s-.36-.76-1.08-.76H78.7v1.52h1.96z"/> -</svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Edit the source code of the image and preview the results --> +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 70"> + <path fill="#2D2B55" d="M22.58 8.37h-3.67l-.66 1.69h-3.31L19.17.39h3.2l4.23 9.67h-3.37l-.65-1.69zm-.9-2.35l-.94-2.43-.94 2.43h1.88zm13.2 4.26c-.8 0-1.58-.1-2.35-.28a6.36 6.36 0 0 1-1.87-.71l1.05-2.38a6.38 6.38 0 0 0 3.2.88c.45 0 .77-.04.96-.12.2-.1.3-.22.3-.4 0-.21-.13-.36-.4-.46-.24-.1-.66-.2-1.24-.33-.63-.12-1.25-.29-1.86-.5-.5-.18-.95-.49-1.3-.88a2.4 2.4 0 0 1-.56-1.67c0-.61.17-1.16.52-1.66.34-.5.84-.89 1.52-1.18a6.3 6.3 0 0 1 2.47-.42 8.4 8.4 0 0 1 3.65.84l-.98 2.36a5.96 5.96 0 0 0-2.7-.72c-.84 0-1.26.21-1.26.61 0 .2.13.35.38.44.25.1.66.2 1.23.3.73.15 1.35.31 1.86.49s.94.47 1.31.87c.38.4.57.95.57 1.66 0 .6-.16 1.16-.5 1.66-.36.48-.87.88-1.54 1.17-.68.28-1.5.43-2.46.43zm5.47-9.9h3.26v9.68h-3.26V.39zm13.47 9.68l-.03-4.4-2.1 3.53h-1.43l-2.1-3.39v4.26h-2.97V.39h2.68l3.15 5.15L54.08.39h2.68l.03 9.67h-2.97zm9.2-9.67c.9 0 1.67.15 2.34.44a3.4 3.4 0 0 1 1.53 1.27c.36.55.54 1.2.54 1.93 0 .74-.18 1.39-.54 1.94-.36.55-.87.98-1.53 1.27-.67.29-1.44.44-2.34.44h-1.4v2.38h-3.25V.39h4.65zm-.2 4.78c.44 0 .77-.1.99-.3.22-.2.33-.48.33-.84 0-.35-.1-.63-.33-.82-.22-.21-.55-.3-1-.3h-1.18v2.26h1.18zM68.48.39h3.26v7.14h4.37v2.53H68.5V.39zm16.57 7.2v2.47h-8.04V.39h7.86v2.46h-4.66v1.13h4.1v2.35h-4.1V7.6h4.84zM3.98 30.29c-.84 0-1.63-.1-2.36-.28a6.6 6.6 0 0 1-1.82-.7l1.25-2.4c1.04.59 2.13.9 3.26.9.42 0 .74-.06.96-.16.22-.1.33-.23.33-.41 0-.17-.11-.3-.35-.4a7.6 7.6 0 0 0-1.06-.34c-.54-.13-1.08-.3-1.6-.5-.43-.17-.81-.44-1.12-.78A2.05 2.05 0 0 1 1 23.8c0-.73.2-1.37.58-1.9.4-.56.97-.99 1.7-1.28a8.35 8.35 0 0 1 4.61-.23c.57.12 1.12.32 1.62.6l-1.17 2.38a5.18 5.18 0 0 0-2.65-.72c-.46 0-.8.07-1.06.2-.25.12-.37.27-.37.45s.11.32.33.42c.24.1.6.2 1.12.33.62.15 1.15.3 1.58.47.42.17.8.43 1.12.77.31.35.47.82.47 1.38 0 .72-.2 1.36-.6 1.9-.4.54-.97.96-1.7 1.25-.73.3-1.6.46-2.6.46zm17.51-9.9l-6.02 9.68h-3.21l-2.16-9.67h3.35l1.2 5.63 3.5-5.63h3.34zm5.66 4.58H30l-.83 4.17c-.51.38-1.1.65-1.77.86-.7.2-1.43.3-2.16.29-.98 0-1.85-.18-2.6-.54a4.12 4.12 0 0 1-2.36-3.78c0-1.12.27-2.13.8-3a5.41 5.41 0 0 1 2.19-2.05 6.8 6.8 0 0 1 3.23-.74c2 0 3.47.63 4.4 1.89l-2.34 1.8c-.3-.38-.64-.65-.98-.8a2.83 2.83 0 0 0-1.23-.25c-.57 0-1.05.12-1.47.37-.42.24-.76.6-.98 1.05-.22.44-.33.95-.33 1.52 0 .56.2 1.03.57 1.38.37.35.9.51 1.56.51.33 0 .65-.04.95-.14l.51-2.54zm16.75 5.1l-.03-4.4-2.1 3.53h-1.43l-2.1-3.39v4.26h-2.97v-9.67h2.68l3.15 5.15 3.06-5.15h2.68l.03 9.67H43.9zm11.14-1.69h-3.68l-.65 1.69H47.4l4.22-9.67h3.2l4.24 9.67h-3.37l-.65-1.69zm-.9-2.35l-.94-2.43-.94 2.43h1.88zm9.59 1.6h-.89v2.44h-3.26v-9.67h4.66c.9 0 1.67.15 2.33.44a3.4 3.4 0 0 1 1.54 1.27c.36.55.54 1.2.54 1.93 0 .7-.16 1.3-.47 1.81-.32.52-.76.93-1.36 1.23l2.03 2.99h-3.48l-1.64-2.43zm1.63-3.59c0-.35-.11-.63-.33-.82-.23-.21-.56-.3-1-.3h-1.19v2.26h1.2c.43 0 .76-.1.99-.3.22-.2.33-.48.33-.84zm8.45 2.82l-.73.82v2.39h-3.2v-9.67h3.2v3.5l3.18-3.5h3.55l-3.87 4.25L80 30.06h-3.77l-2.42-3.2zm11.13 3.43c-1.48 0-2.64-.4-3.47-1.2a4.46 4.46 0 0 1-1.25-3.37v-5.32h3.27v5.22c0 .7.12 1.23.37 1.55.26.32.62.48 1.1.48.49 0 .85-.16 1.1-.48.26-.32.38-.85.38-1.55v-5.22h3.2v5.32c0 1.45-.4 2.57-1.24 3.37-.83.8-1.99 1.2-3.46 1.2zm10.86-9.9c.9 0 1.67.16 2.33.45.66.29 1.18.72 1.53 1.27.36.55.54 1.2.54 1.93 0 .74-.18 1.39-.54 1.94-.35.55-.87.98-1.53 1.27-.66.29-1.44.44-2.33.44h-1.4v2.38h-3.26v-9.67h4.66zm-.21 4.79c.44 0 .77-.1 1-.3.21-.2.33-.48.33-.84 0-.35-.11-.63-.34-.82-.22-.21-.55-.3-1-.3H94.4v2.26h1.19zM13.48 47.6v2.46H5.43v-9.67h7.87v2.46H8.64v1.13h4.09v2.35H8.64v1.27h4.84zm1.25-7.21h4.77c1.08 0 2.03.19 2.86.6.82.38 1.46.93 1.92 1.66.44.74.68 1.6.68 2.57 0 .98-.24 1.84-.68 2.57a4.57 4.57 0 0 1-1.92 1.69 6.7 6.7 0 0 1-2.86.58h-4.77v-9.67zm4.63 7.13c.7 0 1.26-.2 1.69-.6.41-.4.62-.96.62-1.7 0-.73-.2-1.28-.64-1.68a2.3 2.3 0 0 0-1.67-.61H18v4.59h1.37zm6.79-7.13h3.26v9.67h-3.26v-9.67zm6.93 2.52h-2.83V40.4h8.93v2.52h-2.84v7.15h-3.26V42.9zm11.87 7.37a6.03 6.03 0 0 1-2.8-.65 4.84 4.84 0 0 1-2.66-4.4c0-.98.24-1.85.7-2.62a4.9 4.9 0 0 1 1.96-1.8 6.05 6.05 0 0 1 2.8-.65c1.04 0 1.98.23 2.8.66a4.89 4.89 0 0 1 2.66 4.4 4.85 4.85 0 0 1-2.65 4.41c-.83.43-1.77.65-2.81.65zm0-2.64c.4 0 .77-.1 1.1-.3.32-.2.59-.47.78-.85.2-.36.29-.78.29-1.27 0-.48-.1-.9-.3-1.28a2.07 2.07 0 0 0-1.88-1.13c-.39 0-.76.1-1.1.28-.32.21-.59.5-.77.85-.2.37-.29.8-.29 1.28 0 .49.1.91.3 1.27a2.08 2.08 0 0 0 1.87 1.15zm10.79-.01h-.88v2.43H51.6v-9.67h4.65c.9 0 1.67.15 2.34.44.66.29 1.17.72 1.53 1.27.36.55.54 1.2.54 1.93 0 .7-.15 1.3-.47 1.81-.32.51-.76.93-1.35 1.23l2.03 2.99h-3.48l-1.65-2.43zm1.63-3.6c0-.36-.1-.63-.33-.83-.22-.2-.55-.3-1-.3h-1.18v2.27h1.18c.45 0 .78-.1 1-.3.22-.2.33-.48.33-.84zm11.93-1.18v1.65h4.03v2.46h-4.04v3.1h-3.26v-9.67h7.87v2.46h-4.6zm10.63 7.43a6.03 6.03 0 0 1-2.8-.65 4.84 4.84 0 0 1-2.65-4.4c0-.98.23-1.85.7-2.62a4.9 4.9 0 0 1 1.95-1.8 6.05 6.05 0 0 1 2.8-.65c1.04 0 1.98.23 2.8.65a4.89 4.89 0 0 1 2.66 4.41 4.85 4.85 0 0 1-2.65 4.41c-.83.43-1.77.65-2.8.65zm0-2.64c.4 0 .78-.1 1.1-.3.33-.2.59-.47.78-.85.2-.36.3-.78.3-1.27 0-.48-.1-.9-.3-1.28a2.07 2.07 0 0 0-1.88-1.13c-.4 0-.77.1-1.1.28-.33.21-.6.5-.78.85-.19.37-.29.8-.29 1.28 0 .49.1.91.3 1.27a2.08 2.08 0 0 0 1.87 1.15zm10.8-.01h-.89v2.43h-3.26v-9.67h4.66c.9 0 1.67.15 2.33.44.66.29 1.18.72 1.54 1.27.36.55.53 1.2.53 1.93 0 .7-.15 1.3-.47 1.81-.31.51-.76.93-1.35 1.23l2.03 2.99h-3.48l-1.64-2.43zm1.62-3.6c0-.36-.1-.63-.33-.83-.22-.2-.55-.3-1-.3h-1.18v2.27h1.19c.44 0 .77-.1 1-.3.21-.2.32-.48.32-.84zm-74.1 18.88H15.4V60.4h8.92v2.52H21.5v7.15h-3.26V62.9zM34.7 60.4v9.67h-3.26v-3.57h-3.01v3.57h-3.26v-9.67h3.26v3.42h3.01V60.4h3.26zm9.62 7.2v2.47h-8.04v-9.67h7.86v2.46h-4.66v1.13h4.1v2.35h-4.1v1.27h4.84zm21.14-7.2l-3.1 9.67h-3.5l-1.55-5.17-1.65 5.17h-3.5l-3.09-9.67h3.36l1.68 5.5 1.79-5.5h3l1.68 5.56 1.78-5.56h3.1zm8.76 7.2v2.47h-8.04v-9.67h7.86v2.46h-4.66v1.13h4.1v2.35h-4.1v1.27h4.84zm9-2.59c.56.2 1 .53 1.32.93.32.4.47.9.47 1.46 0 .84-.35 1.5-1.05 1.98a5.6 5.6 0 0 1-3.04.69h-5.45v-9.67h5.17a5.1 5.1 0 0 1 2.92.69c.66.45 1 1.07 1 1.83 0 .46-.12.86-.34 1.22-.23.36-.56.65-1 .87zm-4.54-2.33v1.43h1.52c.7 0 1.06-.23 1.06-.71 0-.49-.36-.72-1.06-.72h-1.52zm1.96 5.1c.72 0 1.08-.24 1.08-.75s-.36-.76-1.08-.76H78.7v1.52h1.96z"/> +</svg>
diff --git a/assets/github.svg b/assets/github.svg @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg viewBox="0 0 50 50" xmlns="http://www.w3.org/2000/svg"> - <path d="M24.998 0C11.193 0 0 11.476 0 25.633c0 11.325 7.163 20.932 17.097 24.323 1.25.235 1.707-.557 1.707-1.237 0-.607-.022-2.22-.034-4.358-6.954 1.548-8.421-3.437-8.421-3.437-1.138-2.96-2.777-3.748-2.777-3.748-2.27-1.591.172-1.56.172-1.56 2.51.183 3.83 2.642 3.83 2.642 2.23 3.917 5.851 2.785 7.276 2.13.227-1.656.871-2.786 1.586-3.426-5.55-.647-11.387-2.847-11.387-12.67 0-2.797.974-5.085 2.574-6.877-.258-.649-1.116-3.254.244-6.784 0 0 2.1-.69 6.875 2.628 1.994-.568 4.133-.853 6.259-.862 2.122.009 4.262.294 6.258.862 4.773-3.317 6.868-2.628 6.868-2.628 1.365 3.53.507 6.135.249 6.784 1.602 1.792 2.57 4.08 2.57 6.878 0 9.847-5.845 12.014-11.415 12.648.898.792 1.698 2.356 1.698 4.748 0 3.425-.031 6.19-.031 7.03 0 .686.45 1.484 1.719 1.234C42.844 46.556 50 36.955 50 25.633 50 11.476 38.806 0 24.998 0" fill="#eef"/> -</svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg viewBox="0 0 50 50" xmlns="http://www.w3.org/2000/svg"> + <path d="M24.998 0C11.193 0 0 11.476 0 25.633c0 11.325 7.163 20.932 17.097 24.323 1.25.235 1.707-.557 1.707-1.237 0-.607-.022-2.22-.034-4.358-6.954 1.548-8.421-3.437-8.421-3.437-1.138-2.96-2.777-3.748-2.777-3.748-2.27-1.591.172-1.56.172-1.56 2.51.183 3.83 2.642 3.83 2.642 2.23 3.917 5.851 2.785 7.276 2.13.227-1.656.871-2.786 1.586-3.426-5.55-.647-11.387-2.847-11.387-12.67 0-2.797.974-5.085 2.574-6.877-.258-.649-1.116-3.254.244-6.784 0 0 2.1-.69 6.875 2.628 1.994-.568 4.133-.853 6.259-.862 2.122.009 4.262.294 6.258.862 4.773-3.317 6.868-2.628 6.868-2.628 1.365 3.53.507 6.135.249 6.784 1.602 1.792 2.57 4.08 2.57 6.878 0 9.847-5.845 12.014-11.415 12.648.898.792 1.698 2.356 1.698 4.748 0 3.425-.031 6.19-.031 7.03 0 .686.45 1.484 1.719 1.234C42.844 46.556 50 36.955 50 25.633 50 11.476 38.806 0 24.998 0" fill="#eef"/> +</svg>
diff --git a/assets/icons/favicon.svg b/assets/icons/favicon.svg @@ -1,5 +1,7 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2" clip-rule="evenodd" viewBox="0 0 100 100"> - <circle cx="50" cy="50" r="50" fill="#2d2b55"/> - <path fill="#fff" fill-rule="nonzero" d="M46.6365964 63.20753129h-4.4881496L39.4319352 76.57454H21.1545365L31.9910556 23.4254h24.3009679c7.1160793 0 12.6672117 1.54132506 16.6238699 4.59740061 3.9271309 3.05607555 5.90546 7.36115589 5.90546 12.86209188.45176769 8.83752089-5.45369231 16.99591388-14.6160135 20.1966732l8.8877173 15.25380318-18.8088901.23917113-7.677098-13.36700871h.0295273zm6.8798609-25.96335489h-6.1121511l-2.5688751 12.46347333h7.5294615c2.5098205 0 4.4881496-.63778968 5.8759327-1.8602199 1.3877831-1.24900479 2.066911-2.97635184 2.066911-5.20861572 0-3.58756695-2.2440748-5.39463771-6.791279-5.39463771z"/> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg width="100%" height="100%" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"> + <g transform="matrix(1.73337,0,0,1.73337,-36.6687,-36.6685)"> + <path d="M46.637,63.208L42.148,63.208L39.432,76.575L21.155,76.575L31.991,23.425L56.292,23.425C63.408,23.425 68.959,24.967 72.916,28.023C76.843,31.079 78.821,35.384 78.821,40.885C79.273,49.722 73.368,57.881 64.205,61.082L73.093,76.335L54.284,76.575L46.607,63.208L46.637,63.208ZM53.516,37.244L47.404,37.244L44.835,49.708L52.365,49.708C54.875,49.708 56.853,49.07 58.241,47.847C59.629,46.598 60.308,44.871 60.308,42.639C60.308,39.051 58.064,37.244 53.516,37.244Z" style="fill:rgb(45,43,85);fill-rule:nonzero;"/> + </g> </svg>
diff --git a/assets/logo.svg b/assets/logo.svg @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg xmlns="http://www.w3.org/2000/svg" fill="#eeeeff" viewBox="0 0 100 18"> - <path d="M8.68 13.473H7.16L6.24 18H.05L3.72 0h8.23c2.41 0 4.29.522 5.63 1.557 1.33 1.035 2 2.493 2 4.356.153 2.9925-1.847 5.7555-4.95 6.84l3.01 5.166L29.28 0h6.08l4.35 18h-6.16l-.6-3.141h-7L24.12 18H11.27l-2.6-4.527h.01zM50.93 18H44.3L42.1 0h6.1l1.19 10.26L54.84 0h5.69l1.04 10.413L67.11 0h6.08l-9.54 18H57l-1.04-9.486L50.93 18zm23.57 0c-.8 0-1.58-.09-2.34-.27-.663-.1368-1.296-.3744-1.87-.702l1.05-2.34c.959.5391 2.06.8406 3.19.873.45 0 .77-.045.97-.126.19-.09.29-.216.29-.387 0-.198-.13-.36-.38-.45-.406-.1395-.824-.2484-1.25-.324-.636-.1233-1.261-.2889-1.87-.495-.5-.18-.93-.468-1.3-.873-.39-.468-.585-1.0449-.55-1.629 0-.594.17-1.143.5-1.629.35-.486.86-.873 1.54-1.152.67-.279 1.5-.423 2.46-.423.67 0 1.32.072 1.96.216.64.135 1.2.342 1.7.612l-.99 2.322c-.818-.4392-1.748-.684-2.7-.711-.83 0-1.25.207-1.25.603 0 .18.12.333.37.423.25.09.66.198 1.23.306.74.135 1.36.288 1.87.468.5.18.94.468 1.32.864.37.396.56.936.56 1.62.019 1.2132-.793 2.3202-2.04 2.781-.779.3015-1.622.4464-2.47.423zm22.39-5.22h2.83v4.014c-.57.387-1.23.684-1.99.9-.75.198-1.5.306-2.22.306-.972.0144-1.931-.2034-2.78-.63-.814-.414-1.483-1.0251-1.93-1.764-.475-.7866-.716-1.6704-.7-2.565 0-.963.24-1.818.7-2.574.451-.7425 1.127-1.3545 1.95-1.764.83-.414 1.78-.63 2.83-.63.95 0 1.8.162 2.55.468.75.315 1.37.765 1.87 1.368l-2.09 1.8c-.6-.693-1.33-1.044-2.17-1.044-.72 0-1.29.216-1.71.63-.452.4878-.681 1.1124-.64 1.746 0 .711.21 1.287.63 1.719.42.432.98.648 1.68.648.42 0 .81-.072 1.19-.225V12.78zm-10.67 5.004h-3.2L78.91 8.28h3.51l2.31 5.553L87.1 8.28h3.2l-4.09 9.495.01.009zm-54.14-7.29l-.89-4.608-2.7 4.608h3.6-.01zM11.01 4.68H8.94l-.87 4.221h2.55c.85 0 1.52-.216 1.99-.63.47-.423.7-1.008.7-1.764 0-1.215-.76-1.827-2.3-1.827z"/> -</svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg xmlns="http://www.w3.org/2000/svg" fill="#eeeeff" viewBox="0 0 100 18"> + <path d="M8.68 13.473H7.16L6.24 18H.05L3.72 0h8.23c2.41 0 4.29.522 5.63 1.557 1.33 1.035 2 2.493 2 4.356.153 2.9925-1.847 5.7555-4.95 6.84l3.01 5.166L29.28 0h6.08l4.35 18h-6.16l-.6-3.141h-7L24.12 18H11.27l-2.6-4.527h.01zM50.93 18H44.3L42.1 0h6.1l1.19 10.26L54.84 0h5.69l1.04 10.413L67.11 0h6.08l-9.54 18H57l-1.04-9.486L50.93 18zm23.57 0c-.8 0-1.58-.09-2.34-.27-.663-.1368-1.296-.3744-1.87-.702l1.05-2.34c.959.5391 2.06.8406 3.19.873.45 0 .77-.045.97-.126.19-.09.29-.216.29-.387 0-.198-.13-.36-.38-.45-.406-.1395-.824-.2484-1.25-.324-.636-.1233-1.261-.2889-1.87-.495-.5-.18-.93-.468-1.3-.873-.39-.468-.585-1.0449-.55-1.629 0-.594.17-1.143.5-1.629.35-.486.86-.873 1.54-1.152.67-.279 1.5-.423 2.46-.423.67 0 1.32.072 1.96.216.64.135 1.2.342 1.7.612l-.99 2.322c-.818-.4392-1.748-.684-2.7-.711-.83 0-1.25.207-1.25.603 0 .18.12.333.37.423.25.09.66.198 1.23.306.74.135 1.36.288 1.87.468.5.18.94.468 1.32.864.37.396.56.936.56 1.62.019 1.2132-.793 2.3202-2.04 2.781-.779.3015-1.622.4464-2.47.423zm22.39-5.22h2.83v4.014c-.57.387-1.23.684-1.99.9-.75.198-1.5.306-2.22.306-.972.0144-1.931-.2034-2.78-.63-.814-.414-1.483-1.0251-1.93-1.764-.475-.7866-.716-1.6704-.7-2.565 0-.963.24-1.818.7-2.574.451-.7425 1.127-1.3545 1.95-1.764.83-.414 1.78-.63 2.83-.63.95 0 1.8.162 2.55.468.75.315 1.37.765 1.87 1.368l-2.09 1.8c-.6-.693-1.33-1.044-2.17-1.044-.72 0-1.29.216-1.71.63-.452.4878-.681 1.1124-.64 1.746 0 .711.21 1.287.63 1.719.42.432.98.648 1.68.648.42 0 .81-.072 1.19-.225V12.78zm-10.67 5.004h-3.2L78.91 8.28h3.51l2.31 5.553L87.1 8.28h3.2l-4.09 9.495.01.009zm-54.14-7.29l-.89-4.608-2.7 4.608h3.6-.01zM11.01 4.68H8.94l-.87 4.221h2.55c.85 0 1.52-.216 1.99-.63.47-.423.7-1.008.7-1.764 0-1.215-.76-1.827-2.3-1.827z"/> +</svg>
diff --git a/build/build.py b/build/build.py @@ -1,16 +1,16 @@ -import os - -BUILD_CMD = "elm make \"src/Main.elm\" --optimize --output=build/output/script.js" -COMPRESS_CMD = "minify build/output/script.js --mangle -o script.min.js" -COPYRIGHT = "// Thiago Brevidelli ⓒ 2019. ALL RIGHTS RESERVED" - -print("Compiling source files...") -os.system(BUILD_CMD) - -print("Compressing compiled ouput...") -os.system(COMPRESS_CMD) - -with open("script.min.js", "rw", encoding="utf8") as c_file: - c_file.write(COPYRIGHT + c_file.read()) - -print("\nAll done!") +import os + +BUILD_CMD = "elm make \"src/Main.elm\" --optimize --output=build/output/script.js" +COMPRESS_CMD = "minify build/output/script.js --mangle -o script.min.js" +COPYRIGHT = "// Thiago Brevidelli ⓒ 2019. ALL RIGHTS RESERVED" + +print("Compiling source files...") +os.system(BUILD_CMD) + +print("Compressing compiled ouput...") +os.system(COMPRESS_CMD) + +with open("script.min.js", "w+", encoding="utf8") as c_file: + c_file.write(COPYRIGHT + c_file.read()) + +print("\nAll done!")
diff --git a/elm.json b/elm.json @@ -1,32 +1,32 @@ -{ - "type": "application", - "source-directories": [ - "src" - ], - "elm-version": "0.19.0", - "dependencies": { - "direct": { - "elm/browser": "1.0.1", - "elm/core": "1.0.2", - "elm/file": "1.0.5", - "elm/html": "1.0.0", - "elm/http": "2.0.0", - "elm/json": "1.1.3", - "elm/regex": "1.0.0", - "pablohirafuji/elm-syntax-highlight": "3.1.0" - }, - "indirect": { - "andre-dietrich/parser-combinators": "3.1.1", - "elm/bytes": "1.0.8", - "elm/parser": "1.1.0", - "elm/time": "1.0.0", - "elm/url": "1.0.0", - "elm/virtual-dom": "1.0.2", - "pilatch/flip": "1.0.0" - } - }, - "test-dependencies": { - "direct": {}, - "indirect": {} - } -} \ No newline at end of file +{ + "type": "application", + "source-directories": [ + "src" + ], + "elm-version": "0.19.0", + "dependencies": { + "direct": { + "elm/browser": "1.0.1", + "elm/core": "1.0.2", + "elm/file": "1.0.5", + "elm/html": "1.0.0", + "elm/http": "2.0.0", + "elm/json": "1.1.3", + "elm/regex": "1.0.0", + "pablohirafuji/elm-syntax-highlight": "3.1.1" + }, + "indirect": { + "andre-dietrich/parser-combinators": "3.1.1", + "elm/bytes": "1.0.8", + "elm/parser": "1.1.0", + "elm/time": "1.0.0", + "elm/url": "1.0.0", + "elm/virtual-dom": "1.0.2", + "pilatch/flip": "1.0.0" + } + }, + "test-dependencies": { + "direct": {}, + "indirect": {} + } +}
diff --git a/index.html /dev/null @@ -1,32 +0,0 @@ -<!DOCTYPE HTML> -<html> -<!-- Thiago Brevidelli ⓒ 2019. ALL RIGHTS RESERVED --> -<head> - <meta charset="UTF-8"> - <meta name="viewport" content="width=device-width, initial-scale=1"> - <link rel="stylesheet" href="styles.css"> - - <link rel="apple-touch-icon" sizes="180x180" href="assets/icons/apple-touch-icon.png"> - <link rel="mask-icon" href="assets/icons/safari-pinned-tab.svg" color="#b362ff"> - <link rel="icon" type="image/svg+xml" sizes="16x16 32x32 48x48" href="assets/icons/favicon.svg"> - - <link rel="manifest" href="manifest.json"> - <meta name="description" content="A simple SVG markup editor for the web."> - <script src="script.min.js"></script> -</head> - -<body> - <script>Elm.Main.init()</script> - <script> - function load() { - navigator.serviceWorker - .register("/RawSvg/service-worker.js") - .then(console.log) - .catch(() => console.error("Failed to register service worker.")); - } - - if ("serviceWorker" in navigator) - window.addEventListener("load", load); - </script> -</body> -</html>- \ No newline at end of file
diff --git /dev/null b/index.html @@ -0,0 +1 @@ +./build/output/index.html+ \ No newline at end of file
diff --git a/manifest.json b/manifest.json @@ -1,20 +1,20 @@ -{ - "name": "RawSvg", - "short_name": "RawSvg", - "display": "standalone", - "icons": [ - { - "src": "assets/icons/android-chrome-192x192.png", - "sizes": "192x192", - "type": "image/png" - }, - { - "src": "assets/icons/android-chrome-512x512.png", - "sizes": "512x512", - "type": "image/png" - } - ], - "start_url": "index.html", - "background_color": "#eeeeff", - "theme_color": "#B362FF" +{ + "name": "RawSvg", + "short_name": "RawSvg", + "display": "standalone", + "icons": [ + { + "src": "assets/icons/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "assets/icons/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "start_url": "index.html", + "background_color": "#eeeeff", + "theme_color": "#B362FF" } \ No newline at end of file
diff --git a/script.min.js /dev/null @@ -1,2 +0,0 @@ -/* Thiago Brevidelli ? 2019. ALL RIGHTS RESERVED */ -(function(e){'use strict';var ba=Math.floor,na=String.fromCharCode;function a(e,a,t){return t.a=e,t.f=a,t}function t(e){return a(2,e,function(t){return function(a){return e(t,a)}})}function b(e){return a(3,e,function(t){return function(a){return function(b){return e(t,a,b)}}})}function n(e){return a(4,e,function(t){return function(a){return function(b){return function(n){return e(t,a,b,n)}}}})}function d(t){return a(5,t,function(n){return function(a){return function(b){return function(i){return function(d){return t(n,a,b,i,d)}}}}})}function i(t){return a(6,t,function(n){return function(a){return function(b){return function(i){return function(d){return function(e){return t(n,a,b,i,d,e)}}}}}})}function s(t){return a(7,t,function(n){return function(a){return function(b){return function(i){return function(d){return function(e){return function(s){return t(n,a,b,i,d,e,s)}}}}}}})}function l(t){return a(8,t,function(n){return function(a){return function(b){return function(i){return function(d){return function(e){return function(s){return function(l){return t(n,a,b,i,d,e,s,l)}}}}}}}})}function o(t){return a(9,t,function(n){return function(a){return function(b){return function(s){return function(d){return function(e){return function(l){return function(o){return function(r){return t(n,a,b,s,d,e,l,o,r)}}}}}}}}})}function h(e,t,a){return 2===e.a?e.f(t,a):e(t)(a)}function $(e,t,a,b){return 3===e.a?e.f(t,a,b):e(t)(a)(b)}function r(e,t,a,b,n){return 4===e.a?e.f(t,a,b,n):e(t)(a)(b)(n)}function g(t,n,a,b,i,d){return 5===t.a?t.f(n,a,b,i,d):t(n)(a)(b)(i)(d)}function m(t,n,a,b,i,d,e){return 6===t.a?t.f(n,a,b,i,d,e):t(n)(a)(b)(i)(d)(e)}function u(t,n,a,b,i,d,e,s){return 7===t.a?t.f(n,a,b,i,d,e,s):t(n)(a)(b)(i)(d)(e)(s)}function p(t,n,a,b,i,d,e,s,l){return 8===t.a?t.f(n,a,b,i,d,e,s,l):t(n)(a)(b)(i)(d)(e)(s)(l)}function c(e,a){return{$:1,a:e,b:a}}function v(e){for(var a=ka,t=e.length;t--;)a=c(e[t],a);return a}function y(e){for(var a=[];e.b;e=e.b)a.push(e.a);return a}function k(){return"<internals>"}function A(e){throw new Error("https://github.com/elm/core/blob/1.0.0/hints/"+e+".md")}function E(e,a){for(var t,b=[],n=j(e,a,0,b);n&&(t=b.pop());n=j(t.a,t.b,0,b));return n}function j(e,a,t,b){if(100<t)return b.push(L(e,a)),!0;if(e===a)return!0;if("object"!=typeof e||null===e||null===a)return"function"==typeof e&&A(5),!1;for(var n in 0>e.$&&(e=An(e),a=An(a)),e)if(!j(e[n],a[n],t+1,b))return!1;return!0}function C(e,a,t){if("object"!=typeof e)return e===a?0:e<a?-1:1;if("undefined"==typeof e.$)return(t=C(e.a,a.a))?t:(t=C(e.b,a.b))?t:C(e.c,a.c);for(;e.b&&a.b&&!(t=C(e.a,a.a));e=e.b,a=a.b);return t||(e.b?1:a.b?-1:0)}function L(e,a){return{a:e,b:a}}function T(e,a,t){return{a:e,b:a,c:t}}function N(e){return e}function w(e,a){var t={};for(var b in e)t[b]=e[b];for(var b in a)t[b]=a[b];return t}function O(e,a){if("string"==typeof e)return e+a;if(!e.b)return a;var t=c(e.a,a);e=e.b;for(var b=t;e.b;e=e.b)b=b.b=c(e.a,a);return t}function _(e){return{$:2,b:e}}function I(e,a){return{$:9,f:e,g:a}}function S(e,a){switch(e.$){case 2:return e.b(a);case 5:return null===a?wn(e.c):K("null",a);case 3:return B(a)?R(e.b,a,v):K("a LIST",a);case 4:return B(a)?R(e.b,a,D):K("an ARRAY",a);case 6:var t=e.d;if("object"!=typeof a||null===a||!(t in a))return K("an OBJECT with a field named `"+t+"`",a);var b=S(e.b,a[t]);return Yn(b)?b:yd(h(xd,t,b.a));case 7:var n=e.e;if(!B(a))return K("an ARRAY",a);if(n>=a.length)return K("a LONGER array. Need index "+n+" but only see "+a.length+" entries",a);var b=S(e.b,a[n]);return Yn(b)?b:yd(h(Ad,n,b.a));case 8:if("object"!=typeof a||null===a||B(a))return K("an OBJECT",a);var d=ka;for(var s in a)if(a.hasOwnProperty(s)){var b=S(e.b,a[s]);if(!Yn(b))return yd(h(xd,s,b.a));d=c(L(s,b.a),d)}return wn(od(d));case 9:for(var b,l=e.f,o=e.g,r=0;r<o.length;r++){if(b=S(o[r],a),!Yn(b))return b;l=l(b.a)}return wn(l);case 10:var b=S(e.b,a);return Yn(b)?S(e.h(b.a),a):b;case 11:for(var b,$=ka,g=e.g;g.b;g=g.b){if(b=S(g.a,a),Yn(b))return b;$=c(b.a,$)}return yd(Ed(od($)));case 1:return yd(h(kd,e.a,q(a)));case 0:return wn(e.a);}}function R(e,a,t){for(var b,n=a.length,d=Array(n),s=0;s<n;s++){if(b=S(e,a[s]),!Yn(b))return yd(h(Ad,s,b.a));d[s]=b.a}return wn(t(d))}function B(e){return Array.isArray(e)||"undefined"!=typeof FileList&&e instanceof FileList}function D(e){return h(vd,e.length,function(a){return e[a]})}function K(e,a){return yd(h(kd,"Expecting "+e,q(a)))}function J(e,a){if(e===a)return!0;if(e.$!==a.$)return!1;switch(e.$){case 0:case 1:return e.a===a.a;case 2:return e.b===a.b;case 5:return e.c===a.c;case 3:case 4:case 8:return J(e.b,a.b);case 6:return e.d===a.d&&J(e.b,a.b);case 7:return e.e===a.e&&J(e.b,a.b);case 9:return e.f===a.f&&G(e.g,a.g);case 10:return e.h===a.h&&J(e.b,a.b);case 11:return G(e.g,a.g);}}function G(e,a){var t=e.length;if(t!==a.length)return!1;for(var b=0;b<t;b++)if(!J(e[b],a[b]))return!1;return!0}function q(e){return e}function F(e){return e}function M(e){return{$:0,a:e}}function X(e){return{$:1,a:e}}function z(e){return{$:2,b:e,c:null}}function H(e){return{$:5,b:e}}function P(e){var a={$:0,e:ab++,f:e,g:null,h:[]};return U(a),a}function W(e){return z(function(a){a(M(P(e)))})}function Z(e,a){e.h.push(a),U(e)}function U(e){if(nb.push(e),!bb){for(bb=!0;e=nb.shift();)Y(e);bb=!1}}function Y(e){for(;e.f;){var a=e.f.$;if(0===a||1===a){for(;e.g&&e.g.$!==a;)e.g=e.g.i;if(!e.g)return;e.f=e.g.b(e.f.a),e.g=e.g.i}else{if(2===a)return void(e.f.c=e.f.b(function(a){e.f=a,U(e)}));if(5===a){if(0===e.h.length)return;e.f=e.f.b(e.h.shift())}else e.g={$:3===a?0:1,b:e.f.b,i:e.g},e.f=e.f.d}}}function Q(e,a,t,b,n,d){function i(e,a){s=h(b,e,o),r(o=s.a,a),ne(l,s.b,n(o))}var s=h(Zt,e,q(a?a.flags:void 0));Yn(s)||A(2);var l={};s=t(s.a);var o=s.a,r=d(i,o),c=V(l,i);return ne(l,s.b,n(o)),c?{ports:c}:{}}function V(e,a){var t;for(var b in ib){var n=ib[b];n.a&&(t=t||{},t[b]=n.a(b,a)),e[b]=ae(n,a)}return t}function ee(e,a,t,b,n){return{b:e,c:a,d:t,e:b,f:n}}function ae(e,a){function t(e){return h(Vt,t,H(function(a){var t=a.a;return 0===a.$?$(d,b,t,e):i&&s?r(n,b,t.i,t.j,e):$(n,b,i?t.i:t.j,e)}))}var b={g:a,h:void 0},n=e.c,d=e.d,i=e.e,s=e.f;return b.h=P(h(Vt,t,e.b))}function te(e){return function(a){return{$:1,k:e,l:a}}}function be(e){return{$:2,m:e}}function ne(e,a,t){var b={};for(var n in de(!0,a,b,null),de(!1,t,b,null),e)Z(e[n],{$:"fx",a:b[n]||{i:ka,j:ka}})}function de(e,a,t,b){switch(a.$){case 1:var n=a.k,d=ie(e,n,b,a.l);return void(t[n]=se(e,d,t[n]));case 2:for(var i=a.m;i.b;i=i.b)de(e,i.a,t,b);return;case 3:return void de(e,a.o,t,{p:a.n,q:b});}}function ie(e,a,t,b){var n=e?ib[a].e:ib[a].f;return h(n,function(e){for(var a=t;a;a=a.q)e=a.p(e);return e},b)}function se(e,a,t){return t=t||{i:ka,j:ka},e?t.i=c(a,t.i):t.j=c(a,t.j),t}function le(e,a){for(var t in a)t in e?"init"==t?A(6):le(e[t],a[t]):e[t]=a[t]}function oe(e,a){for(var t=a.i;t.b;t=t.b)e.setRequestHeader(t.a.a,t.a.b);e.timeout=a.n.a||0,e.responseType=a.bf.d,e.withCredentials=a.B}function re(e,a){return h(200<=a.status&&300>a.status?Wd:Hd,he(a),e(a.response))}function he(e){return{bN:e.responseURL,aY:e.status,bA:e.statusText,i:ce(e.getAllResponseHeaders())}}function ce(e){if(!e)return Sn;for(var a=Sn,t=e.split("\r\n"),b=t.length;b--;){var n=t[b],d=n.indexOf(": ");if(0<d){var s=n.substring(0,d),l=n.substring(d+2);a=$(Zn,s,function(e){return Cn(Un(e)?l+", "+e.a:l)},a)}}return a}function $e(e,a,t){a.upload.addEventListener("progress",function(b){a.c||P(h(Xd,e,L(t,Yd({bz:b.loaded,ab:b.total}))))}),a.addEventListener("progress",function(b){a.c||P(h(Xd,e,L(t,Ud({bv:b.loaded,ab:b.lengthComputable?Cn(b.total):Ln}))))})}function ge(){return ia||(ia=document.createElement("a"))}function fe(e){if("function"==typeof MouseEvent)e.dispatchEvent(new MouseEvent("click"));else{var a=document.createEvent("MouseEvents");a.initMouseEvent("click",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),document.body.appendChild(e),e.dispatchEvent(a),document.body.removeChild(e)}}function me(e){return z(function(a){sa=document.createElement("input"),sa.type="file",sa.accept=h(Bd,",",e),sa.addEventListener("change",function(e){a(M(e.target.files[0]))}),fe(sa)})}function ue(e,a){e.appendChild(a)}function pe(e){return{$:0,a:e}}function ve(e,a){return{$:5,l:e,m:a,k:void 0}}function ye(e){return /^(on|formAction$)/i.test(e)?"data-"+e:e}function ke(e){return /^javascript:/i.test(e.replace(/\s/g,""))?"":e}function xe(e){return /^\s*(javascript:|data:text\/html)/i.test(e)?"":e}function Ae(e,a){var t=ns(a);return{$:a.$,a:t?$(ts,3>t?Gb:qb,bs(e),a.a):h(as,e,a.a)}}function Ee(e){for(var a={};e.b;e=e.b){var t=e.a,b=t.$,n=t.n,d=t.o;if("a2"===b){"className"===n?je(a,n,F(d)):a[n]=F(d);continue}var i=a[b]||(a[b]={});"a3"===b&&"class"===n?je(i,n,d):i[n]=d}return a}function je(e,a,t){var b=e[a];e[a]=b?b+" "+t:t}function Ce(e,a){var t=e.$;if(5===t)return Ce(e.k||(e.k=e.m()),a);if(0===t)return vb.createTextNode(e.a);if(4===t){for(var b=e.k,n=e.j;4===b.$;)"object"==typeof n?n.push(b.j):n=[n,b.j],b=b.k;var d={j:n,p:a},s=Ce(b,d);return s.elm_event_node_ref=d,s}if(3===t){var s=e.h(e.g);return Le(s,a,e.d),s}var s=e.f?vb.createElementNS(e.f,e.c):vb.createElement(e.c);la&&"a"==e.c&&s.addEventListener("click",la(s)),Le(s,a,e.d);for(var l=e.e,o=0;o<l.length;o++)ue(s,Ce(1===t?l[o]:l[o].b,a));return s}function Le(e,a,t){for(var b in t){var n=t[b];"a1"==b?Te(e,n):"a0"==b?Oe(e,a,n):"a3"==b?Ne(e,n):"a4"==b?we(e,n):("value"!=b&&"checked"!=b||e[b]!==n)&&(e[b]=n)}}function Te(e,a){var t=e.style;for(var b in a)t[b]=a[b]}function Ne(e,a){for(var t in a){var b=a[t];"undefined"==typeof b?e.removeAttribute(t):e.setAttribute(t,b)}}function we(e,a){for(var t in a){var b=a[t],n=b.f,d=b.o;"undefined"==typeof d?e.removeAttributeNS(n,t):e.setAttributeNS(n,t,d)}}function Oe(e,a,t){var b=e.elmFs||(e.elmFs={});for(var n in t){var d=t[n],i=b[n];if(!d){e.removeEventListener(n,i),b[n]=void 0;continue}if(i){var s=i.q;if(s.$===d.$){i.q=d;continue}e.removeEventListener(n,i)}i=_e(a,d),e.addEventListener(n,i,oa&&{passive:2>ns(d)}),b[n]=i}}function _e(e,a){function t(a){var b=t.q,n=S(b.a,a);if(Yn(n)){for(var d,s,l=ns(b),o=n.a,r=l?3>l?o.a:o.t:o,h=1==l?o.b:3==l&&o.ad,c=(h&&a.stopPropagation(),(2==l?o.b:3==l&&o.aa)&&a.preventDefault(),e);d=c.j;){if("function"==typeof d)r=d(r);else for(var s=d.length;s--;)r=d[s](r);c=c.p}c(r,h)}}return t.q=a,t}function Ie(e,a){return e.$==a.$&&J(e.a,a.a)}function Se(e,a){var t=[];return Be(e,a,t,0),t}function Re(e,a,t,b){var n={$:a,r:t,s:b,t:void 0,u:void 0};return e.push(n),n}function Be(e,a,t,b){if(e!==a){var n=e.$,d=a.$;if(n!==d)if(1===n&&2===d)a=Ve(a),d=1;else return void Re(t,0,b,a);switch(d){case 5:for(var s=e.l,l=a.l,o=s.length,r=o===l.length;r&&o--;)r=s[o]===l[o];if(r)return void(a.k=e.k);a.k=a.m();var h=[];return Be(e.k,a.k,h,0),void(0<h.length&&Re(t,1,b,h));case 4:for(var c=e.j,$=a.j,g=!1,f=e.k;4===f.$;)g=!0,"object"==typeof c?c.push(f.j):c=[c,f.j],f=f.k;for(var m=a.k;4===m.$;)g=!0,"object"==typeof $?$.push(m.j):$=[$,m.j],m=m.k;return g&&c.length!==$.length?void Re(t,0,b,a):((g?!De(c,$):c!==$)&&Re(t,2,b,$),void Be(f,m,t,b+1));case 0:return void(e.a!==a.a&&Re(t,3,b,a.a));case 1:return void Ke(e,a,t,b,Ge);case 2:return void Ke(e,a,t,b,qe);case 3:if(e.h!==a.h)return void Re(t,0,b,a);var u=Je(e.d,a.d);u&&Re(t,4,b,u);var p=a.i(e.g,a.g);return void(p&&Re(t,5,b,p));}}}function De(e,a){for(var t=0;t<e.length;t++)if(e[t]!==a[t])return!1;return!0}function Ke(e,a,t,b,n){if(e.c!==a.c||e.f!==a.f)return void Re(t,0,b,a);var d=Je(e.d,a.d);d&&Re(t,4,b,d),n(e,a,t,b)}function Je(e,a,t){var b;for(var n in e){if("a1"==n||"a0"==n||"a3"==n||"a4"==n){var d=Je(e[n],a[n]||{},n);d&&(b=b||{},b[n]=d);continue}if(!(n in a)){b=b||{},b[n]=t?"a1"===t?"":"a0"===t||"a3"===t?void 0:{f:e[n].f,o:void 0}:"string"==typeof e[n]?"":null;continue}var i=e[n],s=a[n];i===s&&"value"!=n&&"checked"!=n||"a0"===t&&Ie(i,s)||(b=b||{},b[n]=s)}for(var l in a)l in e||(b=b||{},b[l]=a[l]);return b}function Ge(e,a,t,b){var n=e.e,d=a.e,s=n.length,l=d.length;s>l?Re(t,6,b,{v:l,i:s-l}):s<l&&Re(t,7,b,{v:s,e:d});for(var o,r=s<l?s:l,h=0;h<r;h++)o=n[h],Be(o,d[h],t,++b),b+=o.b||0}function qe(e,a,t,b){for(var n=[],d={},i=[],s=e.e,l=a.e,o=s.length,r=l.length,h=0,c=0,$=b;h<o&&c<r;){var g=s[h],f=l[c],m=g.a,u=f.a,p=g.b,v=f.b,k=void 0,A=void 0;if(m===u){$++,Be(p,v,n,$),$+=p.b||0,h++,c++;continue}var E=s[h+1],j=l[c+1];if(E){var C=E.a,L=E.b;A=u===C}if(j){var T=j.a,N=j.b;k=m===T}if(k&&A){$++,Be(p,N,n,$),Fe(d,n,m,v,c,i),$+=p.b||0,$++,Me(d,n,m,L,$),$+=L.b||0,h+=2,c+=2;continue}if(k){$++,Fe(d,n,u,v,c,i),Be(p,N,n,$),$+=p.b||0,h+=1,c+=2;continue}if(A){$++,Me(d,n,m,p,$),$+=p.b||0,$++,Be(L,v,n,$),$+=L.b||0,h+=2,c+=1;continue}if(E&&C===T){$++,Me(d,n,m,p,$),Fe(d,n,u,v,c,i),$+=p.b||0,$++,Be(L,N,n,$),$+=L.b||0,h+=2,c+=2;continue}break}for(;h<o;){$++;var g=s[h],p=g.b;Me(d,n,g.a,p,$),$+=p.b||0,h++}for(;c<r;){var w=w||[],f=l[c];Fe(d,n,f.a,f.b,void 0,w),c++}(0<n.length||0<i.length||w)&&Re(t,8,b,{w:n,x:i,y:w})}function Fe(e,a,t,b,n,d){var i=e[t];if(!i)return i={c:0,z:b,r:n,s:void 0},d.push({r:n,A:i}),void(e[t]=i);if(1===i.c){d.push({r:n,A:i}),i.c=2;var s=[];return Be(i.z,b,s,i.r),i.r=n,void(i.s.s={w:s,A:i})}Fe(e,a,t+"_elmW6BL",b,n,d)}function Me(e,a,t,b,n){var d=e[t];if(!d){var i=Re(a,9,n,void 0);return void(e[t]={c:1,z:b,r:n,s:i})}if(0===d.c){d.c=2;var s=[];return Be(b,d.z,s,n),void Re(a,9,n,{w:s,A:d})}Me(e,a,t+"_elmW6BL",b,n)}function Xe(e,a,t,b){ze(e,a,t,0,0,a.b,b)}function ze(e,a,t,b,n,d,s){for(var l,o=t[b],r=o.r;r===n;){if(l=o.$,1===l)Xe(e,a.k,o.s,s);else if(8===l){o.t=e,o.u=s;var h=o.s.w;0<h.length&&ze(e,a,h,0,n,d,s)}else if(9===l){o.t=e,o.u=s;var c=o.s;if(c){c.A.s=e;var h=c.w;0<h.length&&ze(e,a,h,0,n,d,s)}}else o.t=e,o.u=s;if(b++,!(o=t[b])||(r=o.r)>d)return b}var $=a.$;if(4===$){for(var g=a.k;4===g.$;)g=g.k;return ze(e,g,t,b,n+1,d,e.elm_event_node_ref)}for(var f=a.e,m=e.childNodes,u=0;u<f.length;u++){n++;var p=1===$?f[u]:f[u].b,v=n+(p.b||0);if(n<=r&&r<=v&&(b=ze(m[u],p,t,b,n,v,s),!(o=t[b])||(r=o.r)>d))return b;n=v}return b}function He(e,a,t,b){return 0===t.length?e:(Xe(e,a,t,b),Pe(e,t))}function Pe(e,a){for(var t=0;t<a.length;t++){var b=a[t],n=b.t,d=We(n,b);n===e&&(e=d)}return e}function We(e,a){switch(a.$){case 0:return Ze(e,a.s,a.u);case 4:return Le(e,a.u,a.s),e;case 3:return e.replaceData(0,e.length,a.s),e;case 1:return Pe(e,a.s);case 2:return e.elm_event_node_ref?e.elm_event_node_ref.j=a.s:e.elm_event_node_ref={j:a.s,p:a.u},e;case 6:for(var t=a.s,b=0;b<t.i;b++)e.removeChild(e.childNodes[t.v]);return e;case 7:for(var t=a.s,n=t.e,b=t.v,d=e.childNodes[b];b<n.length;b++)e.insertBefore(Ce(n[b],a.u),d);return e;case 9:var t=a.s;if(!t)return e.parentNode.removeChild(e),e;var s=t.A;return"undefined"!=typeof s.r&&e.parentNode.removeChild(e),s.s=Pe(e,t.w),e;case 8:return Ue(e,a);case 5:return a.s(e);default:A(10);}}function Ze(e,a,t){var b=e.parentNode,n=Ce(a,t);return n.elm_event_node_ref||(n.elm_event_node_ref=e.elm_event_node_ref),b&&n!==e&&b.replaceChild(n,e),n}function Ue(e,a){var t=a.s,b=Ye(t.y,a);e=Pe(e,t.w);for(var n=t.x,d=0;d<n.length;d++){var s=n[d],l=s.A,o=2===l.c?l.s:Ce(l.z,a.u);e.insertBefore(o,e.childNodes[s.r])}return b&&ue(e,b),e}function Ye(e,a){if(e){for(var t=vb.createDocumentFragment(),b=0;b<e.length;b++){var n=e[b],d=n.A;ue(t,2===d.c?d.s:Ce(d.z,a.u))}return t}}function Qe(e){if(3===e.nodeType)return pe(e.textContent);if(1!==e.nodeType)return pe("");for(var a=ka,t=e.attributes,b=t.length;b--;){var n=t[b],d=n.name,s=n.value;a=c(h(Db,d,s),a)}for(var l=e.tagName.toLowerCase(),o=ka,r=e.childNodes,b=r.length;b--;)o=c(Qe(r[b]),o);return $(xb,l,a,o)}function Ve(e){for(var a=e.e,t=a.length,b=Array(t),n=0;n<t;n++)b[n]=a[n].b;return{$:1,c:e.c,d:e.d,e:b,f:e.f,b:e.b}}function ea(e,a){function t(){b=1===b?0:(en(t),a(e),1)}a(e);var b=0;return function(n,d){e=n,d?(a(e),2==b&&(b=1)):(0==b&&en(t),b=2)}}function aa(e,a){return z(function(t){en(function(){var b=document.getElementById(e);t(b?M(a(b)):X(rr(e)))})})}function ta(e){return z(function(a){en(function(){a(M(e()))})})}var da,ia,sa,la,oa,ra=b(function(e,a,t){for(var b=Array(e),n=0;n<e;n++)b[n]=t(a+n);return b}),ha=t(function(e,a){for(var t=Array(e),b=0;b<e&&a.b;b++)t[b]=a.a,a=a.b;return t.length=b,L(t,a)}),ca=t(function(e,a){return a[e]}),$a=b(function(e,a,t){for(var b=t.length,n=Array(b),d=0;d<b;d++)n[d]=t[d];return n[e]=a,n}),ga=t(function(e,a){for(var t=a.length,b=Array(t+1),n=0;n<t;n++)b[n]=a[n];return b[t]=e,b}),fa=b(function(e,a,t){for(var b=t.length,n=0;n<b;n++)a=h(e,t[n],a);return a}),ma=b(function(e,a,t){for(var b=t.length-1;0<=b;b--)a=h(e,t[b],a);return a}),ua=t(function(e,a){for(var t=a.length,b=Array(t),n=0;n<t;n++)b[n]=e(a[n]);return b}),pa=b(function(e,a,t){for(var b=t.length,n=Array(b),d=0;d<b;d++)n[d]=h(e,a+d,t[d]);return n}),va=b(function(e,a,t){return t.slice(e,a)}),ya=b(function(e,a,t){var b=a.length,n=e-b;n>t.length&&(n=t.length);for(var d=b+n,s=Array(d),l=0;l<b;l++)s[l]=a[l];for(var l=0;l<n;l++)s[l+b]=t[l];return s}),ka={$:0},xa=t(c),Aa=b(function(e,a,t){for(var b=[];a.b&&t.b;a=a.b,t=t.b)b.push(h(e,a.a,t.a));return v(b)}),Ea=n(function(e,a,t,b){for(var n=[];a.b&&t.b&&b.b;a=a.b,t=t.b,b=b.b)n.push($(e,a.a,t.a,b.a));return v(n)}),ja=d(function(e,a,t,b,n){for(var d=[];a.b&&t.b&&b.b&&n.b;a=a.b,t=t.b,b=b.b,n=n.b)d.push(r(e,a.a,t.a,b.a,n.a));return v(d)}),Ca=i(function(e,a,t,b,n,d){for(var i=[];a.b&&t.b&&b.b&&n.b&&d.b;a=a.b,t=t.b,b=b.b,n=n.b,d=d.b)i.push(g(e,a.a,t.a,b.a,n.a,d.a));return v(i)}),La=t(function(e,a){return v(y(a).sort(function(t,a){return C(e(t),e(a))}))}),Ta=t(function(e,a){return v(y(a).sort(function(t,a){var b=h(e,t,a);return b===un?0:b===pn?-1:1}))}),Na=t(function(e,a){return a}),wa=t(function(e,a){return console.log(e+": "+k(a)),a}),Oa=t(E),_a=t(function(e,a){return!E(e,a)}),Ia=t(function(e,a){return 0>C(e,a)}),Sa=t(function(e,a){return 1>C(e,a)}),Ra=t(function(e,a){return 0<C(e,a)}),Ba=t(function(e,a){return 0<=C(e,a)}),Da=t(function(e,a){var t=C(e,a);return 0>t?pn:t?kn:un}),Ka=0,Ja=t(O),Ga=/.^/,qa=t(function(e,a){var t="g";e.aD&&(t+="m"),e.ag&&(t+="i");try{return Cn(new RegExp(a,t))}catch(e){return Ln}}),Fa=t(function(e,a){return null!==a.match(e)}),Ma=b(function(e,a,t){for(var b,n=[],d=0,s=a.lastIndex,l=-1;d++<e&&(b=a.exec(t))&&l!=a.lastIndex;){for(var o,h=b.length-1,c=Array(h);0<h;)o=b[h],c[--h]=o?Cn(o):Ln;n.push(r(Tn,b[0],b.index,d,v(c))),l=a.lastIndex}return a.lastIndex=s,v(n)}),Xa=n(function(e,a,t,b){function n(a){if(d++>=e)return a;for(var b=arguments.length-3,n=Array(b);0<b;){var s=arguments[b];n[--b]=s?Cn(s):Ln}return t(r(Tn,a,arguments[arguments.length-2],d,v(n)))}var d=0;return b.replace(a,n)}),za=b(function(e,a,t){for(var b,d=t,i=[],s=a.lastIndex,l=a.lastIndex;e--&&(b=a.exec(d),!!b);)i.push(d.slice(s,b.index)),s=a.lastIndex;return i.push(d.slice(s)),a.lastIndex=l,v(i)}),Ha=t(function(e,a){return e+a}),Pa=t(function(e,a){return e-a}),Wa=t(function(e,a){return e*a}),Za=t(function(e,a){return e/a}),Ua=t(function(e,a){return 0|e/a}),Ya=t(Math.pow),Qa=t(function(e,t){return t%e}),Va=t(function(e,a){var t=a%e;return 0===e?A(11):0<t&&0>e||0>t&&0<e?t+e:t}),et=Math.PI,at=Math.E,tt=Math.cos,bt=Math.sin,nt=Math.tan,dt=Math.acos,it=Math.asin,st=Math.atan,lt=t(Math.atan2),ot=Math.ceil,rt=Math.round,ht=Math.sqrt,ct=Math.log,$t=isNaN,gt=t(function(e,a){return e&&a}),ft=t(function(e,a){return e||a}),mt=t(function(e,a){return e!==a}),ut=t(function(e,a){return e+a}),pt=t(function(e,a){return e+a}),vt=t(function(e,a){for(var t=a.length,b=Array(t),n=0;n<t;){var d=a.charCodeAt(n);if(55296<=d&&56319>=d){b[n]=e(N(a[n]+a[n+1])),n+=2;continue}b[n]=e(N(a[n])),n++}return b.join("")}),yt=t(function(e,a){for(var t=[],b=a.length,n=0;n<b;){var d=a[n],s=a.charCodeAt(n);n++,55296<=s&&56319>=s&&(d+=a[n],n++),e(N(d))&&t.push(d)}return t.join("")}),kt=b(function(e,a,t){for(var b=t.length,n=0;n<b;){var d=t[n],s=t.charCodeAt(n);n++,55296<=s&&56319>=s&&(d+=t[n],n++),a=h(e,N(d),a)}return a}),xt=b(function(e,a,t){for(var b=t.length;b--;){var n=t[b],d=t.charCodeAt(b);56320<=d&&57343>=d&&(b--,n=t[b]+n),a=h(e,N(n),a)}return a}),At=t(function(e,a){return a.split(e)}),Et=t(function(e,a){return a.join(e)}),jt=b(function(e,a,t){return t.slice(e,a)}),Ct=t(function(e,a){for(var t=a.length;t--;){var b=a[t],n=a.charCodeAt(t);if(56320<=n&&57343>=n&&(t--,b=a[t]+b),e(N(b)))return!0}return!1}),Lt=t(function(e,a){for(var t=a.length;t--;){var b=a[t],n=a.charCodeAt(t);if(56320<=n&&57343>=n&&(t--,b=a[t]+b),!e(N(b)))return!1}return!0}),Tt=t(function(e,a){return-1<a.indexOf(e)}),Nt=t(function(e,a){return 0===a.indexOf(e)}),wt=t(function(e,a){return a.length>=e.length&&a.lastIndexOf(e)===a.length-e.length}),Ot=t(function(e,a){var t=e.length;if(1>t)return ka;for(var b=0,n=[];-1<(b=a.indexOf(e,b));)n.push(b),b+=t;return v(n)}),_t=_(function(e){return"number"==typeof e?-2147483647<e&&2147483647>e&&(0|e)===e?wn(e):isFinite(e)&&!(e%1)?wn(e):K("an INT",e):K("an INT",e)}),It=_(function(e){return"boolean"==typeof e?wn(e):K("a BOOL",e)}),St=_(function(e){return"number"==typeof e?wn(e):K("a FLOAT",e)}),Rt=_(function(e){return wn(q(e))}),Bt=_(function(e){return"string"==typeof e?wn(e):e instanceof String?wn(e+""):K("a STRING",e)}),Dt=t(function(e,a){return{$:6,d:e,b:a}}),Kt=t(function(e,a){return{$:7,e:e,b:a}}),Jt=t(function(e,a){return{$:10,b:a,h:e}}),Gt=t(function(e,a){return I(e,[a])}),qt=b(function(e,a,t){return I(e,[a,t])}),Ft=n(function(e,a,t,b){return I(e,[a,t,b])}),Mt=d(function(e,a,t,b,n){return I(e,[a,t,b,n])}),Xt=i(function(e,a,t,b,n,d){return I(e,[a,t,b,n,d])}),zt=s(function(e,a,t,b,n,d,i){return I(e,[a,t,b,n,d,i])}),Ht=l(function(e,a,t,b,n,d,i,s){return I(e,[a,t,b,n,d,i,s])}),Pt=o(function(e,a,t,b,n,d,i,s,l){return I(e,[a,t,b,n,d,i,s,l])}),Wt=t(function(e,a){try{var t=JSON.parse(a);return S(e,t)}catch(t){return yd(h(kd,"This is not valid JSON! "+t.message,q(a)))}}),Zt=t(function(e,a){return S(e,F(a))}),Ut=t(function(e,a){return JSON.stringify(F(a),null,e)+""}),Yt=b(function(e,a,t){return t[e]=F(a),t}),Qt=q(null),Vt=t(function(e,a){return{$:3,b:e,d:a}}),eb=t(function(e,a){return{$:4,b:e,d:a}}),ab=0,tb=t(function(e,a){return z(function(t){Z(e,a),t(M(Ka))})}),bb=!1,nb=[],db=n(function(e,a,t,b){return Q(a,b,e.bn,e.bL,e.bI,function(){return function(){}})}),ib={},sb=t(function(e,a){return z(function(t){e.g(a),t(M(Ka))})}),lb=t(function(e,a){return h(tb,e.h,{$:0,a:a})}),ob=t(function(e,a){return{$:3,n:e,o:a}}),rb=t(function(e,a){return a}),hb=t(function(e,a){return function(t){return e(a(t))}}),cb=b(function(e,a,t){return z(function(b){function n(e){b(a(t.bf.a(e)))}var d=new XMLHttpRequest;d.addEventListener("error",function(){n(Zd)}),d.addEventListener("timeout",function(){n(Qd)}),d.addEventListener("load",function(){n(re(t.bf.b,d))}),Un(t.o)&&$e(e,d,t.o.a);try{d.open(t.m,t.bN,!0)}catch(a){return n(Pd(t.bN))}return oe(d,t),t.a6.a&&d.setRequestHeader("Content-Type",t.a6.a),d.send(t.a6.b),function(){d.c=!0,d.abort()}})}),$b=b(function(e,a,t){return{$:0,d:e,b:a,a:t}}),gb=t(function(e,a){return{$:0,d:a.d,b:a.b,a:function(t){return e(a.a(t))}}}),fb=t(function(e,a){return{$:0,a:e,b:a}}),mb=t(function(e,a){return new Blob([a],{type:e})}),ub=_(function(e){return"undefined"!=typeof File&&e instanceof File?wn(e):K("a FILE",e)}),pb=b(function(e,a,t){return z(function(){var b=new Blob([t],{type:a});if(navigator.msSaveOrOpenBlob)return void navigator.msSaveOrOpenBlob(b,e);var n=ge(),d=URL.createObjectURL(b);n.href=d,n.download=e,fe(n),URL.revokeObjectURL(d)})}),vb="undefined"==typeof document?{}:document,yb=n(function(e,a,t,b){var n=b.node;return n.parentNode.replaceChild(Ce(e,function(){}),n),{}}),kb=t(function(e,a){return t(function(t,b){for(var n,d=[],i=0;b.b;b=b.b)n=b.a,i+=n.b||0,d.push(n);return i+=d.length,{$:1,c:a,d:Ee(t),e:d,f:e,b:i}})}),xb=kb(void 0),Ab=t(function(e,a){return t(function(t,b){for(var n,d=[],i=0;b.b;b=b.b)n=b.a,i+=n.b.b||0,d.push(n);return i+=d.length,{$:2,c:a,d:Ee(t),e:d,f:e,b:i}})}),Eb=Ab(void 0),jb=t(function(e,a){return{$:4,j:e,k:a,b:1+(a.b||0)}}),Cb=t(function(e,t){return ve([e,t],function(){return e(t)})}),Lb=b(function(e,t,a){return ve([e,t,a],function(){return h(e,t,a)})}),Tb=n(function(e,t,a,b){return ve([e,t,a,b],function(){return $(e,t,a,b)})}),Nb=d(function(e,t,a,b,n){return ve([e,t,a,b,n],function(){return r(e,t,a,b,n)})}),wb=i(function(t,n,a,b,i,d){return ve([t,n,a,b,i,d],function(){return g(t,n,a,b,i,d)})}),Ob=s(function(t,n,a,b,i,d,e){return ve([t,n,a,b,i,d,e],function(){return m(t,n,a,b,i,d,e)})}),_b=l(function(t,n,a,b,i,d,e,s){return ve([t,n,a,b,i,d,e,s],function(){return u(t,n,a,b,i,d,e,s)})}),Ib=o(function(t,n,a,b,i,d,e,s,l){return ve([t,n,a,b,i,d,e,s,l],function(){return p(t,n,a,b,i,d,e,s,l)})}),Sb=t(function(e,a){return{$:"a0",n:e,o:a}}),Rb=t(function(e,a){return{$:"a1",n:e,o:a}}),Bb=t(function(e,a){return{$:"a2",n:e,o:a}}),Db=t(function(e,a){return{$:"a3",n:e,o:a}}),Kb=b(function(e,a,t){return{$:"a4",n:a,o:{f:e,o:t}}}),Jb=t(function(e,a){return"a0"===a.$?h(Sb,a.n,Ae(e,a.o)):a}),Gb=t(function(e,a){return L(e(a.a),a.b)}),qb=t(function(e,a){return{t:e(a.t),ad:a.ad,aa:a.aa}});try{window.addEventListener("t",null,Object.defineProperty({},"passive",{get:function(){oa=!0}}))}catch(a){}var Fb,Mb,Xb=d(function(e,a,t,b,n){for(var d,s=e.length,l=a+s<=n.length,o=0;l&&o<s;)d=n.charCodeAt(a),l=e[o++]===n[a++]&&(10===d?(t++,b=1):(b++,55296==(63488&d)?e[o++]===n[a++]:1));return T(l?a:-1,t,b)}),zb=b(function(e,a,t){return t.length<=a?-1:55296==(63488&t.charCodeAt(a))?e(N(t.substr(a,2)))?a+2:-1:e(N(t[a]))?"\n"===t[a]?-2:a+1:-1}),Hb=b(function(e,a,t){return t.charCodeAt(a)===e}),Pb=t(function(e,a){for(;e<a.length;e++){var t=a.charCodeAt(e);if(48>t||57<t)return e}return e}),Wb=b(function(e,a,t){for(var b,n=0;a<t.length&&(b=t.charCodeAt(a)-48,!(0>b||e<=b));a++)n=e*n+b;return L(a,n)}),Zb=t(function(e,a){for(var t,b=0;e<a.length;e++)if(t=a.charCodeAt(e),48<=t&&57>=t)b=16*b+t-48;else if(65<=t&&70>=t)b=16*b+t-55;else if(97<=t&&102>=t)b=16*b+t-87;else break;return L(e,b)}),Ub=d(function(e,a,t,b,n){for(var d=n.indexOf(e,a),i=0>d?n.length:d+e.length;a<i;){var s=n.charCodeAt(a++);10===s?(b=1,t++):(b++,55296==(63488&s)&&a++)}return T(d,t,b)}),Yb=Fb||n(function(e,a,t,b){return Q(a,b,e.bn,e.bL,e.bI,function(a,t){var n=e.bO,d=b.node,i=Qe(d);return ea(t,function(e){var t=n(e),b=Se(i,t);d=He(d,i,b,a),i=t})})}),Qb=Mb||n(function(e,a,t,b){return Q(a,b,e.bn,e.bL,e.bI,function(a,t){var b=e.O&&e.O(a),n=e.bO,d=vb.title,i=vb.body,s=Qe(i);return ea(t,function(e){la=b;var t=n(e),l=xb("body")(ka)(t.a6),o=Se(s,l);i=He(i,s,o,a),s=l,la=0,d!==t.bK&&(vb.title=d=t.bK)})})}),Vb="undefined"==typeof cancelAnimationFrame?function(e){clearTimeout(e)}:cancelAnimationFrame,en="undefined"==typeof requestAnimationFrame?function(e){return setTimeout(e,1e3/60)}:requestAnimationFrame,an=t(function(e,a){return h(zi,Yi,z(function(){a&&history.go(a),e()}))}),tn=t(function(e,a){return h(zi,Yi,z(function(){history.pushState({},"",a),e()}))}),bn=t(function(e,a){return h(zi,Yi,z(function(){history.replaceState({},"",a),e()}))}),nn={addEventListener:function(){},removeEventListener:function(){}},dn="undefined"==typeof document?nn:document,sn="undefined"==typeof window?nn:window,ln=b(function(e,a,t){return W(z(function(){function b(e){P(t(e))}return e.addEventListener(a,b,oa&&{passive:!0}),function(){e.removeEventListener(a,b)}}))}),on=t(function(e,a){var t=S(e,a);return Yn(t)?Cn(t.a):Ln}),rn=t(function(e,a){return aa(a,function(a){return a[e](),Ka})}),hn=t(function(e,a){return ta(function(){return sn.scroll(e,a),Ka})}),cn=b(function(e,a,t){return aa(e,function(e){return e.scrollLeft=a,e.scrollTop=t,Ka})}),$n=t(function(e,a){return e(a)}),gn=t(function(e,a){if(!a.$){var t=a.a;return t}return e}),fn=ma,mn=b(function(e,a,b){var n=b.c,d=b.d,i=t(function(a,t){if(!a.$){var b=a.a;return $(fn,i,t,b)}var n=a.a;return $(fn,e,t,n)});return $(fn,i,$(fn,e,a,d),n)}),un=1,pn=0,vn=xa,yn=function(e){return $(mn,vn,ka,e)},kn=2,xn=b(function(e,a,b){foldr:for(;;){if(-2===b.$)return a;var n=b.b,d=b.c,i=b.d,s=b.e,l=e,o=$(e,n,d,$(xn,e,a,s));e=l,a=o,b=i;continue foldr}}),An=function(e){return $(xn,b(function(e,a,t){return h(vn,L(e,a),t)}),ka,e)},En=function(e){return $(xn,b(function(e,a,t){return h(vn,e,t)}),ka,e)},jn=function(e){return En(e)},Cn=function(e){return{$:0,a:e}},Ln={$:1},Tn=n(function(e,a,t,b){return{bm:a,bp:e,br:t,aZ:b}}),Nn={bd:L(0,0),W:"example.svg",T:"<svg> . . . </svg>",X:0,Z:0,aX:0,bM:h(gn,Ga,function(e){return h(qa,{ag:!1,aD:!1},e)}("!|#|\\$|%|&|'|\\(|\\)|\\*|\\+|,|\\/|:|;|=|\\?|@|\\[|\\]"))},wn=function(e){return{$:0,a:e}},On=b(function(e,a,t){return a(e(t))}),_n=function(e){return e},In={$:-2},Sn=In,Rn=Da,Bn=t(function(e,a){get:for(;;){if(-2===a.$)return Ln;var t=a.b,b=a.c,n=a.d,d=a.e,i=h(Rn,e,t);switch(i){case 0:var s=e,l=n;e=s,a=l;continue get;case 1:return Cn(b);default:var s=e,l=d;e=s,a=l;continue get;}}}),Dn=d(function(t,a,b,n,d){return{$:-1,a:t,b:a,c:b,d:n,e:d}}),Kn=d(function(e,a,t,b,n){if(-1===n.$&&!n.a){var d=n.a,i=n.b,s=n.c,l=n.d,o=n.e;if(-1===b.$&&!b.a){var r=b.a,h=b.b,c=b.c,$=b.d,f=b.e;return g(Dn,0,a,t,g(Dn,1,h,c,$,f),g(Dn,1,i,s,l,o))}return g(Dn,e,i,s,g(Dn,0,a,t,b,l),o)}if(-1===b.$&&!b.a&&-1===b.d.$&&!b.d.a){var m=b.a,h=b.b,c=b.c,u=b.d,p=u.a,v=u.b,y=u.c,k=u.d,x=u.e,f=b.e;return g(Dn,0,h,c,g(Dn,1,v,y,k,x),g(Dn,1,a,t,f,n))}return g(Dn,e,a,t,b,n)}),Jn=b(function(e,a,t){if(-2===t.$)return g(Dn,0,e,a,In,In);var b=t.a,n=t.b,d=t.c,i=t.d,s=t.e,l=h(Rn,e,n);return 0===l?g(Kn,b,n,d,$(Jn,e,a,i),s):1===l?g(Dn,b,n,a,i,s):g(Kn,b,n,d,i,$(Jn,e,a,s))}),Gn=b(function(e,a,t){var b=$(Jn,e,a,t);if(-1===b.$&&!b.a){var n=b.a,d=b.b,i=b.c,s=b.d,l=b.e;return g(Dn,1,d,i,s,l)}return b}),qn=function(e){getMin:for(;;)if(-1===e.$&&-1===e.d.$){var a=e.d;e=a;continue getMin}else return e},Fn=function(e){if(-1===e.$&&-1===e.d.$&&-1===e.e.$){if(-1===e.e.d.$&&!e.e.d.a){var a=e.a,t=e.b,b=e.c,n=e.d,d=n.a,i=n.b,s=n.c,l=n.d,o=n.e,r=e.e,h=r.a,c=r.b,$=r.c,f=r.d,m=f.a,u=f.b,p=f.c,y=f.d,x=f.e,A=r.e;return g(Dn,0,u,p,g(Dn,1,t,b,g(Dn,0,i,s,l,o),y),g(Dn,1,c,$,x,A))}var a=e.a,t=e.b,b=e.c,E=e.d,d=E.a,i=E.b,s=E.c,l=E.d,o=E.e,j=e.e,h=j.a,c=j.b,$=j.c,f=j.d,A=j.e;return 1===a?g(Dn,1,t,b,g(Dn,0,i,s,l,o),g(Dn,0,c,$,f,A)):g(Dn,1,t,b,g(Dn,0,i,s,l,o),g(Dn,0,c,$,f,A))}return e},Mn=function(e){if(-1===e.$&&-1===e.d.$&&-1===e.e.$){if(-1===e.d.d.$&&!e.d.d.a){var a=e.a,t=e.b,b=e.c,n=e.d,d=n.a,i=n.b,s=n.c,l=n.d,o=l.a,r=l.b,h=l.c,c=l.d,$=l.e,f=n.e,m=e.e,u=m.a,p=m.b,y=m.c,x=m.d,A=m.e;return g(Dn,0,i,s,g(Dn,1,r,h,c,$),g(Dn,1,t,b,f,g(Dn,0,p,y,x,A)))}var a=e.a,t=e.b,b=e.c,E=e.d,d=E.a,i=E.b,s=E.c,j=E.d,f=E.e,C=e.e,u=C.a,p=C.b,y=C.c,x=C.d,A=C.e;return 1===a?g(Dn,1,t,b,g(Dn,0,i,s,j,f),g(Dn,0,p,y,x,A)):g(Dn,1,t,b,g(Dn,0,i,s,j,f),g(Dn,0,p,y,x,A))}return e},Xn=s(function(e,a,t,b,n,d,i){if(-1===d.$&&!d.a){var s=d.a,l=d.b,o=d.c,r=d.d,h=d.e;return g(Dn,t,l,o,r,g(Dn,0,b,n,h,i))}_n2$2:for(;;)if(-1!==i.$||1!==i.a)break _n2$2;else if(-1===i.d.$){if(1===i.d.a){var c=i.a,$=i.d,f=$.a;return Mn(a)}break _n2$2}else{var m=i.a,u=i.d;return Mn(a)}return a}),zn=function(e){if(-1===e.$&&-1===e.d.$){var a=e.a,t=e.b,b=e.c,n=e.d,d=n.a,i=n.d,s=e.e;if(1===d){if(-1===i.$&&!i.a){i.a;return g(Dn,a,t,b,zn(n),s)}var l=Fn(e);if(-1===l.$){var o=l.a,r=l.b,h=l.c,c=l.d,$=l.e;return g(Kn,o,r,h,zn(c),$)}return In}return g(Dn,a,t,b,zn(n),s)}return In},Hn=t(function(e,a){if(-2===a.$)return In;var t=a.a,b=a.b,n=a.c,d=a.d,i=a.e;if(0>C(e,b)){if(-1===d.$&&1===d.a){var s=d.a,l=d.d;if(-1===l.$&&!l.a){l.a;return g(Dn,t,b,n,h(Hn,e,d),i)}var o=Fn(a);if(-1===o.$){var r=o.a,c=o.b,$=o.c,f=o.d,m=o.e;return g(Kn,r,c,$,h(Hn,e,f),m)}return In}return g(Dn,t,b,n,h(Hn,e,d),i)}return h(Pn,e,u(Xn,e,a,t,b,n,d,i))}),Pn=t(function(e,a){if(-1===a.$){var t=a.a,b=a.b,n=a.c,d=a.d,i=a.e;if(E(e,b)){var s=qn(i);if(-1===s.$){var l=s.b,o=s.c;return g(Kn,t,l,o,d,zn(i))}return In}return g(Kn,t,b,n,d,h(Hn,e,i))}return In}),Wn=t(function(e,a){var t=h(Hn,e,a);if(-1===t.$&&!t.a){var b=t.a,n=t.b,d=t.c,i=t.d,s=t.e;return g(Dn,1,n,d,i,s)}return t}),Zn=b(function(e,a,t){var b=a(h(Bn,e,t));if(!b.$){var n=b.a;return $(Gn,e,n,t)}return h(Wn,e,t)}),Un=function(e){return!e.$},Yn=function(e){return!e.$},Qn=32,Vn=n(function(e,a,t,b){return{$:0,a:e,b:a,c:t,d:b}}),ed=ot,ad=t(function(e,a){return ct(a)/ct(e)}),td=ed(h(ad,2,Qn)),bd=[],nd=r(Vn,0,td,bd,bd),dd=function(e){return{$:1,a:e}},id=function(e){return{$:0,a:e}},sd=ha,ld=b(function(e,a,t){foldl:for(;;){if(!t.b)return a;var b=t.a,n=t.b,d=e,i=h(e,b,a);e=d,a=i,t=n;continue foldl}}),od=function(e){return $(ld,vn,ka,e)},rd=t(function(e,a){compressNodes:for(;;){var t=h(sd,Qn,e),b=t.a,n=t.b,d=h(vn,id(b),a);if(!n.b)return od(d);e=n,a=d;continue compressNodes}}),hd=t(function(e,a){return a(e)}),cd=function(e){var a=e.a;return a},$d=t(function(e,a){treeFromBuilder:for(;;){var t=ed(a/Qn);if(1===t)return h(sd,Qn,e).a;var b=h(rd,e,ka);e=b,a=t;continue treeFromBuilder}}),gd=t(function(e,a){return 0<C(e,a)?e:a}),fd=function(e){return e.length},md=t(function(e,a){if(!a.e)return r(Vn,fd(a.g),td,bd,a.g);var t=a.e*Qn,b=ba(h(ad,Qn,t-1)),n=e?od(a.h):a.h,d=h($d,n,a.e);return r(Vn,fd(a.g)+t,h(gd,5,b*td),d,a.g)}),ud=ra,pd=d(function(e,a,t,b,n){initializeHelp:for(;;){if(0>a)return h(md,!1,{h:b,e:0|t/Qn,g:n});var d=dd($(ud,Qn,a,e)),i=e,s=a-Qn,l=t,o=h(vn,d,b),r=n;e=i,a=s,t=l,b=o,n=r;continue initializeHelp}}),vd=t(function(e,a){if(0>=e)return nd;var t=e%Qn,b=$(ud,t,e-t,a);return g(pd,a,e-t-Qn,e,ka,b)}),yd=function(e){return{$:1,a:e}},kd=t(function(e,a){return{$:3,a:e,b:a}}),xd=t(function(e,a){return{$:0,a:e,b:a}}),Ad=t(function(e,a){return{$:1,a:e,b:a}}),Ed=function(e){return{$:2,a:e}},jd=function(e){var a=e.charCodeAt(0);return 55296<=a&&56319>=a?1024*(a-55296)+e.charCodeAt(1)-56320+65536:a},Cd=function(e){var a=jd(e);return 97<=a&&122>=a},Ld=function(e){var a=jd(e);return 90>=a&&65<=a},Td=function(e){return Cd(e)||Ld(e)},Nd=function(e){var a=jd(e);return 57>=a&&48<=a},wd=function(e){return Cd(e)||Ld(e)||Nd(e)},Od=function(e){return $(ld,t(function(e,a){return a+1}),0,e)},_d=b(function(e,a,t){rangeHelp:for(;;)if(1>C(e,a)){var b=e,n=a-1,d=h(vn,a,t);e=b,a=n,t=d;continue rangeHelp}else return t}),Id=t(function(e,a){return $(_d,e,a,ka)}),Sd=t(function(e,a){return $(Aa,e,h(Id,0,Od(a)-1),a)}),Rd=function(e){return e+""},Bd=t(function(e,a){return h(Et,e,y(a))}),Dd=function(e){var a=e.charCodeAt(0);return a?Cn(55296<=a&&56319>=a?L(N(e[0]+e[1]),e.slice(2)):L(N(e[0]),e.slice(1))):Ln},Kd=t(function(e,a){return v(h(At,e,a))}),Jd=function(e){return h(Bd,"\n ",h(Kd,"\n",e))},Gd=t(function(e,a){return"\n\n("+(Rd(e+1)+(") "+Jd(qd(a))))}),qd=function(e){return h(Fd,e,ka)},Fd=t(function(e,a){errorToStringHelp:for(;;)switch(e.$){case 0:var t=e.a,b=e.b,n=function(){var e=Dd(t);if(1===e.$)return!1;var a=e.a,b=a.a,n=a.b;return Td(b)&&h(Lt,wd,n)}(),d=n?"."+t:"['"+(t+"']"),s=b,l=h(vn,d,a);e=s,a=l;continue errorToStringHelp;case 1:var o=e.a,b=e.b,i="["+(Rd(o)+"]"),s=b,l=h(vn,i,a);e=s,a=l;continue errorToStringHelp;case 2:var r=e.a;if(!r.b)return"Ran into a Json.Decode.oneOf with no possibilities"+function(){return a.b?" at json"+h(Bd,"",od(a)):"!"}();if(!r.b.b){var b=r.a,s=b,l=a;e=s,a=l;continue errorToStringHelp}else{var c=function(){return a.b?"The Json.Decode.oneOf at json"+h(Bd,"",od(a)):"Json.Decode.oneOf"}(),$=c+(" failed in the following "+(Rd(Od(r))+" ways:"));return h(Bd,"\n\n",h(vn,$,h(Sd,Gd,r)))}default:var g=e.a,f=e.b,$=function(){return a.b?"Problem with the value at json"+(h(Bd,"",od(a))+":\n\n "):"Problem with the given value:\n\n"}();return $+(Jd(h(Ut,4,f))+("\n\n"+g));}}),Md=sb,Xd=lb,zd=t(function(t,b){if(!b.$){var n=b.a;return wn(t(n))}var a=b.a;return yd(a)}),Hd=t(function(e,a){return{$:3,a:e,b:a}}),Pd=function(e){return{$:0,a:e}},Wd=t(function(e,a){return{$:4,a:e,b:a}}),Zd={$:2},Ud=function(e){return{$:1,a:e}},Yd=function(e){return{$:0,a:e}},Qd={$:1},Vd=t(function(e,a){return $($b,"",_n,h(On,a,e))}),ei=t(function(a,t){if(!t.$){var b=t.a;return wn(b)}var n=t.a;return yd(a(n))}),ai=function(e){return{$:4,a:e}},ti=function(e){return{$:3,a:e}},bi=function(e){return{$:0,a:e}},ni={$:2},di={$:1},ii=t(function(e,a){switch(a.$){case 0:var t=a.a;return yd(bi(t));case 1:return yd(di);case 2:return yd(ni);case 3:var b=a.a;return yd(ti(b.aY));default:var n=a.b;return h(ei,ai,e(n));}}),si={$:0},li=function(e){return{$:1,a:e}},oi=M,ri=t(function(e,a){return{aO:e,a_:a}}),hi=oi(h(ri,Sn,ka)),ci=Vt,$i=function(e){return z(function(a){var t=e.f;2===t.$&&t.c&&t.c(),e.f=null,a(M(0))})},gi=b(function(e,a,t){updateReqs:for(;;){if(!a.b)return oi(t);var b=a.a,n=a.b;if(!b.$){var d=b.a,i=h(Bn,d,t);if(1===i.$){var s=e,l=t;e=s,a=n,t=l;continue updateReqs}else{var o=i.a;return h(ci,function(){return $(gi,e,n,h(Wn,d,t))},$i(o))}}else{var r=b.a;return h(ci,function(a){var b=r.o;if(1===b.$)return $(gi,e,n,t);var d=b.a;return $(gi,e,n,$(Gn,d,a,t))},W($(cb,e,Md(e),r)))}}}),fi=n(function(e,a,t,b){return h(ci,function(e){return oi(h(ri,e,t))},$(gi,e,a,b.aO))}),mi=n(function(e,t,n,i){if(!i.b)return t;var s=i.a,a=i.b;if(!a.b)return h(e,s,t);var l=a.a,b=a.b;if(!b.b)return h(e,s,h(e,l,t));var o=b.a,c=b.b;if(!c.b)return h(e,s,h(e,l,h(e,o,t)));var g=c.a,d=c.b,f=500<n?$(ld,e,t,od(d)):r(mi,e,t,n+1,d);return h(e,s,h(e,l,h(e,o,h(e,g,f))))}),ui=b(function(e,a,t){return r(mi,e,a,0,t)}),pi=b(function(e,a,t){var b=e(a);if(!b.$){var n=b.a;return h(vn,n,t)}return t}),vi=t(function(e,a){return $(ui,pi(e),ka,a)}),yi=b(function(e,a,t){return h(ci,function(n){return h(ci,function(a){return oi(h(e,n,a))},t)},a)}),ki=function(e){return $(ui,yi(vn),oi(ka),e)},xi=n(function(e,a,t,b){var n=b.a,d=b.b;return E(a,n)?Cn(h(Md,e,d(t))):Ln}),Ai=b(function(e,a,t){var b=a.a,n=a.b;return h(ci,function(){return oi(t)},ki(h(vi,$(xi,e,b,n),t.a_)))}),Ei=function(e){return{$:0,a:e}},ji=t(function(e,a){if(!a.$){var t=a.a;return Ei(t)}var b=a.a;return li({B:b.B,a6:b.a6,bf:h(gb,e,b.bf),i:b.i,m:b.m,n:b.n,o:b.o,bN:b.bN})}),Ci=t(function(e,a){return{$:0,a:e,b:a}}),Li=t(function(e,a){var t=a.a,b=a.b;return h(Ci,t,h(On,b,e))});ib.Http=ee(hi,fi,Ai,ji,Li);var Ti=te("Http"),Ni=te("Http"),wi=function(e){return Ti(li({B:!1,a6:e.a6,bf:e.bf,i:e.i,m:e.m,n:e.n,o:e.o,bN:e.bN}))},Oi=function(e){return wi({a6:si,bf:e.bf,i:ka,m:"GET",n:Ln,o:Ln,bN:e.bN})}({bf:function(e){return h(Vd,e,ii(wn))}(function(e){return{$:1,a:e}}),bN:"assets/example.svg"}),_i=t(function(e,a){if(!a.$){var t=a.a;return w(e,{T:t,X:1})}return w(e,{X:1})}),Ii=function(e){return e?0:1},Si=function(e){return{$:1,a:e}},Ri=function(e){return{$:0,a:e}},Bi=function(e){return{$:5,a:e}},Di=oi(0),Ki=t(function(e,a){return $(ui,t(function(a,t){return h(vn,e(a),t)}),ka,a)}),Ji=t(function(e,a){return h(ci,function(t){return oi(e(t))},a)}),Gi=t(function(e,a){return W(h(ci,Md(e),a))}),qi=b(function(e,a){return h(Ji,function(){return 0},ki(h(Ki,Gi(e),a)))}),Fi=b(function(){return oi(0)}),Mi=t(function(e,a){return h(Ji,e,a)});ib.Task=ee(Di,qi,Fi,Mi);var Xi=te("Task"),zi=t(function(e,a){return Xi(h(Ji,e,a))}),Hi=function(e){return e.name},Pi=function(e){return z(function(a){var t=new FileReader;return t.addEventListener("loadend",function(){a(M(t.result))}),t.readAsText(e),function(){t.abort()}})},Wi=t(function(e,a){return h(zi,a,me(e))}),Zi=t(function(e,a){if(!a.$)return L(e,h(Wi,v(["image/svg+xml"]),function(e){return Bi(Si(e))}));var t=a.a;return L(w(e,{W:Hi(t)}),h(zi,Ri,Pi(t)))}),Ui=be(ka),Yi=function(e){never:for(;;){var a=e;e=a;continue never}},Qi=b(function(e,a,t){return h(zi,Yi,$(pb,e,a,t))}),Vi=t(function(e,a){switch(e.$){case 0:var t=e.a;return L(w(a,{T:t}),Ui);case 1:var b=e.a;return L(h(_i,a,b),Ui);case 2:var n=e.a;return L(w(a,{aX:n}),Ui);case 3:return L(w(a,{Z:Ii(a.Z)}),Ui);case 4:return L(a,$(Qi,a.W,"image/svg+xml",a.T));case 5:var d=e.a;return h(Zi,a,d);default:var i=e.a;return L(w(a,{bd:i}),Ui);}}),es=t(function(e,t){if(!t.$){var b=t.a;return b}return e}),as=Gt,ts=qt,bs=function(e){return{$:0,a:e}},ns=function(e){switch(e.$){case 0:return 0;case 1:return 1;case 2:return 2;default:return 3;}},ds=xb("code"),is=xb("pre"),ss=pe,ls=function(e){return v([e])},os=t(function(e,a){return h(Bb,e,q(a))}),rs=os("className"),hs=xb("div"),cs=t(function(e,a){return h(Db,ye(e),xe(a))}),$s=t(function(e,a){return $(ui,t(function(a,t){return e(a)?h(vn,a,t):t}),ka,a)}),gs=function(e){var a=e.b;return a},fs=function(e){return rs(h(Bd," ",h(Ki,cd,h($s,gs,e))))},ms=function(e){return""===e},us=xb("span"),ps=function(e){return"elmsh"+function(){return 0===e?"0":1===e?"-comm":2===e?"1":3===e?"2":4===e?"3":5===e?"4":6===e?"5":7===e?"6":"7"}()},vs=function(e){var a=e.bJ,t=e.bw,b=e.a4;return!t&&ms(b)?ss(a):h(us,v([fs(v([L(ps(t),t),L("elmsh-"+b,""!==b)]))]),v([ss(a)]))},ys=b(function(e,a,t){var b=t.bi,n=t.bk;return h(hs,v([fs(v([L("elmsh-line",!0),L("elmsh-hl",E(n,Cn(0))),L("elmsh-add",E(n,Cn(1))),L("elmsh-del",E(n,Cn(2)))])),h(cs,"data-elmsh-lc",Rd(e+a))]),h(Ki,vs,b))}),ks=t(function(e,a){return a.b?$(ui,vn,a,e):e}),xs=function(e){return $(ui,ks,ka,e)},As=function(e){return h(ds,v([rs("elmsh")]),xs(h(Ki,function(e){var a=e.bk,t=e.bi;return E(a,Ln)?h(Ki,vs,t):v([h(us,v([fs(v([L("elmsh-hl",E(a,Cn(0))),L("elmsh-add",E(a,Cn(1))),L("elmsh-del",E(a,Cn(2)))]))]),h(Ki,vs,t))])},e)))},Es=t(function(e,a){if(1===e.$)return h(is,v([rs("elmsh")]),v([As(a)]));var t=e.a;return h(is,v([rs("elmsh")]),ls(h(ds,ka,h(Sd,ys(t),a))))}),js=t(function(e,a){return h(Es,e,a)}),Cs=b(function(e,a,t){return{ai:a,aI:t,aS:e}}),Ls=function(e){return $(Cs,e.aS,e.ai,e.aI)},Ts=t(function(e,a){bagToList:for(;;)switch(e.$){case 0:return a;case 1:var t=e.a,b=e.b,n=t,d=h(vn,b,a);e=n,a=d;continue bagToList;default:var t=e.a,i=e.b,n=t,d=h(Ts,i,a);e=n,a=d;continue bagToList;}}),Ns=t(function(e,a){var t=e({ai:1,c:ka,d:1,b:0,aS:1,a:a});if(!t.$){var b=t.b;return wn(b)}var n=t.b;return yd(h(Ts,n,ka))}),ws=t(function(e,t){var b=h(Ns,e,t);if(!b.$){var n=b.a;return wn(n)}var a=b.a;return yd(h(Ki,Ls,a))}),Os=t(function(e,a){return{$:1,a:e,b:a}}),_s=b(function(e,a,t){return{$:0,a:e,b:a,c:t}}),Is=t(function(e,t){return function(b){var n=t(b);if(!n.$){var d=n.a,i=n.b,a=n.c;return $(_s,d,e(i),a)}var d=n.a,s=n.b;return h(Os,d,s)}}),Ss=Is,Rs=function(e){return{$:1,a:e}},Bs=function(e){return{$:0,a:e}},Ds=function(e){if(!e.$){var t=e.a;return Bs(t)}var b=e.a;return Rs(b)},Ks=n(function(e,a,t,b){loopHelp:for(;;){var n=t(a),d=n(b);if(!d.$){var i=d.a,s=d.b,l=d.c;if(!s.$){var o=s.a,r=e||i,c=t;e=r,a=o,t=c,b=l;continue loopHelp}else{var g=s.a;return $(_s,e||i,g,l)}}else{var i=d.a,f=d.b;return h(Os,e||i,f)}}}),Js=t(function(e,a){return function(t){return r(Ks,!1,e,a,t)}}),Gs=t(function(e,a){return h(Js,e,function(e){return h(Ss,Ds,a(e))})}),qs=function(e){return{$:1,a:e}},Fs=function(e){return{$:0,a:e}},Ms=t(function(e){return e}),Xs=jt,zs=t(function(e,t){return function(b){var n=t(b);if(1===n.$){var d=n.a,i=n.b;return h(Os,d,i)}var d=n.a,s=n.b,a=n.c;return $(_s,d,h(e,$(Xs,b.b,a.b,b.a),s),a)}}),Hs=function(e){return h(zs,Ms,e)},Ps={$:0},Ws=t(function(e,a){return{$:2,a:e,b:a}}),Zs=b(function(e,a,t){oneOfHelp:for(;;){if(!t.b)return h(Os,!1,a);var b=t.a,n=t.b,d=b(e);if(!d.$){var i=d;return i}var i=d,s=i.a,l=i.b;if(s)return i;var o=e,r=h(Ws,a,l);e=o,a=r,t=n;continue oneOfHelp}}),Us=function(e){return function(a){return $(Zs,a,Ps,e)}},Ys=function(e){return function(a){return $(_s,!1,e,a)}},Qs={$:11},Vs=t(function(e,a){return{$:1,a:e,b:a}}),el=n(function(e,a,t,b){return{ai:a,a9:b,aI:t,aS:e}}),al=t(function(e,a){return h(Vs,Ps,r(el,e.aS,e.ai,a,e.c))}),tl=zb,bl=t(function(e,a){return function(t){var b=$(tl,e,t.b,t.a);return E(b,-1)?h(Os,!1,h(al,t,a)):E(b,-2)?$(_s,!0,0,{ai:1,c:t.c,d:t.d,b:t.b+1,aS:t.aS+1,a:t.a}):$(_s,!0,0,{ai:t.ai+1,c:t.c,d:t.d,b:b,aS:t.aS,a:t.a})}}),nl=function(e){return h(bl,e,Qs)},dl=d(function(e,a,t,b,n){chompWhileHelp:for(;;){var d=$(tl,e,a,n.a);if(E(d,-1))return $(_s,0>C(n.b,a),0,{ai:b,c:n.c,d:n.d,b:a,aS:t,a:n.a});if(E(d,-2)){var i=e,s=a+1,l=t+1,o=1,r=n;e=i,a=s,t=l,b=o,n=r;continue chompWhileHelp}else{var i=e,s=d,l=t,o=b+1,r=n;e=i,a=s,t=l,b=o,n=r;continue chompWhileHelp}}}),il=function(e){return function(a){return g(dl,e,a.b,a.aS,a.ai,a)}},sl=b(function(e,t,n){return function(d){var i=t(d);if(1===i.$){var s=i.a,l=i.b;return h(Os,s,l)}var o=i.a,r=i.b,a=i.c,c=n(a);if(1===c.$){var g=c.a,l=c.b;return h(Os,o||g,l)}var g=c.a,f=c.b,b=c.c;return $(_s,o||g,h(e,r,f),b)}}),ll=t(function(e,a){return $(sl,Ms,e,a)}),ol=ll,rl=function(e){return h(ol,h(ol,Ys(0),nl(e)),il(e))},hl=function(e){return"\n"===e},cl={$:0},$l=t(function(e,t){return function(n){var d=t(n);if(1===d.$){var i=d.a,s=d.b;return h(Os,i,s)}var l=d.a,o=d.b,a=d.c,r=e(o),c=r(a);if(1===c.$){var g=c.a,s=c.b;return h(Os,l||g,s)}var g=c.a,f=c.b,b=c.c;return $(_s,l||g,f,b)}}),gl=$l,fl=function(e){return{$:8,a:e}},ml=t(function(e,a){return{$:0,a:e,b:a}}),ul=function(e){var a=e.a,t=e.b,b=!ms(a);return function(e){var n=g(Xb,a,e.b,e.aS,e.ai,e.a),d=n.a,i=n.b,s=n.c;return E(d,-1)?h(Os,!1,h(al,e,t)):$(_s,b,0,{ai:s,c:e.c,d:e.d,b:d,aS:i,a:e.a})}},pl=function(e){return ul(h(ml,e,fl(e)))},vl=function(e){return{$:12,a:e}},yl=function(e){return function(a){return h(Os,!1,h(al,a,e))}},kl=function(e){return yl(vl(e))},xl=function(e){return e.length},Al=function(e){return function(a){return E(xl(a.a),a.b)?$(_s,!1,0,a):h(Os,!1,h(al,a,e))}}({$:10}),El=b(function(e,a,t){return h(gl,function(t){return e(O(t,a))},t)}),jl=b(function(e,a,t){return h(gl,function(t){return e(h(vn,t,a))},t)}),Cl=t(function(e,a){return h(ol,a,il(e))}),Ll=t(function(e,a){var t=e.am,b=e.ay,n=e.an,d=e.av;return Us(v([h(Ss,Ms(h(vn,t(n),a)),pl(n)),h(Ss,Ms(a),Al),$(El,Ll(e),a,Us(d)),$(jl,Ll(e),a,h(Ss,t,Hs(h(Cl,b,nl(Ms(!0))))))]))}),Tl=b(function(e,a,t){var b=a.am,n=a.ay,d=a.ac,i=a.an,s=a.av;return Us(v([h(gl,function(t){return 1===e?Ys(t):$(Tl,e-1,a,t)},h(Ss,Ms(h(vn,b(i),t)),pl(i))),$(jl,h(Tl,e+1,a),t,h(Ss,b,Hs(h(Cl,n,pl(d))))),$(El,Ll(a),t,Us(s)),h(Ss,Ms(t),Al),$(jl,h(Tl,e,a),t,h(Ss,b,Hs(h(Cl,n,nl(Ms(!0))))))]))}),Nl=t(function(e,a){var t=e.ac,b=e.an,n=e.ay,d=L(Dd(e.ac),Dd(e.an));if(1===d.a.$){d.a;return kl("Trying to parse a delimited helper, but the start token cannot be an empty string!")}if(1===d.b.$){d.b;return kl("Trying to parse a delimited helper, but the end token cannot be an empty string!")}var i=d.a.a,s=i.a,l=d.b.a,o=l.a;return e.ax?$(Tl,1,w(e,{ay:function(e){return n(e)&&!E(e,s)&&!E(e,o)}}),a):h(Ll,w(e,{ay:function(e){return n(e)&&!E(e,o)}}),a)}),wl=function(e){var a=e.ac,t=e.ay,b=e.am;return h(gl,function(a){return h(Nl,e,v([a]))},h(Ss,Ms(b(a)),pl(a)))},Ol={$:1},_l=b(function(e,a,t){return e(a(t))}),Il=function(e){return{$:3,a:e}},Sl={$:2},Rl=h(Ss,function(){return L(Sl,"\n")},pl("\n")),Bl=h(Ss,ls,Rl),Dl={am:function(e){return L(Il(2),e)},an:"\"",av:v([Bl]),ax:!1,ay:h(_l,function(e){return!e},hl),ac:"\""},Kl=wl(w(Dl,{am:function(e){return L(Ol,e)},an:"-->",ac:"<!--"})),Jl=h(ol,h(ol,Ys(0),nl(function(e){return"<"===e})),Us(v([nl(function(e){return"/"===e||"!"===e}),Ys(0)]))),Gl=function(e){return" "===e||"\t"===e},ql=function(e){return Gl(e)||hl(e)},Fl=wl(Dl),Ml=wl(w(Dl,{an:"'",ac:"'"})),Xl=Us(v([Fl,Ml,h(Ss,function(e){return v([L(Il(2),e)])},Hs(rl(function(e){return!ql(e)&&">"!==e})))])),zl=Us(v([h(Ss,function(e){return L(cl,e)},Hs(rl(Gl))),Rl])),Hl=function(e){return Us(v([$(jl,Hl,e,zl),$(El,Ys,e,Xl),Ys(e)]))},Pl=function(e){return Us(v([$(jl,Pl,e,zl),$(jl,Hl,e,h(Ss,function(){return L(cl,"=")},pl("="))),Ys(e)]))},Wl=function(e){return Ld(e)||Cd(e)||Nd(e)},Zl=function(e){return Wl(e)||"-"===e},Ul=function(e){return Zl(e)||"_"===e},Yl=function(e){return Us(v([h(Ss,Fs,$(jl,Pl,e,h(Ss,function(e){return L(Il(1),e)},Hs(rl(Ul))))),h(Ss,function(a){return Fs(h(vn,a,e))},zl),h(Ss,function(a){return Fs(h(vn,L(cl,a),e))},Hs(rl(function(e){return!ql(e)&&">"!==e}))),Ys(qs(e))]))},Ql=function(e){return Us(v([h(gl,function(a){return h(Gs,h(vn,a,e),Yl)},h(Ss,function(e){return L(Il(0),e)},Hs(h(Cl,Zl,nl(Wl))))),Ys(e)]))},Vl=function(e){return h(gl,Ql,h(Ss,function(a){return h(vn,L(cl,a),e)},Hs(Jl)))},eo=h(Gs,ka,function(e){return Us(v([h(Ss,function(a){return Fs(h(vn,a,e))},zl),h(Ss,function(a){return Fs(O(a,e))},Kl),h(Ss,function(a){return Fs(h(vn,L(cl,a),e))},Hs(rl(function(e){return"<"!==e&&!hl(e)}))),h(Ss,Fs,Vl(e)),Ys(qs(e))]))}),ao=function(e){return{bi:e,bk:Ln}},to=t(function(e,a){var t=a.a,b=a.b;switch(t.$){case 0:return{a4:"",bw:0,bJ:b};case 1:return{a4:"",bw:1,bJ:b};case 2:return{a4:"",bw:0,bJ:b};default:var n=t.a,d=e(n),i=d.a,s=d.b;return{a4:s,bw:i,bJ:b};}}),bo=b(function(e,a,t){var b=a.a,n=a.b,d=t.a,i=t.b,s=t.c;if(E(b,Sl))return T(h(vn,ao(i),d),v([h(to,e,L(b,n))]),Ln);if(E(Cn(b),s)){if(i.b){var l=i.a,o=i.b;return T(d,h(vn,w(l,{bJ:O(n,l.bJ)}),o),s)}return T(d,h(vn,h(to,e,L(b,n)),i),s)}return T(d,h(vn,h(to,e,L(b,n)),i),Cn(b))}),no=t(function(e,a){return function(e){var a=e.a,t=e.b;return h(vn,ao(t),a)}($(ld,bo(e),T(ka,ka,Ln),a))}),io=h(On,ws(eo),zd(no(function(e){return 0===e?L(4,"xml-t"):1===e?L(6,"xml-a"):L(3,"xlm-av")}))),so=h(On,io,zd(_n)),lo=function(e){return h(es,h(is,ka,v([h(ds,ka,v([ss(e.T)]))])),h(zd,js(Ln),so(""===e.T?"<svg ...> ... </svg>":e.T)))},oo=function(e){return{$:0,a:e}},ro=Sb,ho=t(function(e,a){return h(ro,e,oo(a))}),co=t(function(e,a){return $(ui,Dt,a,e)}),$o=_t,go=function(e){return h(ho,"scroll",h(as,e,$(ts,function(e){return function(a){return L(e,a)}},h(co,v(["target","scrollLeft"]),$o),h(co,v(["target","scrollTop"]),$o))))},fo=function(e){return{$:6,a:e}},mo=xb("textarea"),uo=os("alt"),po=t(function(e,a){return h(Bb,e,q(a))}),vo=po("spellcheck"),yo=os("value"),ko=function(e){return L(e,!0)},xo=function(e){return{$:1,a:e}},Ao=t(function(e,a){return h(ro,e,xo(a))}),Eo=h(co,v(["target","value"]),Bt),jo=function(e){return h(Ao,"input",h(as,ko,h(as,e,Eo)))},Co=function(e){return h(mo,v([yo(e.T),jo(Ri),go(fo),vo(!1),uo("Text Editor")]),ka)},Lo=Rd,To=function(e){return h(Rb,"transform",e)},No=function(e){var a=e.a,t=e.b;return To("translate("+(Lo(-a)+("px, "+(Lo(-t)+"px)"))))},wo=os("id"),Oo=function(e){return h(hs,v([wo("editor"),uo("Text Editor")]),v([h(hs,v([No(e.bd)]),v([lo(e)])),Co(e)]))},_o={$:4},Io={$:0},So={$:3},Ro=function(e){return!!e},Bo=xb("img"),Do=function(e){return h(os,"src",xe(e))},Ko=function(e){return h(Bo,v([Do(Ro(e)?"assets/bulb-on.svg":"assets/bulb-off.svg"),uo("Toggle Dark Mode")]),ka)},Jo=h(Bo,v([Do("assets/download.svg"),uo("Download")]),ka),Go=h(Bo,v([wo("error"),Do("assets/error.svg"),uo("Something Went Wrong")]),ka),qo=function(e){return{$:2,a:e}},Fo=function(e){return h(ho,"error",bs(e))},Mo=function(e){return h(ho,"load",bs(e))},Xo=function(e){return!e},zo=function(e){return Xo(e.aX)?Fo(qo(1)):Mo(qo(0))},Ho=h(Bo,v([Do("assets/upload.svg"),uo("Upload")]),ka),Po=function(e){var a=e.bp;switch(a){case"!":return"%21";case"#":return"%23";case"$":return"%24";case"%":return"%25";case"&":return"%26";case"'":return"%27";case"(":return"%28";case")":return"%29";case"*":return"%2A";case"+":return"%2B";case",":return"%2C";case"/":return"%2F";case":":return"%3A";case";":return"%3B";case"=":return"%3D";case"?":return"%3F";case"@":return"%40";case"[":return"%5B";case"]":return"%5D";default:return a;}},Wo=Xa(1/0),Zo=function(e){return"data:image/svg+xml;utf8,"+$(Wo,e.bM,Po,e.T)},Uo=xb("button"),Yo=function(e){return h(ho,"click",bs(e))},Qo=function(e){return h(hs,v([wo("display"),rs(Ro(e.Z)?"dark":"light")]),v([h(Bo,v([wo("image"),Do(Zo(e)),zo(e),uo("Picture Display")]),ka),Go,h(Uo,v([Yo(_o),uo("Download")]),v([Jo])),h(Uo,v([Yo(Bi(Io)),uo("Upload")]),v([Ho])),h(Uo,v([Yo(So),uo("Toggle Dark Mode")]),v([Ko(e.Z)]))]))},Vo=h(Bo,v([Do("assets/github.svg"),uo("Github Repository")]),ka),er=xb("a"),ar=Db("rel"),tr=os("target"),br=t(function(e,a){return h(er,O(v([tr("_blank"),ar("noopener noreferrer")]),e),a)}),nr=h(Bo,v([Do("assets/logo.svg"),uo("RawSvg")]),ka),dr=function(e){return h(os,"href",ke(e))},ir=Cb,sr=function(e){return h(hs,v([wo("container"),rs(Xo(e.aX)?"valid":"error")]),v([h(hs,v([wo("title")]),v([nr,h(br,v([dr("https://github.com/GarkGarcia/RawSvg"),wo("github")]),v([Vo])),h(br,v([dr("https://github.com/GarkGarcia/RawSvg/blob/master/LICENSE"),wo("copyright"),rs("elmsh-comm"),uo("License Information")]),v([ss("<!-- GarkGarcia (C) 2019 -->")]))])),Qo(e),h(ir,Oo,e)]))},lr=function(e){return{$:1,a:e}},or=function(e){return{$:0,a:e}},rr=_n,hr=t(function(e,a){return 1>e?a:$(Xs,e,xl(a),a)}),cr=Nt,$r=Ot,gr=t(function(e,a){return 1>e?"":$(Xs,0,e,a)}),fr=function(e){for(var a,t=0,b=e.charCodeAt(0),n=43==b||45==b?1:0,d=n;d<e.length;++d){if(a=e.charCodeAt(d),48>a||57<a)return Ln;t=10*t+a-48}return d==n?Ln:Cn(45==b?-t:t)},mr=i(function(e,a,t,b,n,d){return{ar:d,at:a,aF:b,aH:t,aL:e,aM:n}}),ur=d(function(e,a,t,b,n){if(ms(n)||h(Tt,"@",n))return Ln;var d=h($r,":",n);if(!d.b)return Cn(m(mr,e,n,Ln,a,t,b));if(!d.b.b){var s=d.a,i=fr(h(hr,s+1,n));if(1===i.$)return Ln;return Cn(m(mr,e,h(gr,s,n),i,a,t,b))}return Ln}),pr=n(function(e,a,t,b){if(ms(b))return Ln;var n=h($r,"/",b);if(!n.b)return g(ur,e,"/",a,t,b);var d=n.a;return g(ur,e,h(hr,d,b),a,t,h(gr,d,b))}),vr=b(function(e,a,t){if(ms(t))return Ln;var b=h($r,"?",t);if(!b.b)return r(pr,e,Ln,a,t);var n=b.a;return r(pr,e,Cn(h(hr,n+1,t)),a,h(gr,n,t))}),yr=t(function(e,a){if(ms(a))return Ln;var t=h($r,"#",a);if(!t.b)return $(vr,e,Ln,a);var b=t.a;return $(vr,e,Cn(h(hr,b+1,a)),h(gr,b,a))}),kr=function(e){return h(cr,"http://",e)?h(yr,0,h(hr,7,e)):h(cr,"https://",e)?h(yr,1,h(hr,8,e)):Ln},xr=be(ka),Ar=Qb({bn:function(){return L(Nn,Oi)},bI:function(){return xr},bL:Vi,bO:function(e){return{a6:function(){var a=e.X;return a?v([h(ir,sr,e)]):ka}(),bK:"RawSvg"}}});(function(a){e.Elm?le(e.Elm,a):e.Elm=a})({Main:{init:Ar(bs(0))(0)}})})(this);- \ No newline at end of file
diff --git /dev/null b/script.min.js @@ -0,0 +1 @@ +./build/output/script.min.js+ \ No newline at end of file
diff --git a/service-worker.js b/service-worker.js @@ -1,18 +1,18 @@ -self.addEventListener('install', installHandler); -self.addEventListener('fetch', fetchHandler); - -function installHandler(e) { - e.waitUntil( - caches.open('progessive-elm') - .then((cache) => cache.addAll(['/', '/index.html'])) - .catch(console.error) - ); -} - -function fetchHandler(e) { - e.respondWith( - caches.match(event.request) - .then((response) => response || fetch(e.request)) - .catch(console.error) - ); +self.addEventListener('install', installHandler); +self.addEventListener('fetch', fetchHandler); + +function installHandler(e) { + e.waitUntil( + caches.open('progessive-elm') + .then((cache) => cache.addAll(['/', '/index.html'])) + .catch(console.error) + ); +} + +function fetchHandler(e) { + e.respondWith( + caches.match(event.request) + .then((response) => response || fetch(e.request)) + .catch(console.error) + ); } \ No newline at end of file
diff --git a/src/Editor.elm b/src/Editor.elm @@ -1,57 +1,57 @@ -module Editor exposing (editor) - -import Types exposing (..) -import Html exposing (Html, Attribute, div, pre, code, text, textarea) -import Html.Attributes exposing (id, value, style, spellcheck, alt) -import Html.Events exposing (onInput, on) -import Json.Decode -import SyntaxHighlight exposing (xml, toBlockHtml) - -editor : Model -> Html Msg -editor model = - div [ id "editor", alt "Text Editor" ] - [ div [ translate model.editorScroll ] - [ codeDisplay model ] - , textarea model - ] - -textarea : Model -> Html Msg -textarea model = - Html.textarea - [ value model.image - , onInput Update - , onScroll Scroll - , spellcheck False - , alt "Text Editor" - ] [] - -codeDisplay : Model -> Html Msg -codeDisplay model = - xml (if model.image == "" then placeholder else model.image) - |> Result.map (toBlockHtml Nothing) - |> Result.withDefault - (pre [] [ code [] [ text model.image ] ]) - -onScroll : ((Int, Int) -> msg) -> Attribute msg -onScroll f = - on "scroll" - (Json.Decode.map2 (\x -> \y -> (x, y)) - (Json.Decode.at [ "target", "scrollLeft" ] Json.Decode.int) - (Json.Decode.at [ "target", "scrollTop" ] Json.Decode.int) - |> Json.Decode.map f - ) - -transform : String -> Attribute msg -transform str = - style "transform" str - -translate : (Int, Int) -> Attribute Msg -translate (x, y) = - transform ("translate(" ++ (show -x) ++ "px, " ++ (show -y) ++ "px)") - -placeholder : String -placeholder = - "<svg ...> ... </svg>" - -show : Int -> String +module Editor exposing (editor) + +import Types exposing (..) +import Html exposing (Html, Attribute, div, pre, code, text, textarea) +import Html.Attributes exposing (id, value, style, spellcheck, alt) +import Html.Events exposing (onInput, on) +import Json.Decode +import SyntaxHighlight exposing (xml, toBlockHtml) + +editor : Model -> Html Msg +editor model = + div [ id "editor", alt "Text Editor" ] + [ div [ translate model.editorScroll ] + [ codeDisplay model ] + , textarea model + ] + +textarea : Model -> Html Msg +textarea model = + Html.textarea + [ value model.image + , onInput Update + , onScroll Scroll + , spellcheck False + , alt "Text Editor" + ] [] + +codeDisplay : Model -> Html Msg +codeDisplay model = + xml (if model.image == "" then placeholder else model.image) + |> Result.map (toBlockHtml Nothing) + |> Result.withDefault + (pre [] [ code [] [ text model.image ] ]) + +onScroll : ((Int, Int) -> msg) -> Attribute msg +onScroll f = + on "scroll" + (Json.Decode.map2 (\x -> \y -> (x, y)) + (Json.Decode.at [ "target", "scrollLeft" ] Json.Decode.int) + (Json.Decode.at [ "target", "scrollTop" ] Json.Decode.int) + |> Json.Decode.map f + ) + +transform : String -> Attribute msg +transform str = + style "transform" str + +translate : (Int, Int) -> Attribute Msg +translate (x, y) = + transform ("translate(" ++ (show -x) ++ "px, " ++ (show -y) ++ "px)") + +placeholder : String +placeholder = + "<svg ...> ... </svg>" + +show : Int -> String show = String.fromInt \ No newline at end of file
diff --git a/src/Main.elm b/src/Main.elm @@ -1,93 +1,93 @@ -module Main exposing (main) - -import View exposing (view) -import Types exposing (..) -import Browser exposing (document) -import Http -import File exposing (File) -import File.Download as Download -import File.Select as Select -import Regex -import Task - - -main : Program () Model Msg -main = - document - { init = \_ -> (init, loadContent) - , update = update - , view = view - , subscriptions = \_ -> Sub.none - } - - -update : Msg -> Model -> (Model, Cmd Msg) -update msg model = - case msg of - Update image -> - ({ model | image = image }, Cmd.none) - - Load res -> - (load model res, Cmd.none) - - Validation val -> - ({ model | status = val }, Cmd.none) - - ToggleDarkMode -> - ({ model | mode = toggle model.mode }, Cmd.none) - - Download -> - (model, Download.string model.fileName "image/svg+xml" model.image) - - Upload upl -> - upload model upl - - Scroll scroll -> - ({model | editorScroll = scroll}, Cmd.none) - -load : Model -> Result Http.Error String -> Model -load model res = - case res of - Ok svg -> - { model | image = svg, load = Loaded } - - Err _ -> - { model | load = Loaded } - -upload : Model -> Upload -> (Model, Cmd Msg) -upload model upl = - case upl of - Requested -> - (model, Select.file [ "image/svg+xml" ] (\file -> Upload (Selected file))) - - Selected file -> - ({ model | fileName = File.name file }, Task.perform Update (File.toString file)) - -init : Model -init = - { image = emptySvg - , status = Valid - , mode = Light - , uriEncoder = Maybe.withDefault Regex.never - <| Regex.fromString "!|#|\\$|%|&|'|\\(|\\)|\\*|\\+|,|\\/|:|;|=|\\?|@|\\[|\\]" - , fileName = "example.svg" - , editorScroll = (0, 0) - , load = Loading - } - -loadContent : Cmd Msg -loadContent = - Http.get - { url = "assets/example.svg" - , expect = Http.expectString Load - } - -toggle : Mode -> Mode -toggle mode = - case mode of - Light -> Dark - - Dark -> Light - -emptySvg : String +module Main exposing (main) + +import View exposing (view) +import Types exposing (..) +import Browser exposing (document) +import Http +import File exposing (File) +import File.Download as Download +import File.Select as Select +import Regex +import Task + + +main : Program () Model Msg +main = + document + { init = \_ -> (init, loadContent) + , update = update + , view = view + , subscriptions = \_ -> Sub.none + } + + +update : Msg -> Model -> (Model, Cmd Msg) +update msg model = + case msg of + Update image -> + ({ model | image = image }, Cmd.none) + + Load res -> + (load model res, Cmd.none) + + Validation val -> + ({ model | status = val }, Cmd.none) + + ToggleDarkMode -> + ({ model | mode = toggle model.mode }, Cmd.none) + + Download -> + (model, Download.string model.fileName "image/svg+xml" model.image) + + Upload upl -> + upload model upl + + Scroll scroll -> + ({model | editorScroll = scroll}, Cmd.none) + +load : Model -> Result Http.Error String -> Model +load model res = + case res of + Ok svg -> + { model | image = svg, load = Loaded } + + Err _ -> + { model | load = Loaded } + +upload : Model -> Upload -> (Model, Cmd Msg) +upload model upl = + case upl of + Requested -> + (model, Select.file [ "image/svg+xml" ] (\file -> Upload (Selected file))) + + Selected file -> + ({ model | fileName = File.name file }, Task.perform Update (File.toString file)) + +init : Model +init = + { image = emptySvg + , status = Valid + , mode = Light + , uriEncoder = Maybe.withDefault Regex.never + <| Regex.fromString "!|#|\\$|%|&|'|\\(|\\)|\\*|\\+|,|\\/|:|;|=|\\?|@|\\[|\\]" + , fileName = "example.svg" + , editorScroll = (0, 0) + , load = Loading + } + +loadContent : Cmd Msg +loadContent = + Http.get + { url = "assets/example.svg" + , expect = Http.expectString Load + } + +toggle : Mode -> Mode +toggle mode = + case mode of + Light -> Dark + + Dark -> Light + +emptySvg : String emptySvg = "<svg> . . . </svg>" \ No newline at end of file
diff --git a/src/Types.elm b/src/Types.elm @@ -1,40 +1,40 @@ -module Types exposing (..) - -import Http -import File exposing (File) -import Regex exposing (Regex) - -type alias Model = - { image : String - , status : Status - , mode : Mode - , uriEncoder : Regex - , fileName : String - , editorScroll : (Int, Int) - , load : Load - } - -type Status - = Valid - | Invalid - -type Mode - = Light - | Dark - -type Load - = Loading - | Loaded - -type Upload - = Requested - | Selected File - -type Msg - = Update String - | Load (Result Http.Error String) - | Validation Status - | ToggleDarkMode - | Download - | Upload Upload +module Types exposing (..) + +import Http +import File exposing (File) +import Regex exposing (Regex) + +type alias Model = + { image : String + , status : Status + , mode : Mode + , uriEncoder : Regex + , fileName : String + , editorScroll : (Int, Int) + , load : Load + } + +type Status + = Valid + | Invalid + +type Mode + = Light + | Dark + +type Load + = Loading + | Loaded + +type Upload + = Requested + | Selected File + +type Msg + = Update String + | Load (Result Http.Error String) + | Validation Status + | ToggleDarkMode + | Download + | Upload Upload | Scroll (Int, Int) \ No newline at end of file
diff --git a/src/View.elm b/src/View.elm @@ -1,131 +1,131 @@ -module View exposing (view) - -import Types exposing (..) -import Editor exposing (editor) - -import Html exposing (Html, Attribute, div, img, button, a, text) -import Html.Events exposing (onClick, on) -import Html.Attributes exposing (id, class, src, href, target, rel, alt) -import Html.Lazy exposing (lazy) -import Browser exposing (Document) -import Json.Decode -import Regex exposing (Regex, Match, replace) - - -view : Model -> Document Msg -view model = - { title = "RawSvg" - , body = - case model.load of - Loading -> [] - - Loaded -> [ lazy container model ] - } - -container : Model -> Html Msg -container model = - div [ id "container", class (if valid model.status then "valid" else "error") ] - [ div [ id "title" ] - [ logo - , link [ href "https://github.com/GarkGarcia/RawSvg", id "github" ] - [ githubIcon ] - , link - [ href "https://github.com/GarkGarcia/RawSvg/blob/master/LICENSE" - , id "copyright" - , class "elmsh-comm" - , alt "License Information" - ] [ text "<!-- GarkGarcia (C) 2019 -->" ] - ] - , display model - , lazy editor model - ] - -display : Model -> Html Msg -display model = - div [ id "display", class (if darkMode model.mode then "dark" else "light") ] - [ img [ id "image", src (uri model), loaded model, alt "Picture Display" ] [] - , errorIcon - , button [ onClick Download, alt "Download" ] [ downloadIcon ] - , button [ onClick (Upload Requested), alt "Upload" ] [ uploadIcon ] - , button [ onClick ToggleDarkMode, alt "Toggle Dark Mode" ] [ bulbIcon model.mode ] - ] - -uri : Model -> String -uri model = - "data:image/svg+xml;utf8," ++ (replace model.uriEncoder percentEscape model.image) - -percentEscape : Match -> String -percentEscape m = - case m.match of - "!" -> "%21" - "#" -> "%23" - "$" -> "%24" - "%" -> "%25" - "&" -> "%26" - "'" -> "%27" - "(" -> "%28" - ")" -> "%29" - "*" -> "%2A" - "+" -> "%2B" - "," -> "%2C" - "/" -> "%2F" - ":" -> "%3A" - ";" -> "%3B" - "=" -> "%3D" - "?" -> "%3F" - "@" -> "%40" - "[" -> "%5B" - "]" -> "%5D" - str -> str - -onError : msg -> Attribute msg -onError f = - on "error" (Json.Decode.succeed f) - -onLoad : msg -> Attribute msg -onLoad f = - on "load" (Json.Decode.succeed f) - -loaded : Model -> Attribute Msg -loaded model = - if valid model.status then onError (Validation Invalid) else onLoad (Validation Valid) - -link : List (Attribute Msg) -> List (Html Msg) -> Html Msg -link attrs content = - a ([ target "_blank", rel "noopener noreferrer" ] ++ attrs) - content - -valid : Status -> Bool -valid status = - case status of - Valid -> True - - Invalid -> False - -darkMode : Mode -> Bool -darkMode mode = - case mode of - Light -> False - - Dark -> True - -logo : Html Msg -logo = img [ src "assets/logo.svg", alt "RawSvg" ] [] - -downloadIcon : Html Msg -downloadIcon = img [ src "assets/download.svg", alt "Download" ] [] - -uploadIcon : Html Msg -uploadIcon = img [ src "assets/upload.svg", alt "Upload" ] [] - -bulbIcon : Mode -> Html Msg -bulbIcon mode = - img [ src (if darkMode mode then "assets/bulb-on.svg" else "assets/bulb-off.svg") - , alt "Toggle Dark Mode" - ] [] - -errorIcon : Html Msg -errorIcon = img [ id "error", src "assets/error.svg", alt "Something Went Wrong" ] [] - -githubIcon : Html Msg +module View exposing (view) + +import Types exposing (..) +import Editor exposing (editor) + +import Html exposing (Html, Attribute, div, img, button, a, text) +import Html.Events exposing (onClick, on) +import Html.Attributes exposing (id, class, src, href, target, rel, alt) +import Html.Lazy exposing (lazy) +import Browser exposing (Document) +import Json.Decode +import Regex exposing (Regex, Match, replace) + + +view : Model -> Document Msg +view model = + { title = "RawSvg" + , body = + case model.load of + Loading -> [] + + Loaded -> [ lazy container model ] + } + +container : Model -> Html Msg +container model = + div [ id "container", class (if valid model.status then "valid" else "error") ] + [ div [ id "title" ] + [ logo + , link [ href "https://github.com/GarkGarcia/RawSvg", id "github" ] + [ githubIcon ] + , link + [ href "https://github.com/GarkGarcia/RawSvg/blob/master/LICENSE" + , id "copyright" + , class "elmsh-comm" + , alt "License Information" + ] [ text "<!-- GarkGarcia (C) 2019 -->" ] + ] + , display model + , lazy editor model + ] + +display : Model -> Html Msg +display model = + div [ id "display", class (if darkMode model.mode then "dark" else "light") ] + [ img [ id "image", src (uri model), loaded model, alt "Picture Display" ] [] + , errorIcon + , button [ onClick Download, alt "Download" ] [ downloadIcon ] + , button [ onClick (Upload Requested), alt "Upload" ] [ uploadIcon ] + , button [ onClick ToggleDarkMode, alt "Toggle Dark Mode" ] [ bulbIcon model.mode ] + ] + +uri : Model -> String +uri model = + "data:image/svg+xml;utf8," ++ (replace model.uriEncoder percentEscape model.image) + +percentEscape : Match -> String +percentEscape m = + case m.match of + "!" -> "%21" + "#" -> "%23" + "$" -> "%24" + "%" -> "%25" + "&" -> "%26" + "'" -> "%27" + "(" -> "%28" + ")" -> "%29" + "*" -> "%2A" + "+" -> "%2B" + "," -> "%2C" + "/" -> "%2F" + ":" -> "%3A" + ";" -> "%3B" + "=" -> "%3D" + "?" -> "%3F" + "@" -> "%40" + "[" -> "%5B" + "]" -> "%5D" + str -> str + +onError : msg -> Attribute msg +onError f = + on "error" (Json.Decode.succeed f) + +onLoad : msg -> Attribute msg +onLoad f = + on "load" (Json.Decode.succeed f) + +loaded : Model -> Attribute Msg +loaded model = + if valid model.status then onError (Validation Invalid) else onLoad (Validation Valid) + +link : List (Attribute Msg) -> List (Html Msg) -> Html Msg +link attrs content = + a ([ target "_blank", rel "noopener noreferrer" ] ++ attrs) + content + +valid : Status -> Bool +valid status = + case status of + Valid -> True + + Invalid -> False + +darkMode : Mode -> Bool +darkMode mode = + case mode of + Light -> False + + Dark -> True + +logo : Html Msg +logo = img [ src "assets/logo.svg", alt "RawSvg" ] [] + +downloadIcon : Html Msg +downloadIcon = img [ src "assets/download.svg", alt "Download" ] [] + +uploadIcon : Html Msg +uploadIcon = img [ src "assets/upload.svg", alt "Upload" ] [] + +bulbIcon : Mode -> Html Msg +bulbIcon mode = + img [ src (if darkMode mode then "assets/bulb-on.svg" else "assets/bulb-off.svg") + , alt "Toggle Dark Mode" + ] [] + +errorIcon : Html Msg +errorIcon = img [ id "error", src "assets/error.svg", alt "Something Went Wrong" ] [] + +githubIcon : Html Msg githubIcon = img [ src "assets/github.svg", alt "Github Repository" ] [] \ No newline at end of file