From 1b332605205b63e221a31fa8bff50f6f7eba04bf Mon Sep 17 00:00:00 2001 From: HF Date: Tue, 15 Jun 2021 20:58:02 +0200 Subject: [PATCH] add markdown parser beginning and test site --- .babelrc | 2 +- i18n/template-ssr.pot | 136 +- i18n/template.pot | 564 ++++---- package-lock.json | 1572 +++++++++++++++++++++ package.json | 2 + src/core/Markdown.js | 207 +++ utils/markdown-test/.babelrc | 28 + utils/markdown-test/index.html | 19 + utils/markdown-test/mdtest.js | 24 + utils/markdown-test/script.js | 2 + utils/markdown-test/script.js.LICENSE.txt | 1 + utils/markdown-test/webpack.config.js | 60 + webpack.config.client.babel.js | 2 +- webpack.config.web.babel.js | 2 +- 14 files changed, 2268 insertions(+), 353 deletions(-) create mode 100644 src/core/Markdown.js create mode 100644 utils/markdown-test/.babelrc create mode 100644 utils/markdown-test/index.html create mode 100644 utils/markdown-test/mdtest.js create mode 100644 utils/markdown-test/script.js create mode 100644 utils/markdown-test/script.js.LICENSE.txt create mode 100644 utils/markdown-test/webpack.config.js diff --git a/.babelrc b/.babelrc index 851082a..ed55a7c 100644 --- a/.babelrc +++ b/.babelrc @@ -12,7 +12,7 @@ "@babel/react" ], "plugins": [ - "@babel/transform-flow-strip-types", + "@babel/plugin-transform-flow-strip-types", ["@babel/plugin-proposal-decorators", { "legacy": true }], "@babel/plugin-proposal-function-sent", "@babel/plugin-proposal-export-namespace-from", diff --git a/i18n/template-ssr.pot b/i18n/template-ssr.pot index 13eab7a..7b1c1ae 100644 --- a/i18n/template-ssr.pot +++ b/i18n/template-ssr.pot @@ -57,6 +57,14 @@ msgstr "" msgid "Stop flooding." msgstr "" +#: src/ssr-components/Main.jsx:73 +msgid "PixelPlanet.fun" +msgstr "" + +#: src/ssr-components/Main.jsx:75 +msgid "Place color pixels on an map styled canvas with other players online" +msgstr "" + #: src/ssr-components/Globe.jsx:44 msgid "Double click on globe to go back." msgstr "" @@ -73,14 +81,6 @@ msgstr "" msgid "A 3D globe of our whole map" msgstr "" -#: src/ssr-components/Main.jsx:73 -msgid "PixelPlanet.fun" -msgstr "" - -#: src/ssr-components/Main.jsx:75 -msgid "Place color pixels on an map styled canvas with other players online" -msgstr "" - #: src/routes/reset_password.js:58 msgid "You sent an empty password or invalid data :(" msgstr "" @@ -290,6 +290,66 @@ msgstr "" msgid "Server error occured" msgstr "" +#: src/routes/api/auth/verify.js:25 +#: src/routes/api/auth/verify.js:32 +msgid "Mail verification" +msgstr "" + +#: src/routes/api/auth/verify.js:26 +msgid "You are now verified :)" +msgstr "" + +#: src/routes/api/auth/verify.js:32 +msgid "" +"Your mail verification code is invalid or already expired :(, please " +"request a new one." +msgstr "" + +#: src/routes/api/auth/logout.js:13 +msgid "You are not even logged in." +msgstr "" + +#: src/routes/api/auth/register.js:31 +msgid "E-Mail already in use." +msgstr "" + +#: src/routes/api/auth/register.js:33 +msgid "Username already in use." +msgstr "" + +#: src/routes/api/auth/register.js:61 +msgid "Failed to create new user :(" +msgstr "" + +#: src/routes/api/auth/register.js:77 +msgid "Failed to establish session after register :(" +msgstr "" + +#: src/routes/api/auth/change_mail.js:41 +#: src/routes/api/auth/change_passwd.js:37 +#: src/routes/api/auth/delete_account.js:38 +msgid "You are not authenticated." +msgstr "" + +#: src/routes/api/auth/change_mail.js:50 +#: src/routes/api/auth/change_passwd.js:46 +#: src/routes/api/auth/delete_account.js:48 +msgid "Incorrect password!" +msgstr "" + +#: src/ssr-components/RedirectionPage.jsx:20 +msgid "You will be automatically redirected after 15s" +msgstr "" + +#: src/ssr-components/RedirectionPage.jsx:21 +#, javascript-format +msgid "Or ${ clickHere } to go back to pixelplanet" +msgstr "" + +#: src/ssr-components/RedirectionPage.jsx:25 +msgid "PixelPlanet.fun Accounts" +msgstr "" + #: src/canvasesDesc.js:19 msgid "Earth" msgstr "" @@ -346,64 +406,4 @@ msgstr "" #: src/canvasesDesc.js:34 msgid "Black and White canvas" -msgstr "" - -#: src/routes/api/auth/logout.js:13 -msgid "You are not even logged in." -msgstr "" - -#: src/routes/api/auth/register.js:31 -msgid "E-Mail already in use." -msgstr "" - -#: src/routes/api/auth/register.js:33 -msgid "Username already in use." -msgstr "" - -#: src/routes/api/auth/register.js:61 -msgid "Failed to create new user :(" -msgstr "" - -#: src/routes/api/auth/register.js:77 -msgid "Failed to establish session after register :(" -msgstr "" - -#: src/routes/api/auth/verify.js:25 -#: src/routes/api/auth/verify.js:32 -msgid "Mail verification" -msgstr "" - -#: src/routes/api/auth/verify.js:26 -msgid "You are now verified :)" -msgstr "" - -#: src/routes/api/auth/verify.js:32 -msgid "" -"Your mail verification code is invalid or already expired :(, please " -"request a new one." -msgstr "" - -#: src/routes/api/auth/change_mail.js:41 -#: src/routes/api/auth/change_passwd.js:37 -#: src/routes/api/auth/delete_account.js:38 -msgid "You are not authenticated." -msgstr "" - -#: src/routes/api/auth/change_mail.js:50 -#: src/routes/api/auth/change_passwd.js:46 -#: src/routes/api/auth/delete_account.js:48 -msgid "Incorrect password!" -msgstr "" - -#: src/ssr-components/RedirectionPage.jsx:20 -msgid "You will be automatically redirected after 15s" -msgstr "" - -#: src/ssr-components/RedirectionPage.jsx:21 -#, javascript-format -msgid "Or ${ clickHere } to go back to pixelplanet" -msgstr "" - -#: src/ssr-components/RedirectionPage.jsx:25 -msgid "PixelPlanet.fun Accounts" msgstr "" \ No newline at end of file diff --git a/i18n/template.pot b/i18n/template.pot index 1b78039..d0d61ae 100644 --- a/i18n/template.pot +++ b/i18n/template.pot @@ -3,6 +3,11 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" +#: src/components/CoordinatesBox.jsx:29 +#: src/controls/keypress.js:59 +msgid "Copied!" +msgstr "" + #: src/ui/placePixel.js:53 msgid "Error :(" msgstr "" @@ -96,11 +101,6 @@ msgstr "" msgid "Error ${ retCode }" msgstr "" -#: src/components/CoordinatesBox.jsx:29 -#: src/controls/keypress.js:59 -msgid "Copied!" -msgstr "" - #: src/actions/index.js:627 msgid "Register New Account" msgstr "" @@ -117,11 +117,6 @@ msgstr "" msgid "Look at past Canvases" msgstr "" -#: src/components/Converter.jsx:615 -#: src/components/CoordinatesBox.jsx:32 -msgid "Copy to Clipboard" -msgstr "" - #: src/components/OnlineBox.jsx:30 msgid "User online" msgstr "" @@ -130,6 +125,11 @@ msgstr "" msgid "Pixels placed" msgstr "" +#: src/components/Converter.jsx:615 +#: src/components/CoordinatesBox.jsx:32 +msgid "Copy to Clipboard" +msgstr "" + #: src/components/Admintools.jsx:224 #: src/components/ModalRoot.jsx:69 #: src/components/Window.jsx:138 @@ -141,6 +141,11 @@ msgstr "" msgid "Restore" msgstr "" +#: src/components/buttons/CanvasSwitchButton.jsx:23 +#: src/components/windows/index.js:22 +msgid "Canvas Selection" +msgstr "" + #: src/components/buttons/ChatButton.jsx:92 msgid "Close Chat" msgstr "" @@ -149,11 +154,6 @@ msgstr "" msgid "Open Chat" msgstr "" -#: src/components/buttons/CanvasSwitchButton.jsx:23 -#: src/components/windows/index.js:22 -msgid "Canvas Selection" -msgstr "" - #: src/components/buttons/ExpandMenuButton.jsx:23 msgid "Close Menu" msgstr "" @@ -215,15 +215,29 @@ msgstr "" msgid "Resize" msgstr "" -#: src/components/buttons/GlobeButton.jsx:35 -msgid "Globe View" -msgstr "" - #: src/components/buttons/HelpButton.jsx:23 #: src/components/windows/index.js:16 msgid "Help" msgstr "" +#: src/components/buttons/SettingsButton.jsx:23 +#: src/components/windows/index.js:17 +msgid "Settings" +msgstr "" + +#: src/components/buttons/LogInButton.jsx:23 +#: src/components/windows/index.js:18 +msgid "User Area" +msgstr "" + +#: src/components/buttons/DownloadButton.jsx:37 +msgid "Make Screenshot" +msgstr "" + +#: src/components/buttons/GlobeButton.jsx:35 +msgid "Globe View" +msgstr "" + #: src/components/buttons/PalselButton.jsx:31 msgid "Close Palette" msgstr "" @@ -232,18 +246,8 @@ msgstr "" msgid "Open Palette" msgstr "" -#: src/components/buttons/LogInButton.jsx:23 -#: src/components/windows/index.js:18 -msgid "User Area" -msgstr "" - -#: src/components/buttons/SettingsButton.jsx:23 -#: src/components/windows/index.js:17 -msgid "Settings" -msgstr "" - -#: src/components/buttons/DownloadButton.jsx:37 -msgid "Make Screenshot" +#: src/components/contextmenus/ChannelContextMenu.jsx:55 +msgid "Mute" msgstr "" #: src/components/contextmenus/UserContextMenu.jsx:53 @@ -258,10 +262,6 @@ msgstr "" msgid "Block" msgstr "" -#: src/components/contextmenus/ChannelContextMenu.jsx:55 -msgid "Mute" -msgstr "" - #: src/components/windows/index.js:19 msgid "Registration" msgstr "" @@ -327,6 +327,68 @@ msgstr "" msgid "Send" msgstr "" +#: src/components/windows/UserArea.jsx:27 +msgid "Profile" +msgstr "" + +#: src/components/windows/UserArea.jsx:30 +msgid "Ranking" +msgstr "" + +#: src/components/windows/UserArea.jsx:33 +msgid "Converter" +msgstr "" + +#: src/components/windows/UserArea.jsx:39 +msgid "Admintools" +msgstr "" + +#: src/components/windows/UserArea.jsx:39 +msgid "Modtools" +msgstr "" + +#: src/components/windows/UserArea.jsx:40 +msgid "Loading..." +msgstr "" + +#: src/components/windows/UserArea.jsx:47 +msgid "Consider joining us on Guilded:" +msgstr "" + +#: src/components/windows/Register.jsx:81 +msgid "Register new account here" +msgstr "" + +#: src/components/windows/Register.jsx:92 +msgid "Name" +msgstr "" + +#: src/components/windows/ForgotPassword.jsx:82 +#: src/components/windows/Register.jsx:100 +msgid "Email" +msgstr "" + +#: src/components/ChangeMail.jsx:80 +#: src/components/DeleteAccount.jsx:62 +#: src/components/LogInForm.jsx:83 +#: src/components/windows/Register.jsx:108 +msgid "Password" +msgstr "" + +#: src/components/windows/Register.jsx:116 +msgid "Confirm Password" +msgstr "" + +#: src/components/Admintools.jsx:311 +#: src/components/Admintools.jsx:392 +#: src/components/Admintools.jsx:466 +#: src/components/Admintools.jsx:510 +#: src/components/Admintools.jsx:594 +#: src/components/windows/ForgotPassword.jsx:86 +#: src/components/windows/Register.jsx:119 +msgid "Submit" +msgstr "" + #: src/components/windows/Help.jsx:35 msgid "your IP" msgstr "" @@ -493,68 +555,6 @@ msgstr "" msgid "Partners:" msgstr "" -#: src/components/windows/Register.jsx:81 -msgid "Register new account here" -msgstr "" - -#: src/components/windows/Register.jsx:92 -msgid "Name" -msgstr "" - -#: src/components/windows/ForgotPassword.jsx:82 -#: src/components/windows/Register.jsx:100 -msgid "Email" -msgstr "" - -#: src/components/ChangeMail.jsx:80 -#: src/components/DeleteAccount.jsx:62 -#: src/components/LogInForm.jsx:83 -#: src/components/windows/Register.jsx:108 -msgid "Password" -msgstr "" - -#: src/components/windows/Register.jsx:116 -msgid "Confirm Password" -msgstr "" - -#: src/components/Admintools.jsx:311 -#: src/components/Admintools.jsx:392 -#: src/components/Admintools.jsx:466 -#: src/components/Admintools.jsx:510 -#: src/components/Admintools.jsx:594 -#: src/components/windows/ForgotPassword.jsx:86 -#: src/components/windows/Register.jsx:119 -msgid "Submit" -msgstr "" - -#: src/components/windows/UserArea.jsx:27 -msgid "Profile" -msgstr "" - -#: src/components/windows/UserArea.jsx:30 -msgid "Ranking" -msgstr "" - -#: src/components/windows/UserArea.jsx:33 -msgid "Converter" -msgstr "" - -#: src/components/windows/UserArea.jsx:39 -msgid "Admintools" -msgstr "" - -#: src/components/windows/UserArea.jsx:39 -msgid "Modtools" -msgstr "" - -#: src/components/windows/UserArea.jsx:40 -msgid "Loading..." -msgstr "" - -#: src/components/windows/UserArea.jsx:47 -msgid "Consider joining us on Guilded:" -msgstr "" - #: src/components/windows/Settings.jsx:127 msgid "Show Grid" msgstr "" @@ -642,6 +642,25 @@ msgstr "" msgid "Select Language" msgstr "" +#: src/components/windows/CanvasSelect.jsx:32 +msgid "" +"Select the canvas you want to use. Every canvas is unique and has " +"different palettes, cooldown and requirements. Archive of closed canvases " +"can be accessed here:" +msgstr "" + +#: src/components/windows/CanvasSelect.jsx:40 +msgid "Archive" +msgstr "" + +#: src/components/windows/ForgotPassword.jsx:60 +msgid "Sent you a mail with instructions to reset your password." +msgstr "" + +#: src/components/windows/ForgotPassword.jsx:71 +msgid "Enter your mail address and we will send you a new password:" +msgstr "" + #: src/components/windows/Archive.jsx:20 msgid "" "While we tend to not delete canvases, some canvases are started for fun or " @@ -691,25 +710,6 @@ msgstr "" msgid "You must be logged in to chat" msgstr "" -#: src/components/windows/CanvasSelect.jsx:32 -msgid "" -"Select the canvas you want to use. Every canvas is unique and has " -"different palettes, cooldown and requirements. Archive of closed canvases " -"can be accessed here:" -msgstr "" - -#: src/components/windows/CanvasSelect.jsx:40 -msgid "Archive" -msgstr "" - -#: src/components/windows/ForgotPassword.jsx:60 -msgid "Sent you a mail with instructions to reset your password." -msgstr "" - -#: src/components/windows/ForgotPassword.jsx:71 -msgid "Enter your mail address and we will send you a new password:" -msgstr "" - #: src/utils/validation.js:18 msgid "Email can't be empty." msgstr "" @@ -758,158 +758,6 @@ msgstr "" msgid "Password must be shorter than 60 characters." msgstr "" -#: src/components/LogInArea.jsx:21 -msgid "Login to access more features and stats." -msgstr "" - -#: src/components/LogInArea.jsx:23 -msgid "Login with Name or Mail:" -msgstr "" - -#: src/components/LogInArea.jsx:30 -msgid "I forgot my Password." -msgstr "" - -#: src/components/LogInArea.jsx:31 -msgid "or login with:" -msgstr "" - -#: src/components/LogInArea.jsx:72 -msgid "or register here:" -msgstr "" - -#: src/components/LogInArea.jsx:79 -msgid "Register" -msgstr "" - -#: src/components/Rankings.jsx:28 -msgid "Total" -msgstr "" - -#: src/components/Rankings.jsx:36 -msgid "Daily" -msgstr "" - -#: src/components/Rankings.jsx:40 -msgid "Ranking updates every 5 min. Daily rankings get reset at midnight UTC." -msgstr "" - -#: src/components/Converter.jsx:280 -msgid "Choose Canvas" -msgstr "" - -#: src/components/Converter.jsx:306 -msgid "Palette Download" -msgstr "" - -#: src/components/Converter.jsx:308 -#, javascript-format -msgid "Palette for ${ gimpLink }" -msgstr "" - -#: src/components/Converter.jsx:326 -#, javascript-format -msgid "Credit for the Palette of the Moon goes to ${ starhouseLink }." -msgstr "" - -#: src/components/Converter.jsx:329 -msgid "Image Converter" -msgstr "" - -#: src/components/Converter.jsx:330 -msgid "Convert an image to canvas colors" -msgstr "" - -#: src/components/Converter.jsx:341 -msgid "Choose Strategy" -msgstr "" - -#: src/components/Converter.jsx:368 -msgid "Choose Color Mode" -msgstr "" - -#: src/components/Converter.jsx:406 -msgid "Add Grid (uncheck if you need a 1:1 template)" -msgstr "" - -#: src/components/Converter.jsx:431 -#: src/components/Converter.jsx:447 -msgid "Offset" -msgstr "" - -#: src/components/Converter.jsx:477 -msgid "Scale Image" -msgstr "" - -#: src/components/Converter.jsx:489 -msgid "Width" -msgstr "" - -#: src/components/Converter.jsx:519 -msgid "Height" -msgstr "" - -#: src/components/Converter.jsx:557 -msgid "Keep Ratio" -msgstr "" - -#: src/components/Converter.jsx:570 -msgid "Anti Aliasing" -msgstr "" - -#: src/components/Converter.jsx:584 -msgid "Reset" -msgstr "" - -#: src/components/Converter.jsx:603 -msgid "Download Template" -msgstr "" - -#: src/components/UserAreaContent.jsx:63 -msgid "Todays Placed Pixels" -msgstr "" - -#: src/components/UserAreaContent.jsx:67 -msgid "Daily Rank" -msgstr "" - -#: src/components/UserAreaContent.jsx:72 -msgid "Placed Pixels" -msgstr "" - -#: src/components/UserAreaContent.jsx:76 -msgid "Total Rank" -msgstr "" - -#: src/components/UserAreaContent.jsx:81 -#, javascript-format -msgid "Your name is: ${ name }" -msgstr "" - -#: src/components/UserAreaContent.jsx:87 -msgid "Log out" -msgstr "" - -#: src/components/UserAreaContent.jsx:93 -msgid "Change Username" -msgstr "" - -#: src/components/UserAreaContent.jsx:102 -msgid "Change Mail" -msgstr "" - -#: src/components/UserAreaContent.jsx:110 -msgid "Change Password" -msgstr "" - -#: src/components/UserAreaContent.jsx:116 -msgid "Delete Account" -msgstr "" - -#: src/components/UserAreaContent.jsx:123 -msgid "Social Settings" -msgstr "" - #: src/components/Admintools.jsx:184 msgid "Build image on canvas." msgstr "" @@ -988,6 +836,75 @@ msgstr "" msgid "User Name" msgstr "" +#: src/components/LogInArea.jsx:21 +msgid "Login to access more features and stats." +msgstr "" + +#: src/components/LogInArea.jsx:23 +msgid "Login with Name or Mail:" +msgstr "" + +#: src/components/LogInArea.jsx:30 +msgid "I forgot my Password." +msgstr "" + +#: src/components/LogInArea.jsx:31 +msgid "or login with:" +msgstr "" + +#: src/components/LogInArea.jsx:72 +msgid "or register here:" +msgstr "" + +#: src/components/LogInArea.jsx:79 +msgid "Register" +msgstr "" + +#: src/components/UserAreaContent.jsx:63 +msgid "Todays Placed Pixels" +msgstr "" + +#: src/components/UserAreaContent.jsx:67 +msgid "Daily Rank" +msgstr "" + +#: src/components/UserAreaContent.jsx:72 +msgid "Placed Pixels" +msgstr "" + +#: src/components/UserAreaContent.jsx:76 +msgid "Total Rank" +msgstr "" + +#: src/components/UserAreaContent.jsx:81 +#, javascript-format +msgid "Your name is: ${ name }" +msgstr "" + +#: src/components/UserAreaContent.jsx:87 +msgid "Log out" +msgstr "" + +#: src/components/UserAreaContent.jsx:93 +msgid "Change Username" +msgstr "" + +#: src/components/UserAreaContent.jsx:102 +msgid "Change Mail" +msgstr "" + +#: src/components/UserAreaContent.jsx:110 +msgid "Change Password" +msgstr "" + +#: src/components/UserAreaContent.jsx:116 +msgid "Delete Account" +msgstr "" + +#: src/components/UserAreaContent.jsx:123 +msgid "Social Settings" +msgstr "" + #: src/components/ChangeMail.jsx:91 #: src/components/ChangeName.jsx:68 #: src/components/ChangePassword.jsx:110 @@ -995,6 +912,18 @@ msgstr "" msgid "Save" msgstr "" +#: src/components/Rankings.jsx:28 +msgid "Total" +msgstr "" + +#: src/components/Rankings.jsx:36 +msgid "Daily" +msgstr "" + +#: src/components/Rankings.jsx:40 +msgid "Ranking updates every 5 min. Daily rankings get reset at midnight UTC." +msgstr "" + #: src/components/CanvasItem.jsx:27 msgid "Cooldown" msgstr "" @@ -1024,6 +953,77 @@ msgstr "" msgid "Dimensions" msgstr "" +#: src/components/Converter.jsx:280 +msgid "Choose Canvas" +msgstr "" + +#: src/components/Converter.jsx:306 +msgid "Palette Download" +msgstr "" + +#: src/components/Converter.jsx:308 +#, javascript-format +msgid "Palette for ${ gimpLink }" +msgstr "" + +#: src/components/Converter.jsx:326 +#, javascript-format +msgid "Credit for the Palette of the Moon goes to ${ starhouseLink }." +msgstr "" + +#: src/components/Converter.jsx:329 +msgid "Image Converter" +msgstr "" + +#: src/components/Converter.jsx:330 +msgid "Convert an image to canvas colors" +msgstr "" + +#: src/components/Converter.jsx:341 +msgid "Choose Strategy" +msgstr "" + +#: src/components/Converter.jsx:368 +msgid "Choose Color Mode" +msgstr "" + +#: src/components/Converter.jsx:406 +msgid "Add Grid (uncheck if you need a 1:1 template)" +msgstr "" + +#: src/components/Converter.jsx:431 +#: src/components/Converter.jsx:447 +msgid "Offset" +msgstr "" + +#: src/components/Converter.jsx:477 +msgid "Scale Image" +msgstr "" + +#: src/components/Converter.jsx:489 +msgid "Width" +msgstr "" + +#: src/components/Converter.jsx:519 +msgid "Height" +msgstr "" + +#: src/components/Converter.jsx:557 +msgid "Keep Ratio" +msgstr "" + +#: src/components/Converter.jsx:570 +msgid "Anti Aliasing" +msgstr "" + +#: src/components/Converter.jsx:584 +msgid "Reset" +msgstr "" + +#: src/components/Converter.jsx:603 +msgid "Download Template" +msgstr "" + #: src/components/LogInForm.jsx:76 msgid "Name or Email" msgstr "" @@ -1046,16 +1046,6 @@ msgstr "" msgid "Click here to request a new verification mail." msgstr "" -#: src/components/ChangeMail.jsx:59 -msgid "" -"Changed Mail successfully. We sent you a verification mail, " -"please verify your new mail address." -msgstr "" - -#: src/components/ChangeMail.jsx:87 -msgid "New Mail" -msgstr "" - #: src/components/ChangePassword.jsx:22 msgid "Passwords do not match." msgstr "" @@ -1076,10 +1066,24 @@ msgstr "" msgid "Confirm New Password" msgstr "" +#: src/components/ChangeMail.jsx:59 +msgid "" +"Changed Mail successfully. We sent you a verification mail, " +"please verify your new mail address." +msgstr "" + +#: src/components/ChangeMail.jsx:87 +msgid "New Mail" +msgstr "" + #: src/components/ChangeName.jsx:64 msgid "New Username" msgstr "" +#: src/components/DeleteAccount.jsx:66 +msgid "Yes, Delete My Account!" +msgstr "" + #: src/components/SocialSettings.jsx:38 msgid "Block all Private Messages" msgstr "" @@ -1092,10 +1096,6 @@ msgstr "" msgid "You have no users blocked" msgstr "" -#: src/components/DeleteAccount.jsx:66 -msgid "Yes, Delete My Account!" -msgstr "" - #: src/components/windows/Help.jsx:15 #: src/components/windows/Settings.jsx:129 msgctxt "keybinds" diff --git a/package-lock.json b/package-lock.json index 0f1ae20..9a46cb5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,6 +4,31 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@babel/cli": { + "version": "7.14.3", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.14.3.tgz", + "integrity": "sha512-zU4JLvwk32ay1lhhyGfqiRUSPoltVDjhYkA3aQq8+Yby9z30s/EsFw1EPOHxWG9YZo2pAGfgdRNeHZQAYU5m9A==", + "dev": true, + "requires": { + "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents", + "chokidar": "^3.4.0", + "commander": "^4.0.1", + "convert-source-map": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.0.0", + "make-dir": "^2.1.0", + "slash": "^2.0.0", + "source-map": "^0.5.0" + }, + "dependencies": { + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + } + } + }, "@babel/code-frame": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", @@ -4072,6 +4097,124 @@ } } }, + "@nicolo-ribaudo/chokidar-2": { + "version": "2.1.8-no-fsevents", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.tgz", + "integrity": "sha512-+nb9vWloHNNMFHjGofEam3wopE3m1yuambrrd/fnPc+lFOMB9ROTqQlche9ByFWNkdNqfSgR/kkQtQ8DzEWt2w==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "optional": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "optional": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "optional": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, "@nodelib/fs.scandir": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", @@ -4492,6 +4635,140 @@ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "optional": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "optional": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "optional": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "optional": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, "append-field": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", @@ -4538,6 +4815,27 @@ "@babel/runtime-corejs3": "^7.10.2" } }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true, + "optional": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true, + "optional": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true, + "optional": true + }, "array-find-index": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", @@ -4575,6 +4873,13 @@ "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", "dev": true }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true, + "optional": true + }, "array.prototype.flat": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", @@ -4707,6 +5012,13 @@ } } }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true, + "optional": true + }, "ast-types-flow": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", @@ -4724,6 +5036,20 @@ "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==" }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true, + "optional": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "optional": true + }, "axe-core": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.0.2.tgz", @@ -4975,6 +5301,66 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "optional": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "optional": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "optional": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, "base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -5008,6 +5394,13 @@ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "optional": true + }, "bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -5251,6 +5644,24 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "optional": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, "cache-content-type": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz", @@ -5333,6 +5744,63 @@ "supports-color": "^2.0.0" } }, + "chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.3.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + }, + "dependencies": { + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "optional": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "optional": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "optional": true, + "requires": { + "picomatch": "^2.2.1" + } + } + } + }, "chownr": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", @@ -5353,6 +5821,31 @@ "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", "dev": true }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "optional": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "optional": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, "clean-css": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.1.1.tgz", @@ -5509,6 +6002,17 @@ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "optional": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, "color": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz", @@ -5582,6 +6086,31 @@ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, + "commonmark": { + "version": "0.29.3", + "resolved": "https://registry.npmjs.org/commonmark/-/commonmark-0.29.3.tgz", + "integrity": "sha512-fvt/NdOFKaL2gyhltSy6BC4LxbbxbnPxBMl923ittqO/JBM0wQHaoYZliE4tp26cRxX/ZZtRsJlZzQrVdUkXAA==", + "requires": { + "entities": "~2.0", + "mdurl": "~1.0.1", + "minimist": ">=1.2.2", + "string.prototype.repeat": "^0.2.0" + }, + "dependencies": { + "entities": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", + "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==" + } + } + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true, + "optional": true + }, "compressible": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", @@ -5740,6 +6269,13 @@ } } }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true, + "optional": true + }, "copy-webpack-plugin": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-8.0.0.tgz", @@ -6140,6 +6676,13 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true, + "optional": true + }, "decompress-response": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", @@ -6182,6 +6725,51 @@ "object-keys": "^1.0.12" } }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "optional": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "optional": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", @@ -7190,6 +7778,61 @@ "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", "dev": true }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "optional": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "optional": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true, + "optional": true + } + } + }, "expand-template": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", @@ -7311,6 +7954,100 @@ } } }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "optional": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "optional": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "optional": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "optional": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "optional": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -7481,6 +8218,13 @@ "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true, + "optional": true + }, "foreachasync": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz", @@ -7496,6 +8240,16 @@ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "optional": true, + "requires": { + "map-cache": "^0.2.2" + } + }, "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -7520,11 +8274,24 @@ "integrity": "sha512-fcSa+wyTqZa46iWweI7/ZiUfegOZl0SG8+dltIwFXo7+zYU9J9kpS3NB6pZcSlJdhvIwp81Adx2XhZorncxiaA==", "dev": true }, + "fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "dev": true + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -7597,6 +8364,13 @@ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", "dev": true }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true, + "optional": true + }, "gettext-parser": { "version": "4.0.0-alpha.0", "resolved": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-4.0.0-alpha.0.tgz", @@ -7800,6 +8574,63 @@ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "optional": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "optional": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -8149,11 +8980,50 @@ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true, + "optional": true + }, "is-callable": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", @@ -8177,18 +9047,68 @@ "has": "^1.0.3" } }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "is-date-object": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", "dev": true }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "optional": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "optional": true + } + } + }, "is-es2016-keyword": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-es2016-keyword/-/is-es2016-keyword-1.0.0.tgz", "integrity": "sha1-9uVOEQxeT40mXmnS7Q6vjPX0dxg=", "dev": true }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true, + "optional": true + }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -8921,12 +9841,29 @@ "p-defer": "^1.0.0" } }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true, + "optional": true + }, "map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", "dev": true }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "optional": true, + "requires": { + "object-visit": "^1.0.0" + } + }, "matchmediaquery": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/matchmediaquery/-/matchmediaquery-0.3.1.tgz", @@ -8941,6 +9878,11 @@ "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", "dev": true }, + "mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -9095,6 +10037,29 @@ "yallist": "^4.0.0" } }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "optional": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "optional": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -9235,6 +10200,26 @@ "integrity": "sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ==", "dev": true }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "optional": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, "napi-build-utils": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", @@ -9540,6 +10525,40 @@ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "optional": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "optional": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "object-hash": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.1.1.tgz", @@ -9556,6 +10575,16 @@ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "optional": true, + "requires": { + "isobject": "^3.0.0" + } + }, "object.assign": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", @@ -9679,6 +10708,16 @@ "es-abstract": "^1.17.0-next.1" } }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "optional": true, + "requires": { + "isobject": "^3.0.1" + } + }, "object.values": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", @@ -9941,6 +10980,13 @@ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true, + "optional": true + }, "passport": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/passport/-/passport-0.4.1.tgz", @@ -10060,6 +11106,13 @@ } } }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true, + "optional": true + }, "path-exists": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", @@ -10198,6 +11251,13 @@ "integrity": "sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU=", "dev": true }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true, + "optional": true + }, "postcss": { "version": "8.2.8", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.8.tgz", @@ -10656,6 +11716,131 @@ "util-deprecate": "~1.0.1" } }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "optional": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "optional": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "optional": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "optional": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, "readline-sync": { "version": "1.4.10", "resolved": "https://registry.npmjs.org/readline-sync/-/readline-sync-1.4.10.tgz", @@ -10789,6 +11974,17 @@ "@babel/runtime": "^7.8.4" } }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "optional": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, "regexp.prototype.flags": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", @@ -10880,6 +12076,27 @@ } } }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true, + "optional": true + }, + "repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true, + "optional": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true, + "optional": true + }, "repeating": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", @@ -10952,6 +12169,13 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true, + "optional": true + }, "restore-cursor": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", @@ -10976,6 +12200,13 @@ } } }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true, + "optional": true + }, "retry-as-promised": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/retry-as-promised/-/retry-as-promised-3.2.0.tgz", @@ -11018,6 +12249,16 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "optional": true, + "requires": { + "ret": "~0.1.10" + } + }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -11184,6 +12425,31 @@ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "optional": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, "setprototypeof": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", @@ -11402,6 +12668,140 @@ } } }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "optional": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "optional": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true, + "optional": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "optional": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "optional": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "optional": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", @@ -11413,6 +12813,20 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "optional": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, "source-map-support": { "version": "0.5.19", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", @@ -11431,6 +12845,13 @@ } } }, + "source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "dev": true, + "optional": true + }, "spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", @@ -11463,6 +12884,16 @@ "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==", "dev": true }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "optional": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, "sprintf-js": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", @@ -11495,6 +12926,29 @@ "resolved": "https://registry.npmjs.org/startaudiocontext/-/startaudiocontext-1.2.1.tgz", "integrity": "sha1-RtLKtUYseRGArMciPju7wycshZU=" }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "optional": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "optional": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", @@ -11615,6 +13069,11 @@ } } }, + "string.prototype.repeat": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-0.2.0.tgz", + "integrity": "sha1-q6Nt4I3O5qWjN9SbLqHaGyj8Ds8=" + }, "string.prototype.trimend": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz", @@ -12162,6 +13621,41 @@ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "optional": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -12663,6 +14157,19 @@ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==" }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "optional": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, "uniq": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", @@ -12689,12 +14196,63 @@ "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", "dev": true }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "optional": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "optional": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "optional": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true, + "optional": true + } + } + }, "unzip-response": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", "dev": true }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "optional": true + }, "update-notifier": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", @@ -12752,6 +14310,13 @@ "punycode": "^2.1.0" } }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true, + "optional": true + }, "url-parse-lax": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", @@ -12766,6 +14331,13 @@ "resolved": "https://registry.npmjs.org/url-search-params-polyfill/-/url-search-params-polyfill-8.1.0.tgz", "integrity": "sha512-MRG3vzXyG20BJ2fox50/9ZRoe+2h3RM7DIudVD2u/GY9MtayO1Dkrna76IUOak+uoUPVWbyR0pHCzxctP/eDYQ==" }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true, + "optional": true + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", diff --git a/package.json b/package.json index d36e4db..441e2d3 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "bluebird": "^3.5.0", "body-parser": "^1.17.2", "bufferutil": "^4.0.3", + "commonmark": "^0.29.3", "compression": "^1.7.3", "connect-redis": "^5.1.0", "cookie": "^0.4.1", @@ -86,6 +87,7 @@ "ws": "^7.4.4" }, "devDependencies": { + "@babel/cli": "^7.14.3", "@babel/core": "^7.13.10", "@babel/node": "^7.13.10", "@babel/plugin-proposal-class-properties": "^7.13.0", diff --git a/src/core/Markdown.js b/src/core/Markdown.js new file mode 100644 index 0000000..44aedb2 --- /dev/null +++ b/src/core/Markdown.js @@ -0,0 +1,207 @@ +/* + * Markdown parsing + * + * we do not support all markdown, but do additionally parse extra + * stuff like pixelplanet coords and usernames and bare links + * + * @flow + */ + +export default class MarkdownParser { + static nonWithespace = /\S|$/; + static expArticle = /(?:\n|^)\s*?(?=\#)|(?<=(?:\n|^)\s*?(?=\#).*?)\n/; + + constructor(opt) { + this.parseLinks = opt && opt.parseLinks || false; + this.tabWidth = opt && opt.tabWidth || 4; + this.newlineBreaksArticles = opt && opt.newlineBreaksArticles || true; + } + + parseText(text: string, level = 0, start = 0) { + let mdArray = []; + let iter = start; + while (iter < text.length) { + const [aMdArray, newIter] = this.parseArticle(text, iter, level); + iter = newIter; + mdArray = mdArray.concat(aMdArray); + // either heading hit or article end + if (text[iter] === '#') { + let subLvl = 0; + for (;iter + subLvl <= text.length && text[iter + subLvl] === '#'; subLvl += 1) {} + if (subLvl <= level || level === 6) { + // end of article + // encountered title with same level or lower + break; + } else { + // child article + let lineEnd = text.indexOf('\n', iter); + if (lineEnd === -1) lineEnd = text.length; + const title = text.slice(iter + subLvl, lineEnd).trimLeft(); + subLvl = Math.min(subLvl, 6); + const [subMdArray, newIter] = this.parseText( + text, subLvl, lineEnd + 1, + ); + mdArray.push(['a', subLvl, title, subMdArray]); + iter = newIter; + } + } else { + break; + } + } + + return [mdArray, iter]; + } + + stoppingCondition(text: string, iter: number) { + const chr = text[iter]; + if (chr === '\n' + || chr === '#' + || (chr === '`' && text[iter + 1] === '`' && text[iter + 2] === '`') + ) { + return true; + } + return false; + } + + /* + * parses Articles (contains paragraphs, code-blocks, numeration, etc.) + * returns when encountering heading of level or lower (iter is at # position) + * or heading-cancel with three spaces (iter is past newlines) + */ + parseArticle(text: string, start: number, level = 0) { + let iter = start; + const mdArray = []; + let paraStart = iter; + + while (true) { + if (iter >= text.length) { + if (paraStart < text.length) { + mdArray.push(['p', text.slice(paraStart)]); + } + break; + } + // beginning of line + const paraLineStart = iter; + iter = this.skipSpaces(text, iter); + if (stoppingCondition(text, iter)) { + const chr = text[iter]; + // encountered something - save paragraph + if (paraLineStart - 1 > paraStart) { + mdArray.push(['p', text.slice(paraStart, paraLineStart - 1)]); + } + if (chr === '\n') { + iter = this.skipSpaces(text, iter + 1); + if (text[iter] === '\n') { + if (level > 0 && this.newlineBreaksArticles) { + break; + } + iter += 1; + } + } else if (chr === '#') { + break; + } else if (chr === '`') { + // code block + const [cbArray, newIter] = this.parseCodeBlock(text, iter + 3); + mdArray.push(cbArray); + iter = newIter; + } + paraStart = iter; + continue; + } + // rest of line + for (;iter < text.length && text[iter] !== '\n'; iter += 1) {} + iter += 1; + } + + return [mdArray, iter]; + } + + /* + * parse Code Block + * start is first character after the initializing ``` + * we just parse till the ending occures + */ + parseCodeBlock(text: string, start: number) { + const cbStart = this.skipSpaces(text, start, true); + let iter = cbStart; + while (true) { + if (iter >= text.length) { + return [['cb', text.slice(cbStart)], iter]; + } + iter = this.skipSpaces(text, iter, true); + if (text[iter] === '`' + && text[iter + 1] === '`' + && text[iter + 2] === '`' + ) { + const nextIter = this.skipSpaces(text, iter + 3, true); + return [['cb', text.slice(cbStart, iter)], nextIter]; + } + for (;iter < text.length && text[iter] !== '\n'; iter += 1) {} + } + } + + skipSpaces(text: string, start: number, skipNewlines = false) { + let iter = start; + for (;iter < text.length; iter += 1) { + const char = text[iter]; + if (char !== ' ' && char !== '\t' && (!skipNewlines || char !== '\n')) { + break; + } + } + return iter; + } + + parseIndents(text: string) { + const lines = text.split('\n'); + const indents = []; + const { tabWidth } = this; + + /* + * Get indentation of lines + * @param text: string of text to parse + * @return [indents, lines]: + * indents: Array of normalized numerical indents + * lines: Array of trimmed lines + */ + for (let i = 0; i < lines.length; i += 1) { + const line = lines[i]; + let indent = 0; + for (let c = 0; c < line.length; c += 1) { + const chr = line[c]; + if (chr === '\t') { + indent += this.tabWidth; + } else if (chr === ' ') { + indent += 1; + } else { + break; + } + } + lines[i] = line.trim(); + indents.push(indent); + } + + // normalize + let min = indents[0]; + let max = indents[0]; + for (let m = 0; m < indents.length; m += 1) { + const indent = indents[m]; + if (indent < min) min = indent; + if (indent > max) max = indent; + } + let cnt = 0; + console.log(min, max); + for (let n = min; n <= max; n += 1) { + let available = false; + for (let c = 0; c < indents.length; c += 1) { + if (indents[c] === n) { + if (!available) available = true; + indents[c] = cnt; + } + } + if (available) cnt += 1; + } + + console.log(lines); + console.log(indents); + } +} diff --git a/utils/markdown-test/.babelrc b/utils/markdown-test/.babelrc new file mode 100644 index 0000000..cac6c9f --- /dev/null +++ b/utils/markdown-test/.babelrc @@ -0,0 +1,28 @@ +{ + "presets": [ + [ + "@babel/preset-env", + { + "targets": { + "firefox": "60" + } + } + ], + "@babel/typescript", + "@babel/react" + ], + "plugins": [ + "@babel/plugin-transform-flow-strip-types", + ["@babel/plugin-proposal-decorators", { "legacy": true }], + "@babel/plugin-proposal-function-sent", + "@babel/plugin-proposal-export-namespace-from", + "@babel/plugin-proposal-numeric-separator", + "@babel/plugin-proposal-throw-expressions", + ["@babel/plugin-proposal-class-properties", { "loose": true }], + "@babel/proposal-object-rest-spread", + "@babel/transform-react-constant-elements", + "@babel/transform-react-inline-elements", + "transform-react-remove-prop-types", + "transform-react-pure-class-to-function", + ] +} diff --git a/utils/markdown-test/index.html b/utils/markdown-test/index.html new file mode 100644 index 0000000..b8a6f73 --- /dev/null +++ b/utils/markdown-test/index.html @@ -0,0 +1,19 @@ + + + + + + + Markdown Parser Test + + + + + + + +
+

Parse-time:

+ + + diff --git a/utils/markdown-test/mdtest.js b/utils/markdown-test/mdtest.js new file mode 100644 index 0000000..6e31ce7 --- /dev/null +++ b/utils/markdown-test/mdtest.js @@ -0,0 +1,24 @@ + +import MarkdownParser from '../../src/core/Markdown'; +import { Parser } from 'commonmark'; + +document.addEventListener('DOMContentLoaded', () => { + const reader = new Parser({smart: true}); + const a = new MarkdownParser(); + + const input = document.getElementById('input'); + const output = document.getElementById('output'); + const time = document.getElementById('time'); + + input.addEventListener('input', () => { + let startt = Date.now(); + const [arr] = a.parseText(input.value); + time.innerHTML = Date.now() - startt + 'ms'; + startt = Date.now(); + const parsed = reader.parse(input.value); + time.innerHTML += ' / commonmark: ' + (Date.now() - startt) + 'ms'; + console.log(parsed); + output.value = JSON.stringify(arr, null, 2); + }); +}); + diff --git a/utils/markdown-test/script.js b/utils/markdown-test/script.js new file mode 100644 index 0000000..1cfd848 --- /dev/null +++ b/utils/markdown-test/script.js @@ -0,0 +1,2 @@ +/*! For license information please see script.js.LICENSE.txt */ +(()=>{var t={742:function(t,e,r){"use strict";var i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.decodeHTML=e.decodeHTMLStrict=e.decodeXML=void 0;var n=i(r(504)),s=i(r(807)),a=i(r(789)),o=i(r(497));function l(t){var e=Object.keys(t).join("|"),r=u(t),i=new RegExp("&(?:"+(e+="|#[xX][\\da-fA-F]+|#\\d+")+");","g");return function(t){return String(t).replace(i,r)}}e.decodeXML=l(a.default),e.decodeHTMLStrict=l(n.default);var c=function(t,e){return t=55296&&t<=57343||t>1114111)return"�";t in n.default&&(t=n.default[t]);var e="";return t>65535&&(t-=65536,e+=String.fromCharCode(t>>>10&1023|55296),t=56320|1023&t),e+String.fromCharCode(t)}},79:function(t,e,r){"use strict";var i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.escape=e.encodeHTML=e.encodeXML=void 0;var n=l(i(r(789)).default),s=c(n);e.encodeXML=h(n,s);var a=l(i(r(504)).default),o=c(a);function l(t){return Object.keys(t).sort().reduce((function(e,r){return e[t[r]]="&"+r+";",e}),{})}function c(t){for(var e=[],r=[],i=0,n=Object.keys(t);i{"use strict";r(742),r(79),r(79);var i=r(742);Object.defineProperty(e,"p1",{enumerable:!0,get:function(){return i.decodeHTML}})},618:t=>{"use strict";var e={};function r(t,i,n){var s,a,o,l,c,u="";for("string"!=typeof i&&(n=i,i=r.defaultChars),void 0===n&&(n=!0),c=function(t){var r,i,n=e[t];if(n)return n;for(n=e[t]=[],r=0;r<128;r++)i=String.fromCharCode(r),/^[0-9a-z]$/i.test(i)?n.push(i):n.push("%"+("0"+r.toString(16).toUpperCase()).slice(-2));for(r=0;r=55296&&o<=57343){if(o>=55296&&o<=56319&&s+1=56320&&l<=57343){u+=encodeURIComponent(t[s]+t[s+1]),s++;continue}u+="%EF%BF%BD"}else u+=encodeURIComponent(t[s]);return u}r.defaultChars=";/?:@&=+$,-_.!~*'()#",r.componentChars="-_.!~*'()",t.exports=r},38:()=>{String.prototype.repeat||function(){"use strict";var t=function(){try{var t={},e=Object.defineProperty,r=e(t,t,t)&&e}catch(t){}return r}(),e=function(t){if(null==this)throw TypeError();var e=String(this),r=t?Number(t):0;if(r!=r&&(r=0),r<0||r==1/0)throw RangeError();for(var i="";r;)r%2==1&&(i+=e),r>1&&(e+=e),r>>=1;return i};t?t(String.prototype,"repeat",{value:e,configurable:!0,writable:!0}):String.prototype.repeat=e}()},380:t=>{"use strict";t.exports=JSON.parse('{"0":65533,"128":8364,"130":8218,"131":402,"132":8222,"133":8230,"134":8224,"135":8225,"136":710,"137":8240,"138":352,"139":8249,"140":338,"142":381,"145":8216,"146":8217,"147":8220,"148":8221,"149":8226,"150":8211,"151":8212,"152":732,"153":8482,"154":353,"155":8250,"156":339,"158":382,"159":376}')},504:t=>{"use strict";t.exports=JSON.parse('{"Aacute":"Á","aacute":"á","Abreve":"Ă","abreve":"ă","ac":"∾","acd":"∿","acE":"∾̳","Acirc":"Â","acirc":"â","acute":"´","Acy":"А","acy":"а","AElig":"Æ","aelig":"æ","af":"⁡","Afr":"𝔄","afr":"𝔞","Agrave":"À","agrave":"à","alefsym":"ℵ","aleph":"ℵ","Alpha":"Α","alpha":"α","Amacr":"Ā","amacr":"ā","amalg":"⨿","amp":"&","AMP":"&","andand":"⩕","And":"⩓","and":"∧","andd":"⩜","andslope":"⩘","andv":"⩚","ang":"∠","ange":"⦤","angle":"∠","angmsdaa":"⦨","angmsdab":"⦩","angmsdac":"⦪","angmsdad":"⦫","angmsdae":"⦬","angmsdaf":"⦭","angmsdag":"⦮","angmsdah":"⦯","angmsd":"∡","angrt":"∟","angrtvb":"⊾","angrtvbd":"⦝","angsph":"∢","angst":"Å","angzarr":"⍼","Aogon":"Ą","aogon":"ą","Aopf":"𝔸","aopf":"𝕒","apacir":"⩯","ap":"≈","apE":"⩰","ape":"≊","apid":"≋","apos":"\'","ApplyFunction":"⁡","approx":"≈","approxeq":"≊","Aring":"Å","aring":"å","Ascr":"𝒜","ascr":"𝒶","Assign":"≔","ast":"*","asymp":"≈","asympeq":"≍","Atilde":"Ã","atilde":"ã","Auml":"Ä","auml":"ä","awconint":"∳","awint":"⨑","backcong":"≌","backepsilon":"϶","backprime":"‵","backsim":"∽","backsimeq":"⋍","Backslash":"∖","Barv":"⫧","barvee":"⊽","barwed":"⌅","Barwed":"⌆","barwedge":"⌅","bbrk":"⎵","bbrktbrk":"⎶","bcong":"≌","Bcy":"Б","bcy":"б","bdquo":"„","becaus":"∵","because":"∵","Because":"∵","bemptyv":"⦰","bepsi":"϶","bernou":"ℬ","Bernoullis":"ℬ","Beta":"Β","beta":"β","beth":"ℶ","between":"≬","Bfr":"𝔅","bfr":"𝔟","bigcap":"⋂","bigcirc":"◯","bigcup":"⋃","bigodot":"⨀","bigoplus":"⨁","bigotimes":"⨂","bigsqcup":"⨆","bigstar":"★","bigtriangledown":"▽","bigtriangleup":"△","biguplus":"⨄","bigvee":"⋁","bigwedge":"⋀","bkarow":"⤍","blacklozenge":"⧫","blacksquare":"▪","blacktriangle":"▴","blacktriangledown":"▾","blacktriangleleft":"◂","blacktriangleright":"▸","blank":"␣","blk12":"▒","blk14":"░","blk34":"▓","block":"█","bne":"=⃥","bnequiv":"≡⃥","bNot":"⫭","bnot":"⌐","Bopf":"𝔹","bopf":"𝕓","bot":"⊥","bottom":"⊥","bowtie":"⋈","boxbox":"⧉","boxdl":"┐","boxdL":"╕","boxDl":"╖","boxDL":"╗","boxdr":"┌","boxdR":"╒","boxDr":"╓","boxDR":"╔","boxh":"─","boxH":"═","boxhd":"┬","boxHd":"╤","boxhD":"╥","boxHD":"╦","boxhu":"┴","boxHu":"╧","boxhU":"╨","boxHU":"╩","boxminus":"⊟","boxplus":"⊞","boxtimes":"⊠","boxul":"┘","boxuL":"╛","boxUl":"╜","boxUL":"╝","boxur":"└","boxuR":"╘","boxUr":"╙","boxUR":"╚","boxv":"│","boxV":"║","boxvh":"┼","boxvH":"╪","boxVh":"╫","boxVH":"╬","boxvl":"┤","boxvL":"╡","boxVl":"╢","boxVL":"╣","boxvr":"├","boxvR":"╞","boxVr":"╟","boxVR":"╠","bprime":"‵","breve":"˘","Breve":"˘","brvbar":"¦","bscr":"𝒷","Bscr":"ℬ","bsemi":"⁏","bsim":"∽","bsime":"⋍","bsolb":"⧅","bsol":"\\\\","bsolhsub":"⟈","bull":"•","bullet":"•","bump":"≎","bumpE":"⪮","bumpe":"≏","Bumpeq":"≎","bumpeq":"≏","Cacute":"Ć","cacute":"ć","capand":"⩄","capbrcup":"⩉","capcap":"⩋","cap":"∩","Cap":"⋒","capcup":"⩇","capdot":"⩀","CapitalDifferentialD":"ⅅ","caps":"∩︀","caret":"⁁","caron":"ˇ","Cayleys":"ℭ","ccaps":"⩍","Ccaron":"Č","ccaron":"č","Ccedil":"Ç","ccedil":"ç","Ccirc":"Ĉ","ccirc":"ĉ","Cconint":"∰","ccups":"⩌","ccupssm":"⩐","Cdot":"Ċ","cdot":"ċ","cedil":"¸","Cedilla":"¸","cemptyv":"⦲","cent":"¢","centerdot":"·","CenterDot":"·","cfr":"𝔠","Cfr":"ℭ","CHcy":"Ч","chcy":"ч","check":"✓","checkmark":"✓","Chi":"Χ","chi":"χ","circ":"ˆ","circeq":"≗","circlearrowleft":"↺","circlearrowright":"↻","circledast":"⊛","circledcirc":"⊚","circleddash":"⊝","CircleDot":"⊙","circledR":"®","circledS":"Ⓢ","CircleMinus":"⊖","CirclePlus":"⊕","CircleTimes":"⊗","cir":"○","cirE":"⧃","cire":"≗","cirfnint":"⨐","cirmid":"⫯","cirscir":"⧂","ClockwiseContourIntegral":"∲","CloseCurlyDoubleQuote":"”","CloseCurlyQuote":"’","clubs":"♣","clubsuit":"♣","colon":":","Colon":"∷","Colone":"⩴","colone":"≔","coloneq":"≔","comma":",","commat":"@","comp":"∁","compfn":"∘","complement":"∁","complexes":"ℂ","cong":"≅","congdot":"⩭","Congruent":"≡","conint":"∮","Conint":"∯","ContourIntegral":"∮","copf":"𝕔","Copf":"ℂ","coprod":"∐","Coproduct":"∐","copy":"©","COPY":"©","copysr":"℗","CounterClockwiseContourIntegral":"∳","crarr":"↵","cross":"✗","Cross":"⨯","Cscr":"𝒞","cscr":"𝒸","csub":"⫏","csube":"⫑","csup":"⫐","csupe":"⫒","ctdot":"⋯","cudarrl":"⤸","cudarrr":"⤵","cuepr":"⋞","cuesc":"⋟","cularr":"↶","cularrp":"⤽","cupbrcap":"⩈","cupcap":"⩆","CupCap":"≍","cup":"∪","Cup":"⋓","cupcup":"⩊","cupdot":"⊍","cupor":"⩅","cups":"∪︀","curarr":"↷","curarrm":"⤼","curlyeqprec":"⋞","curlyeqsucc":"⋟","curlyvee":"⋎","curlywedge":"⋏","curren":"¤","curvearrowleft":"↶","curvearrowright":"↷","cuvee":"⋎","cuwed":"⋏","cwconint":"∲","cwint":"∱","cylcty":"⌭","dagger":"†","Dagger":"‡","daleth":"ℸ","darr":"↓","Darr":"↡","dArr":"⇓","dash":"‐","Dashv":"⫤","dashv":"⊣","dbkarow":"⤏","dblac":"˝","Dcaron":"Ď","dcaron":"ď","Dcy":"Д","dcy":"д","ddagger":"‡","ddarr":"⇊","DD":"ⅅ","dd":"ⅆ","DDotrahd":"⤑","ddotseq":"⩷","deg":"°","Del":"∇","Delta":"Δ","delta":"δ","demptyv":"⦱","dfisht":"⥿","Dfr":"𝔇","dfr":"𝔡","dHar":"⥥","dharl":"⇃","dharr":"⇂","DiacriticalAcute":"´","DiacriticalDot":"˙","DiacriticalDoubleAcute":"˝","DiacriticalGrave":"`","DiacriticalTilde":"˜","diam":"⋄","diamond":"⋄","Diamond":"⋄","diamondsuit":"♦","diams":"♦","die":"¨","DifferentialD":"ⅆ","digamma":"ϝ","disin":"⋲","div":"÷","divide":"÷","divideontimes":"⋇","divonx":"⋇","DJcy":"Ђ","djcy":"ђ","dlcorn":"⌞","dlcrop":"⌍","dollar":"$","Dopf":"𝔻","dopf":"𝕕","Dot":"¨","dot":"˙","DotDot":"⃜","doteq":"≐","doteqdot":"≑","DotEqual":"≐","dotminus":"∸","dotplus":"∔","dotsquare":"⊡","doublebarwedge":"⌆","DoubleContourIntegral":"∯","DoubleDot":"¨","DoubleDownArrow":"⇓","DoubleLeftArrow":"⇐","DoubleLeftRightArrow":"⇔","DoubleLeftTee":"⫤","DoubleLongLeftArrow":"⟸","DoubleLongLeftRightArrow":"⟺","DoubleLongRightArrow":"⟹","DoubleRightArrow":"⇒","DoubleRightTee":"⊨","DoubleUpArrow":"⇑","DoubleUpDownArrow":"⇕","DoubleVerticalBar":"∥","DownArrowBar":"⤓","downarrow":"↓","DownArrow":"↓","Downarrow":"⇓","DownArrowUpArrow":"⇵","DownBreve":"̑","downdownarrows":"⇊","downharpoonleft":"⇃","downharpoonright":"⇂","DownLeftRightVector":"⥐","DownLeftTeeVector":"⥞","DownLeftVectorBar":"⥖","DownLeftVector":"↽","DownRightTeeVector":"⥟","DownRightVectorBar":"⥗","DownRightVector":"⇁","DownTeeArrow":"↧","DownTee":"⊤","drbkarow":"⤐","drcorn":"⌟","drcrop":"⌌","Dscr":"𝒟","dscr":"𝒹","DScy":"Ѕ","dscy":"ѕ","dsol":"⧶","Dstrok":"Đ","dstrok":"đ","dtdot":"⋱","dtri":"▿","dtrif":"▾","duarr":"⇵","duhar":"⥯","dwangle":"⦦","DZcy":"Џ","dzcy":"џ","dzigrarr":"⟿","Eacute":"É","eacute":"é","easter":"⩮","Ecaron":"Ě","ecaron":"ě","Ecirc":"Ê","ecirc":"ê","ecir":"≖","ecolon":"≕","Ecy":"Э","ecy":"э","eDDot":"⩷","Edot":"Ė","edot":"ė","eDot":"≑","ee":"ⅇ","efDot":"≒","Efr":"𝔈","efr":"𝔢","eg":"⪚","Egrave":"È","egrave":"è","egs":"⪖","egsdot":"⪘","el":"⪙","Element":"∈","elinters":"⏧","ell":"ℓ","els":"⪕","elsdot":"⪗","Emacr":"Ē","emacr":"ē","empty":"∅","emptyset":"∅","EmptySmallSquare":"◻","emptyv":"∅","EmptyVerySmallSquare":"▫","emsp13":" ","emsp14":" ","emsp":" ","ENG":"Ŋ","eng":"ŋ","ensp":" ","Eogon":"Ę","eogon":"ę","Eopf":"𝔼","eopf":"𝕖","epar":"⋕","eparsl":"⧣","eplus":"⩱","epsi":"ε","Epsilon":"Ε","epsilon":"ε","epsiv":"ϵ","eqcirc":"≖","eqcolon":"≕","eqsim":"≂","eqslantgtr":"⪖","eqslantless":"⪕","Equal":"⩵","equals":"=","EqualTilde":"≂","equest":"≟","Equilibrium":"⇌","equiv":"≡","equivDD":"⩸","eqvparsl":"⧥","erarr":"⥱","erDot":"≓","escr":"ℯ","Escr":"ℰ","esdot":"≐","Esim":"⩳","esim":"≂","Eta":"Η","eta":"η","ETH":"Ð","eth":"ð","Euml":"Ë","euml":"ë","euro":"€","excl":"!","exist":"∃","Exists":"∃","expectation":"ℰ","exponentiale":"ⅇ","ExponentialE":"ⅇ","fallingdotseq":"≒","Fcy":"Ф","fcy":"ф","female":"♀","ffilig":"ffi","fflig":"ff","ffllig":"ffl","Ffr":"𝔉","ffr":"𝔣","filig":"fi","FilledSmallSquare":"◼","FilledVerySmallSquare":"▪","fjlig":"fj","flat":"♭","fllig":"fl","fltns":"▱","fnof":"ƒ","Fopf":"𝔽","fopf":"𝕗","forall":"∀","ForAll":"∀","fork":"⋔","forkv":"⫙","Fouriertrf":"ℱ","fpartint":"⨍","frac12":"½","frac13":"⅓","frac14":"¼","frac15":"⅕","frac16":"⅙","frac18":"⅛","frac23":"⅔","frac25":"⅖","frac34":"¾","frac35":"⅗","frac38":"⅜","frac45":"⅘","frac56":"⅚","frac58":"⅝","frac78":"⅞","frasl":"⁄","frown":"⌢","fscr":"𝒻","Fscr":"ℱ","gacute":"ǵ","Gamma":"Γ","gamma":"γ","Gammad":"Ϝ","gammad":"ϝ","gap":"⪆","Gbreve":"Ğ","gbreve":"ğ","Gcedil":"Ģ","Gcirc":"Ĝ","gcirc":"ĝ","Gcy":"Г","gcy":"г","Gdot":"Ġ","gdot":"ġ","ge":"≥","gE":"≧","gEl":"⪌","gel":"⋛","geq":"≥","geqq":"≧","geqslant":"⩾","gescc":"⪩","ges":"⩾","gesdot":"⪀","gesdoto":"⪂","gesdotol":"⪄","gesl":"⋛︀","gesles":"⪔","Gfr":"𝔊","gfr":"𝔤","gg":"≫","Gg":"⋙","ggg":"⋙","gimel":"ℷ","GJcy":"Ѓ","gjcy":"ѓ","gla":"⪥","gl":"≷","glE":"⪒","glj":"⪤","gnap":"⪊","gnapprox":"⪊","gne":"⪈","gnE":"≩","gneq":"⪈","gneqq":"≩","gnsim":"⋧","Gopf":"𝔾","gopf":"𝕘","grave":"`","GreaterEqual":"≥","GreaterEqualLess":"⋛","GreaterFullEqual":"≧","GreaterGreater":"⪢","GreaterLess":"≷","GreaterSlantEqual":"⩾","GreaterTilde":"≳","Gscr":"𝒢","gscr":"ℊ","gsim":"≳","gsime":"⪎","gsiml":"⪐","gtcc":"⪧","gtcir":"⩺","gt":">","GT":">","Gt":"≫","gtdot":"⋗","gtlPar":"⦕","gtquest":"⩼","gtrapprox":"⪆","gtrarr":"⥸","gtrdot":"⋗","gtreqless":"⋛","gtreqqless":"⪌","gtrless":"≷","gtrsim":"≳","gvertneqq":"≩︀","gvnE":"≩︀","Hacek":"ˇ","hairsp":" ","half":"½","hamilt":"ℋ","HARDcy":"Ъ","hardcy":"ъ","harrcir":"⥈","harr":"↔","hArr":"⇔","harrw":"↭","Hat":"^","hbar":"ℏ","Hcirc":"Ĥ","hcirc":"ĥ","hearts":"♥","heartsuit":"♥","hellip":"…","hercon":"⊹","hfr":"𝔥","Hfr":"ℌ","HilbertSpace":"ℋ","hksearow":"⤥","hkswarow":"⤦","hoarr":"⇿","homtht":"∻","hookleftarrow":"↩","hookrightarrow":"↪","hopf":"𝕙","Hopf":"ℍ","horbar":"―","HorizontalLine":"─","hscr":"𝒽","Hscr":"ℋ","hslash":"ℏ","Hstrok":"Ħ","hstrok":"ħ","HumpDownHump":"≎","HumpEqual":"≏","hybull":"⁃","hyphen":"‐","Iacute":"Í","iacute":"í","ic":"⁣","Icirc":"Î","icirc":"î","Icy":"И","icy":"и","Idot":"İ","IEcy":"Е","iecy":"е","iexcl":"¡","iff":"⇔","ifr":"𝔦","Ifr":"ℑ","Igrave":"Ì","igrave":"ì","ii":"ⅈ","iiiint":"⨌","iiint":"∭","iinfin":"⧜","iiota":"℩","IJlig":"IJ","ijlig":"ij","Imacr":"Ī","imacr":"ī","image":"ℑ","ImaginaryI":"ⅈ","imagline":"ℐ","imagpart":"ℑ","imath":"ı","Im":"ℑ","imof":"⊷","imped":"Ƶ","Implies":"⇒","incare":"℅","in":"∈","infin":"∞","infintie":"⧝","inodot":"ı","intcal":"⊺","int":"∫","Int":"∬","integers":"ℤ","Integral":"∫","intercal":"⊺","Intersection":"⋂","intlarhk":"⨗","intprod":"⨼","InvisibleComma":"⁣","InvisibleTimes":"⁢","IOcy":"Ё","iocy":"ё","Iogon":"Į","iogon":"į","Iopf":"𝕀","iopf":"𝕚","Iota":"Ι","iota":"ι","iprod":"⨼","iquest":"¿","iscr":"𝒾","Iscr":"ℐ","isin":"∈","isindot":"⋵","isinE":"⋹","isins":"⋴","isinsv":"⋳","isinv":"∈","it":"⁢","Itilde":"Ĩ","itilde":"ĩ","Iukcy":"І","iukcy":"і","Iuml":"Ï","iuml":"ï","Jcirc":"Ĵ","jcirc":"ĵ","Jcy":"Й","jcy":"й","Jfr":"𝔍","jfr":"𝔧","jmath":"ȷ","Jopf":"𝕁","jopf":"𝕛","Jscr":"𝒥","jscr":"𝒿","Jsercy":"Ј","jsercy":"ј","Jukcy":"Є","jukcy":"є","Kappa":"Κ","kappa":"κ","kappav":"ϰ","Kcedil":"Ķ","kcedil":"ķ","Kcy":"К","kcy":"к","Kfr":"𝔎","kfr":"𝔨","kgreen":"ĸ","KHcy":"Х","khcy":"х","KJcy":"Ќ","kjcy":"ќ","Kopf":"𝕂","kopf":"𝕜","Kscr":"𝒦","kscr":"𝓀","lAarr":"⇚","Lacute":"Ĺ","lacute":"ĺ","laemptyv":"⦴","lagran":"ℒ","Lambda":"Λ","lambda":"λ","lang":"⟨","Lang":"⟪","langd":"⦑","langle":"⟨","lap":"⪅","Laplacetrf":"ℒ","laquo":"«","larrb":"⇤","larrbfs":"⤟","larr":"←","Larr":"↞","lArr":"⇐","larrfs":"⤝","larrhk":"↩","larrlp":"↫","larrpl":"⤹","larrsim":"⥳","larrtl":"↢","latail":"⤙","lAtail":"⤛","lat":"⪫","late":"⪭","lates":"⪭︀","lbarr":"⤌","lBarr":"⤎","lbbrk":"❲","lbrace":"{","lbrack":"[","lbrke":"⦋","lbrksld":"⦏","lbrkslu":"⦍","Lcaron":"Ľ","lcaron":"ľ","Lcedil":"Ļ","lcedil":"ļ","lceil":"⌈","lcub":"{","Lcy":"Л","lcy":"л","ldca":"⤶","ldquo":"“","ldquor":"„","ldrdhar":"⥧","ldrushar":"⥋","ldsh":"↲","le":"≤","lE":"≦","LeftAngleBracket":"⟨","LeftArrowBar":"⇤","leftarrow":"←","LeftArrow":"←","Leftarrow":"⇐","LeftArrowRightArrow":"⇆","leftarrowtail":"↢","LeftCeiling":"⌈","LeftDoubleBracket":"⟦","LeftDownTeeVector":"⥡","LeftDownVectorBar":"⥙","LeftDownVector":"⇃","LeftFloor":"⌊","leftharpoondown":"↽","leftharpoonup":"↼","leftleftarrows":"⇇","leftrightarrow":"↔","LeftRightArrow":"↔","Leftrightarrow":"⇔","leftrightarrows":"⇆","leftrightharpoons":"⇋","leftrightsquigarrow":"↭","LeftRightVector":"⥎","LeftTeeArrow":"↤","LeftTee":"⊣","LeftTeeVector":"⥚","leftthreetimes":"⋋","LeftTriangleBar":"⧏","LeftTriangle":"⊲","LeftTriangleEqual":"⊴","LeftUpDownVector":"⥑","LeftUpTeeVector":"⥠","LeftUpVectorBar":"⥘","LeftUpVector":"↿","LeftVectorBar":"⥒","LeftVector":"↼","lEg":"⪋","leg":"⋚","leq":"≤","leqq":"≦","leqslant":"⩽","lescc":"⪨","les":"⩽","lesdot":"⩿","lesdoto":"⪁","lesdotor":"⪃","lesg":"⋚︀","lesges":"⪓","lessapprox":"⪅","lessdot":"⋖","lesseqgtr":"⋚","lesseqqgtr":"⪋","LessEqualGreater":"⋚","LessFullEqual":"≦","LessGreater":"≶","lessgtr":"≶","LessLess":"⪡","lesssim":"≲","LessSlantEqual":"⩽","LessTilde":"≲","lfisht":"⥼","lfloor":"⌊","Lfr":"𝔏","lfr":"𝔩","lg":"≶","lgE":"⪑","lHar":"⥢","lhard":"↽","lharu":"↼","lharul":"⥪","lhblk":"▄","LJcy":"Љ","ljcy":"љ","llarr":"⇇","ll":"≪","Ll":"⋘","llcorner":"⌞","Lleftarrow":"⇚","llhard":"⥫","lltri":"◺","Lmidot":"Ŀ","lmidot":"ŀ","lmoustache":"⎰","lmoust":"⎰","lnap":"⪉","lnapprox":"⪉","lne":"⪇","lnE":"≨","lneq":"⪇","lneqq":"≨","lnsim":"⋦","loang":"⟬","loarr":"⇽","lobrk":"⟦","longleftarrow":"⟵","LongLeftArrow":"⟵","Longleftarrow":"⟸","longleftrightarrow":"⟷","LongLeftRightArrow":"⟷","Longleftrightarrow":"⟺","longmapsto":"⟼","longrightarrow":"⟶","LongRightArrow":"⟶","Longrightarrow":"⟹","looparrowleft":"↫","looparrowright":"↬","lopar":"⦅","Lopf":"𝕃","lopf":"𝕝","loplus":"⨭","lotimes":"⨴","lowast":"∗","lowbar":"_","LowerLeftArrow":"↙","LowerRightArrow":"↘","loz":"◊","lozenge":"◊","lozf":"⧫","lpar":"(","lparlt":"⦓","lrarr":"⇆","lrcorner":"⌟","lrhar":"⇋","lrhard":"⥭","lrm":"‎","lrtri":"⊿","lsaquo":"‹","lscr":"𝓁","Lscr":"ℒ","lsh":"↰","Lsh":"↰","lsim":"≲","lsime":"⪍","lsimg":"⪏","lsqb":"[","lsquo":"‘","lsquor":"‚","Lstrok":"Ł","lstrok":"ł","ltcc":"⪦","ltcir":"⩹","lt":"<","LT":"<","Lt":"≪","ltdot":"⋖","lthree":"⋋","ltimes":"⋉","ltlarr":"⥶","ltquest":"⩻","ltri":"◃","ltrie":"⊴","ltrif":"◂","ltrPar":"⦖","lurdshar":"⥊","luruhar":"⥦","lvertneqq":"≨︀","lvnE":"≨︀","macr":"¯","male":"♂","malt":"✠","maltese":"✠","Map":"⤅","map":"↦","mapsto":"↦","mapstodown":"↧","mapstoleft":"↤","mapstoup":"↥","marker":"▮","mcomma":"⨩","Mcy":"М","mcy":"м","mdash":"—","mDDot":"∺","measuredangle":"∡","MediumSpace":" ","Mellintrf":"ℳ","Mfr":"𝔐","mfr":"𝔪","mho":"℧","micro":"µ","midast":"*","midcir":"⫰","mid":"∣","middot":"·","minusb":"⊟","minus":"−","minusd":"∸","minusdu":"⨪","MinusPlus":"∓","mlcp":"⫛","mldr":"…","mnplus":"∓","models":"⊧","Mopf":"𝕄","mopf":"𝕞","mp":"∓","mscr":"𝓂","Mscr":"ℳ","mstpos":"∾","Mu":"Μ","mu":"μ","multimap":"⊸","mumap":"⊸","nabla":"∇","Nacute":"Ń","nacute":"ń","nang":"∠⃒","nap":"≉","napE":"⩰̸","napid":"≋̸","napos":"ʼn","napprox":"≉","natural":"♮","naturals":"ℕ","natur":"♮","nbsp":" ","nbump":"≎̸","nbumpe":"≏̸","ncap":"⩃","Ncaron":"Ň","ncaron":"ň","Ncedil":"Ņ","ncedil":"ņ","ncong":"≇","ncongdot":"⩭̸","ncup":"⩂","Ncy":"Н","ncy":"н","ndash":"–","nearhk":"⤤","nearr":"↗","neArr":"⇗","nearrow":"↗","ne":"≠","nedot":"≐̸","NegativeMediumSpace":"​","NegativeThickSpace":"​","NegativeThinSpace":"​","NegativeVeryThinSpace":"​","nequiv":"≢","nesear":"⤨","nesim":"≂̸","NestedGreaterGreater":"≫","NestedLessLess":"≪","NewLine":"\\n","nexist":"∄","nexists":"∄","Nfr":"𝔑","nfr":"𝔫","ngE":"≧̸","nge":"≱","ngeq":"≱","ngeqq":"≧̸","ngeqslant":"⩾̸","nges":"⩾̸","nGg":"⋙̸","ngsim":"≵","nGt":"≫⃒","ngt":"≯","ngtr":"≯","nGtv":"≫̸","nharr":"↮","nhArr":"⇎","nhpar":"⫲","ni":"∋","nis":"⋼","nisd":"⋺","niv":"∋","NJcy":"Њ","njcy":"њ","nlarr":"↚","nlArr":"⇍","nldr":"‥","nlE":"≦̸","nle":"≰","nleftarrow":"↚","nLeftarrow":"⇍","nleftrightarrow":"↮","nLeftrightarrow":"⇎","nleq":"≰","nleqq":"≦̸","nleqslant":"⩽̸","nles":"⩽̸","nless":"≮","nLl":"⋘̸","nlsim":"≴","nLt":"≪⃒","nlt":"≮","nltri":"⋪","nltrie":"⋬","nLtv":"≪̸","nmid":"∤","NoBreak":"⁠","NonBreakingSpace":" ","nopf":"𝕟","Nopf":"ℕ","Not":"⫬","not":"¬","NotCongruent":"≢","NotCupCap":"≭","NotDoubleVerticalBar":"∦","NotElement":"∉","NotEqual":"≠","NotEqualTilde":"≂̸","NotExists":"∄","NotGreater":"≯","NotGreaterEqual":"≱","NotGreaterFullEqual":"≧̸","NotGreaterGreater":"≫̸","NotGreaterLess":"≹","NotGreaterSlantEqual":"⩾̸","NotGreaterTilde":"≵","NotHumpDownHump":"≎̸","NotHumpEqual":"≏̸","notin":"∉","notindot":"⋵̸","notinE":"⋹̸","notinva":"∉","notinvb":"⋷","notinvc":"⋶","NotLeftTriangleBar":"⧏̸","NotLeftTriangle":"⋪","NotLeftTriangleEqual":"⋬","NotLess":"≮","NotLessEqual":"≰","NotLessGreater":"≸","NotLessLess":"≪̸","NotLessSlantEqual":"⩽̸","NotLessTilde":"≴","NotNestedGreaterGreater":"⪢̸","NotNestedLessLess":"⪡̸","notni":"∌","notniva":"∌","notnivb":"⋾","notnivc":"⋽","NotPrecedes":"⊀","NotPrecedesEqual":"⪯̸","NotPrecedesSlantEqual":"⋠","NotReverseElement":"∌","NotRightTriangleBar":"⧐̸","NotRightTriangle":"⋫","NotRightTriangleEqual":"⋭","NotSquareSubset":"⊏̸","NotSquareSubsetEqual":"⋢","NotSquareSuperset":"⊐̸","NotSquareSupersetEqual":"⋣","NotSubset":"⊂⃒","NotSubsetEqual":"⊈","NotSucceeds":"⊁","NotSucceedsEqual":"⪰̸","NotSucceedsSlantEqual":"⋡","NotSucceedsTilde":"≿̸","NotSuperset":"⊃⃒","NotSupersetEqual":"⊉","NotTilde":"≁","NotTildeEqual":"≄","NotTildeFullEqual":"≇","NotTildeTilde":"≉","NotVerticalBar":"∤","nparallel":"∦","npar":"∦","nparsl":"⫽⃥","npart":"∂̸","npolint":"⨔","npr":"⊀","nprcue":"⋠","nprec":"⊀","npreceq":"⪯̸","npre":"⪯̸","nrarrc":"⤳̸","nrarr":"↛","nrArr":"⇏","nrarrw":"↝̸","nrightarrow":"↛","nRightarrow":"⇏","nrtri":"⋫","nrtrie":"⋭","nsc":"⊁","nsccue":"⋡","nsce":"⪰̸","Nscr":"𝒩","nscr":"𝓃","nshortmid":"∤","nshortparallel":"∦","nsim":"≁","nsime":"≄","nsimeq":"≄","nsmid":"∤","nspar":"∦","nsqsube":"⋢","nsqsupe":"⋣","nsub":"⊄","nsubE":"⫅̸","nsube":"⊈","nsubset":"⊂⃒","nsubseteq":"⊈","nsubseteqq":"⫅̸","nsucc":"⊁","nsucceq":"⪰̸","nsup":"⊅","nsupE":"⫆̸","nsupe":"⊉","nsupset":"⊃⃒","nsupseteq":"⊉","nsupseteqq":"⫆̸","ntgl":"≹","Ntilde":"Ñ","ntilde":"ñ","ntlg":"≸","ntriangleleft":"⋪","ntrianglelefteq":"⋬","ntriangleright":"⋫","ntrianglerighteq":"⋭","Nu":"Ν","nu":"ν","num":"#","numero":"№","numsp":" ","nvap":"≍⃒","nvdash":"⊬","nvDash":"⊭","nVdash":"⊮","nVDash":"⊯","nvge":"≥⃒","nvgt":">⃒","nvHarr":"⤄","nvinfin":"⧞","nvlArr":"⤂","nvle":"≤⃒","nvlt":"<⃒","nvltrie":"⊴⃒","nvrArr":"⤃","nvrtrie":"⊵⃒","nvsim":"∼⃒","nwarhk":"⤣","nwarr":"↖","nwArr":"⇖","nwarrow":"↖","nwnear":"⤧","Oacute":"Ó","oacute":"ó","oast":"⊛","Ocirc":"Ô","ocirc":"ô","ocir":"⊚","Ocy":"О","ocy":"о","odash":"⊝","Odblac":"Ő","odblac":"ő","odiv":"⨸","odot":"⊙","odsold":"⦼","OElig":"Œ","oelig":"œ","ofcir":"⦿","Ofr":"𝔒","ofr":"𝔬","ogon":"˛","Ograve":"Ò","ograve":"ò","ogt":"⧁","ohbar":"⦵","ohm":"Ω","oint":"∮","olarr":"↺","olcir":"⦾","olcross":"⦻","oline":"‾","olt":"⧀","Omacr":"Ō","omacr":"ō","Omega":"Ω","omega":"ω","Omicron":"Ο","omicron":"ο","omid":"⦶","ominus":"⊖","Oopf":"𝕆","oopf":"𝕠","opar":"⦷","OpenCurlyDoubleQuote":"“","OpenCurlyQuote":"‘","operp":"⦹","oplus":"⊕","orarr":"↻","Or":"⩔","or":"∨","ord":"⩝","order":"ℴ","orderof":"ℴ","ordf":"ª","ordm":"º","origof":"⊶","oror":"⩖","orslope":"⩗","orv":"⩛","oS":"Ⓢ","Oscr":"𝒪","oscr":"ℴ","Oslash":"Ø","oslash":"ø","osol":"⊘","Otilde":"Õ","otilde":"õ","otimesas":"⨶","Otimes":"⨷","otimes":"⊗","Ouml":"Ö","ouml":"ö","ovbar":"⌽","OverBar":"‾","OverBrace":"⏞","OverBracket":"⎴","OverParenthesis":"⏜","para":"¶","parallel":"∥","par":"∥","parsim":"⫳","parsl":"⫽","part":"∂","PartialD":"∂","Pcy":"П","pcy":"п","percnt":"%","period":".","permil":"‰","perp":"⊥","pertenk":"‱","Pfr":"𝔓","pfr":"𝔭","Phi":"Φ","phi":"φ","phiv":"ϕ","phmmat":"ℳ","phone":"☎","Pi":"Π","pi":"π","pitchfork":"⋔","piv":"ϖ","planck":"ℏ","planckh":"ℎ","plankv":"ℏ","plusacir":"⨣","plusb":"⊞","pluscir":"⨢","plus":"+","plusdo":"∔","plusdu":"⨥","pluse":"⩲","PlusMinus":"±","plusmn":"±","plussim":"⨦","plustwo":"⨧","pm":"±","Poincareplane":"ℌ","pointint":"⨕","popf":"𝕡","Popf":"ℙ","pound":"£","prap":"⪷","Pr":"⪻","pr":"≺","prcue":"≼","precapprox":"⪷","prec":"≺","preccurlyeq":"≼","Precedes":"≺","PrecedesEqual":"⪯","PrecedesSlantEqual":"≼","PrecedesTilde":"≾","preceq":"⪯","precnapprox":"⪹","precneqq":"⪵","precnsim":"⋨","pre":"⪯","prE":"⪳","precsim":"≾","prime":"′","Prime":"″","primes":"ℙ","prnap":"⪹","prnE":"⪵","prnsim":"⋨","prod":"∏","Product":"∏","profalar":"⌮","profline":"⌒","profsurf":"⌓","prop":"∝","Proportional":"∝","Proportion":"∷","propto":"∝","prsim":"≾","prurel":"⊰","Pscr":"𝒫","pscr":"𝓅","Psi":"Ψ","psi":"ψ","puncsp":" ","Qfr":"𝔔","qfr":"𝔮","qint":"⨌","qopf":"𝕢","Qopf":"ℚ","qprime":"⁗","Qscr":"𝒬","qscr":"𝓆","quaternions":"ℍ","quatint":"⨖","quest":"?","questeq":"≟","quot":"\\"","QUOT":"\\"","rAarr":"⇛","race":"∽̱","Racute":"Ŕ","racute":"ŕ","radic":"√","raemptyv":"⦳","rang":"⟩","Rang":"⟫","rangd":"⦒","range":"⦥","rangle":"⟩","raquo":"»","rarrap":"⥵","rarrb":"⇥","rarrbfs":"⤠","rarrc":"⤳","rarr":"→","Rarr":"↠","rArr":"⇒","rarrfs":"⤞","rarrhk":"↪","rarrlp":"↬","rarrpl":"⥅","rarrsim":"⥴","Rarrtl":"⤖","rarrtl":"↣","rarrw":"↝","ratail":"⤚","rAtail":"⤜","ratio":"∶","rationals":"ℚ","rbarr":"⤍","rBarr":"⤏","RBarr":"⤐","rbbrk":"❳","rbrace":"}","rbrack":"]","rbrke":"⦌","rbrksld":"⦎","rbrkslu":"⦐","Rcaron":"Ř","rcaron":"ř","Rcedil":"Ŗ","rcedil":"ŗ","rceil":"⌉","rcub":"}","Rcy":"Р","rcy":"р","rdca":"⤷","rdldhar":"⥩","rdquo":"”","rdquor":"”","rdsh":"↳","real":"ℜ","realine":"ℛ","realpart":"ℜ","reals":"ℝ","Re":"ℜ","rect":"▭","reg":"®","REG":"®","ReverseElement":"∋","ReverseEquilibrium":"⇋","ReverseUpEquilibrium":"⥯","rfisht":"⥽","rfloor":"⌋","rfr":"𝔯","Rfr":"ℜ","rHar":"⥤","rhard":"⇁","rharu":"⇀","rharul":"⥬","Rho":"Ρ","rho":"ρ","rhov":"ϱ","RightAngleBracket":"⟩","RightArrowBar":"⇥","rightarrow":"→","RightArrow":"→","Rightarrow":"⇒","RightArrowLeftArrow":"⇄","rightarrowtail":"↣","RightCeiling":"⌉","RightDoubleBracket":"⟧","RightDownTeeVector":"⥝","RightDownVectorBar":"⥕","RightDownVector":"⇂","RightFloor":"⌋","rightharpoondown":"⇁","rightharpoonup":"⇀","rightleftarrows":"⇄","rightleftharpoons":"⇌","rightrightarrows":"⇉","rightsquigarrow":"↝","RightTeeArrow":"↦","RightTee":"⊢","RightTeeVector":"⥛","rightthreetimes":"⋌","RightTriangleBar":"⧐","RightTriangle":"⊳","RightTriangleEqual":"⊵","RightUpDownVector":"⥏","RightUpTeeVector":"⥜","RightUpVectorBar":"⥔","RightUpVector":"↾","RightVectorBar":"⥓","RightVector":"⇀","ring":"˚","risingdotseq":"≓","rlarr":"⇄","rlhar":"⇌","rlm":"‏","rmoustache":"⎱","rmoust":"⎱","rnmid":"⫮","roang":"⟭","roarr":"⇾","robrk":"⟧","ropar":"⦆","ropf":"𝕣","Ropf":"ℝ","roplus":"⨮","rotimes":"⨵","RoundImplies":"⥰","rpar":")","rpargt":"⦔","rppolint":"⨒","rrarr":"⇉","Rrightarrow":"⇛","rsaquo":"›","rscr":"𝓇","Rscr":"ℛ","rsh":"↱","Rsh":"↱","rsqb":"]","rsquo":"’","rsquor":"’","rthree":"⋌","rtimes":"⋊","rtri":"▹","rtrie":"⊵","rtrif":"▸","rtriltri":"⧎","RuleDelayed":"⧴","ruluhar":"⥨","rx":"℞","Sacute":"Ś","sacute":"ś","sbquo":"‚","scap":"⪸","Scaron":"Š","scaron":"š","Sc":"⪼","sc":"≻","sccue":"≽","sce":"⪰","scE":"⪴","Scedil":"Ş","scedil":"ş","Scirc":"Ŝ","scirc":"ŝ","scnap":"⪺","scnE":"⪶","scnsim":"⋩","scpolint":"⨓","scsim":"≿","Scy":"С","scy":"с","sdotb":"⊡","sdot":"⋅","sdote":"⩦","searhk":"⤥","searr":"↘","seArr":"⇘","searrow":"↘","sect":"§","semi":";","seswar":"⤩","setminus":"∖","setmn":"∖","sext":"✶","Sfr":"𝔖","sfr":"𝔰","sfrown":"⌢","sharp":"♯","SHCHcy":"Щ","shchcy":"щ","SHcy":"Ш","shcy":"ш","ShortDownArrow":"↓","ShortLeftArrow":"←","shortmid":"∣","shortparallel":"∥","ShortRightArrow":"→","ShortUpArrow":"↑","shy":"­","Sigma":"Σ","sigma":"σ","sigmaf":"ς","sigmav":"ς","sim":"∼","simdot":"⩪","sime":"≃","simeq":"≃","simg":"⪞","simgE":"⪠","siml":"⪝","simlE":"⪟","simne":"≆","simplus":"⨤","simrarr":"⥲","slarr":"←","SmallCircle":"∘","smallsetminus":"∖","smashp":"⨳","smeparsl":"⧤","smid":"∣","smile":"⌣","smt":"⪪","smte":"⪬","smtes":"⪬︀","SOFTcy":"Ь","softcy":"ь","solbar":"⌿","solb":"⧄","sol":"/","Sopf":"𝕊","sopf":"𝕤","spades":"♠","spadesuit":"♠","spar":"∥","sqcap":"⊓","sqcaps":"⊓︀","sqcup":"⊔","sqcups":"⊔︀","Sqrt":"√","sqsub":"⊏","sqsube":"⊑","sqsubset":"⊏","sqsubseteq":"⊑","sqsup":"⊐","sqsupe":"⊒","sqsupset":"⊐","sqsupseteq":"⊒","square":"□","Square":"□","SquareIntersection":"⊓","SquareSubset":"⊏","SquareSubsetEqual":"⊑","SquareSuperset":"⊐","SquareSupersetEqual":"⊒","SquareUnion":"⊔","squarf":"▪","squ":"□","squf":"▪","srarr":"→","Sscr":"𝒮","sscr":"𝓈","ssetmn":"∖","ssmile":"⌣","sstarf":"⋆","Star":"⋆","star":"☆","starf":"★","straightepsilon":"ϵ","straightphi":"ϕ","strns":"¯","sub":"⊂","Sub":"⋐","subdot":"⪽","subE":"⫅","sube":"⊆","subedot":"⫃","submult":"⫁","subnE":"⫋","subne":"⊊","subplus":"⪿","subrarr":"⥹","subset":"⊂","Subset":"⋐","subseteq":"⊆","subseteqq":"⫅","SubsetEqual":"⊆","subsetneq":"⊊","subsetneqq":"⫋","subsim":"⫇","subsub":"⫕","subsup":"⫓","succapprox":"⪸","succ":"≻","succcurlyeq":"≽","Succeeds":"≻","SucceedsEqual":"⪰","SucceedsSlantEqual":"≽","SucceedsTilde":"≿","succeq":"⪰","succnapprox":"⪺","succneqq":"⪶","succnsim":"⋩","succsim":"≿","SuchThat":"∋","sum":"∑","Sum":"∑","sung":"♪","sup1":"¹","sup2":"²","sup3":"³","sup":"⊃","Sup":"⋑","supdot":"⪾","supdsub":"⫘","supE":"⫆","supe":"⊇","supedot":"⫄","Superset":"⊃","SupersetEqual":"⊇","suphsol":"⟉","suphsub":"⫗","suplarr":"⥻","supmult":"⫂","supnE":"⫌","supne":"⊋","supplus":"⫀","supset":"⊃","Supset":"⋑","supseteq":"⊇","supseteqq":"⫆","supsetneq":"⊋","supsetneqq":"⫌","supsim":"⫈","supsub":"⫔","supsup":"⫖","swarhk":"⤦","swarr":"↙","swArr":"⇙","swarrow":"↙","swnwar":"⤪","szlig":"ß","Tab":"\\t","target":"⌖","Tau":"Τ","tau":"τ","tbrk":"⎴","Tcaron":"Ť","tcaron":"ť","Tcedil":"Ţ","tcedil":"ţ","Tcy":"Т","tcy":"т","tdot":"⃛","telrec":"⌕","Tfr":"𝔗","tfr":"𝔱","there4":"∴","therefore":"∴","Therefore":"∴","Theta":"Θ","theta":"θ","thetasym":"ϑ","thetav":"ϑ","thickapprox":"≈","thicksim":"∼","ThickSpace":"  ","ThinSpace":" ","thinsp":" ","thkap":"≈","thksim":"∼","THORN":"Þ","thorn":"þ","tilde":"˜","Tilde":"∼","TildeEqual":"≃","TildeFullEqual":"≅","TildeTilde":"≈","timesbar":"⨱","timesb":"⊠","times":"×","timesd":"⨰","tint":"∭","toea":"⤨","topbot":"⌶","topcir":"⫱","top":"⊤","Topf":"𝕋","topf":"𝕥","topfork":"⫚","tosa":"⤩","tprime":"‴","trade":"™","TRADE":"™","triangle":"▵","triangledown":"▿","triangleleft":"◃","trianglelefteq":"⊴","triangleq":"≜","triangleright":"▹","trianglerighteq":"⊵","tridot":"◬","trie":"≜","triminus":"⨺","TripleDot":"⃛","triplus":"⨹","trisb":"⧍","tritime":"⨻","trpezium":"⏢","Tscr":"𝒯","tscr":"𝓉","TScy":"Ц","tscy":"ц","TSHcy":"Ћ","tshcy":"ћ","Tstrok":"Ŧ","tstrok":"ŧ","twixt":"≬","twoheadleftarrow":"↞","twoheadrightarrow":"↠","Uacute":"Ú","uacute":"ú","uarr":"↑","Uarr":"↟","uArr":"⇑","Uarrocir":"⥉","Ubrcy":"Ў","ubrcy":"ў","Ubreve":"Ŭ","ubreve":"ŭ","Ucirc":"Û","ucirc":"û","Ucy":"У","ucy":"у","udarr":"⇅","Udblac":"Ű","udblac":"ű","udhar":"⥮","ufisht":"⥾","Ufr":"𝔘","ufr":"𝔲","Ugrave":"Ù","ugrave":"ù","uHar":"⥣","uharl":"↿","uharr":"↾","uhblk":"▀","ulcorn":"⌜","ulcorner":"⌜","ulcrop":"⌏","ultri":"◸","Umacr":"Ū","umacr":"ū","uml":"¨","UnderBar":"_","UnderBrace":"⏟","UnderBracket":"⎵","UnderParenthesis":"⏝","Union":"⋃","UnionPlus":"⊎","Uogon":"Ų","uogon":"ų","Uopf":"𝕌","uopf":"𝕦","UpArrowBar":"⤒","uparrow":"↑","UpArrow":"↑","Uparrow":"⇑","UpArrowDownArrow":"⇅","updownarrow":"↕","UpDownArrow":"↕","Updownarrow":"⇕","UpEquilibrium":"⥮","upharpoonleft":"↿","upharpoonright":"↾","uplus":"⊎","UpperLeftArrow":"↖","UpperRightArrow":"↗","upsi":"υ","Upsi":"ϒ","upsih":"ϒ","Upsilon":"Υ","upsilon":"υ","UpTeeArrow":"↥","UpTee":"⊥","upuparrows":"⇈","urcorn":"⌝","urcorner":"⌝","urcrop":"⌎","Uring":"Ů","uring":"ů","urtri":"◹","Uscr":"𝒰","uscr":"𝓊","utdot":"⋰","Utilde":"Ũ","utilde":"ũ","utri":"▵","utrif":"▴","uuarr":"⇈","Uuml":"Ü","uuml":"ü","uwangle":"⦧","vangrt":"⦜","varepsilon":"ϵ","varkappa":"ϰ","varnothing":"∅","varphi":"ϕ","varpi":"ϖ","varpropto":"∝","varr":"↕","vArr":"⇕","varrho":"ϱ","varsigma":"ς","varsubsetneq":"⊊︀","varsubsetneqq":"⫋︀","varsupsetneq":"⊋︀","varsupsetneqq":"⫌︀","vartheta":"ϑ","vartriangleleft":"⊲","vartriangleright":"⊳","vBar":"⫨","Vbar":"⫫","vBarv":"⫩","Vcy":"В","vcy":"в","vdash":"⊢","vDash":"⊨","Vdash":"⊩","VDash":"⊫","Vdashl":"⫦","veebar":"⊻","vee":"∨","Vee":"⋁","veeeq":"≚","vellip":"⋮","verbar":"|","Verbar":"‖","vert":"|","Vert":"‖","VerticalBar":"∣","VerticalLine":"|","VerticalSeparator":"❘","VerticalTilde":"≀","VeryThinSpace":" ","Vfr":"𝔙","vfr":"𝔳","vltri":"⊲","vnsub":"⊂⃒","vnsup":"⊃⃒","Vopf":"𝕍","vopf":"𝕧","vprop":"∝","vrtri":"⊳","Vscr":"𝒱","vscr":"𝓋","vsubnE":"⫋︀","vsubne":"⊊︀","vsupnE":"⫌︀","vsupne":"⊋︀","Vvdash":"⊪","vzigzag":"⦚","Wcirc":"Ŵ","wcirc":"ŵ","wedbar":"⩟","wedge":"∧","Wedge":"⋀","wedgeq":"≙","weierp":"℘","Wfr":"𝔚","wfr":"𝔴","Wopf":"𝕎","wopf":"𝕨","wp":"℘","wr":"≀","wreath":"≀","Wscr":"𝒲","wscr":"𝓌","xcap":"⋂","xcirc":"◯","xcup":"⋃","xdtri":"▽","Xfr":"𝔛","xfr":"𝔵","xharr":"⟷","xhArr":"⟺","Xi":"Ξ","xi":"ξ","xlarr":"⟵","xlArr":"⟸","xmap":"⟼","xnis":"⋻","xodot":"⨀","Xopf":"𝕏","xopf":"𝕩","xoplus":"⨁","xotime":"⨂","xrarr":"⟶","xrArr":"⟹","Xscr":"𝒳","xscr":"𝓍","xsqcup":"⨆","xuplus":"⨄","xutri":"△","xvee":"⋁","xwedge":"⋀","Yacute":"Ý","yacute":"ý","YAcy":"Я","yacy":"я","Ycirc":"Ŷ","ycirc":"ŷ","Ycy":"Ы","ycy":"ы","yen":"¥","Yfr":"𝔜","yfr":"𝔶","YIcy":"Ї","yicy":"ї","Yopf":"𝕐","yopf":"𝕪","Yscr":"𝒴","yscr":"𝓎","YUcy":"Ю","yucy":"ю","yuml":"ÿ","Yuml":"Ÿ","Zacute":"Ź","zacute":"ź","Zcaron":"Ž","zcaron":"ž","Zcy":"З","zcy":"з","Zdot":"Ż","zdot":"ż","zeetrf":"ℨ","ZeroWidthSpace":"​","Zeta":"Ζ","zeta":"ζ","zfr":"𝔷","Zfr":"ℨ","ZHcy":"Ж","zhcy":"ж","zigrarr":"⇝","zopf":"𝕫","Zopf":"ℤ","Zscr":"𝒵","zscr":"𝓏","zwj":"‍","zwnj":"‌"}')},807:t=>{"use strict";t.exports=JSON.parse('{"Aacute":"Á","aacute":"á","Acirc":"Â","acirc":"â","acute":"´","AElig":"Æ","aelig":"æ","Agrave":"À","agrave":"à","amp":"&","AMP":"&","Aring":"Å","aring":"å","Atilde":"Ã","atilde":"ã","Auml":"Ä","auml":"ä","brvbar":"¦","Ccedil":"Ç","ccedil":"ç","cedil":"¸","cent":"¢","copy":"©","COPY":"©","curren":"¤","deg":"°","divide":"÷","Eacute":"É","eacute":"é","Ecirc":"Ê","ecirc":"ê","Egrave":"È","egrave":"è","ETH":"Ð","eth":"ð","Euml":"Ë","euml":"ë","frac12":"½","frac14":"¼","frac34":"¾","gt":">","GT":">","Iacute":"Í","iacute":"í","Icirc":"Î","icirc":"î","iexcl":"¡","Igrave":"Ì","igrave":"ì","iquest":"¿","Iuml":"Ï","iuml":"ï","laquo":"«","lt":"<","LT":"<","macr":"¯","micro":"µ","middot":"·","nbsp":" ","not":"¬","Ntilde":"Ñ","ntilde":"ñ","Oacute":"Ó","oacute":"ó","Ocirc":"Ô","ocirc":"ô","Ograve":"Ò","ograve":"ò","ordf":"ª","ordm":"º","Oslash":"Ø","oslash":"ø","Otilde":"Õ","otilde":"õ","Ouml":"Ö","ouml":"ö","para":"¶","plusmn":"±","pound":"£","quot":"\\"","QUOT":"\\"","raquo":"»","reg":"®","REG":"®","sect":"§","shy":"­","sup1":"¹","sup2":"²","sup3":"³","szlig":"ß","THORN":"Þ","thorn":"þ","times":"×","Uacute":"Ú","uacute":"ú","Ucirc":"Û","ucirc":"û","Ugrave":"Ù","ugrave":"ù","uml":"¨","Uuml":"Ü","uuml":"ü","Yacute":"Ý","yacute":"ý","yen":"¥","yuml":"ÿ"}')},789:t=>{"use strict";t.exports=JSON.parse('{"amp":"&","apos":"\'","gt":">","lt":"<","quot":"\\""}')}},e={};function r(i){var n=e[i];if(void 0!==n)return n.exports;var s=e[i]={exports:{}};return t[i].call(s.exports,s,s.exports,r),s.exports}(()=>{"use strict";function t(t,r){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t)){var r=[],i=!0,n=!1,s=void 0;try{for(var a,o=t[Symbol.iterator]();!(i=(a=o.next()).done)&&(r.push(a.value),!e||r.length!==e);i=!0);}catch(t){n=!0,s=t}finally{try{i||null==o.return||o.return()}finally{if(n)throw s}}return r}}(t,r)||function(t,r){if(t){if("string"==typeof t)return e(t,r);var i=Object.prototype.toString.call(t).slice(8,-1);return"Object"===i&&t.constructor&&(i=t.constructor.name),"Map"===i||"Set"===i?Array.from(t):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?e(t,r):void 0}}(t,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function e(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,i=new Array(e);r1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=[],s=i;s2&&void 0!==arguments[2]?arguments[2]:0,n=r,s=[],a=n;;){if(n>=e.length){aa&&s.push(["p",e.slice(a,o-1)]),"\n"===l){if("\n"===e[n=this.skipSpaces(e,n+1)]){if(i>0&&this.newlineBreaksArticles)break;n+=1}}else{if("#"===l)break;if("`"===l){var c=this.parseCodeBlock(e,n+3),u=t(c,2),p=u[0],h=u[1];s.push(p),n=h}}a=n}else{for(;n=t.length)return[["cb",t.slice(r)],i];if("`"===t[i=this.skipSpaces(t,i,!0)]&&"`"===t[i+1]&&"`"===t[i+2]){var n=this.skipSpaces(t,i+3,!0);return[["cb",t.slice(r,i)],n]}for(;i2&&void 0!==arguments[2]&&arguments[2],i=e;ic&&(c=p)}var h=0;console.log(l,c);for(var f=l;f<=c;f+=1){for(var d=!1,g=0;g`\\x00-\\x20]+|'[^']*'|\"[^\"]*\"))?)*\\s*/?>|]|\x3c!----\x3e|\x3c!--(?:-?[^>-])(?:-?[^-])*--\x3e|[<][?][\\s\\S]*?[?][>]|]*>|)"),m=/[\\&]/,b="[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^_`{|}~-]",v=new RegExp("\\\\"+b+"|&(?:#x[a-f0-9]{1,6}|#[0-9]{1,7}|[a-z][a-z0-9]{1,31});","gi"),y=new RegExp('[&<>"]',"g"),k=function(t){return 92===t.charCodeAt(0)?t.charAt(1):(0,d.p1)(t)},_=function(t){return m.test(t)?t.replace(v,k):t},D=function(t){switch(t){case"&":return"&";case"<":return"<";case">":return">";case'"':return""";default:return t}},x=function(t){return y.test(t)?t.replace(y,D):t};function w(t){return h(t)}if(String.fromCodePoint)h=function(t){try{return String.fromCodePoint(t)}catch(t){if(t instanceof RangeError)return String.fromCharCode(65533);throw t}};else{var C=String.fromCharCode,A=Math.floor;h=function(){var t,e,r=16384,i=[],n=-1,s=arguments.length;if(!s)return"";for(var a="";++n1114111||A(o)!==o)return String.fromCharCode(65533);o<=65535?i.push(o):(t=55296+((o-=65536)>>10),e=o%1024+56320,i.push(t,e)),(n+1===s||i.length>r)&&(a+=C.apply(null,i),i.length=0)}return a}}r(38);var q=function(t){try{return f(t)}catch(e){return t}},E=_,L=39,F=34,S=b,N="\\\\"+S,T=g,B=new RegExp(/[!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E42\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC9\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDF3C-\uDF3E]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]/),O=new RegExp('^(?:"('+N+'|[^"\\x00])*"|\'('+N+"|[^'\\x00])*'|\\(("+N+"|[^()\\x00])*\\))"),R=/^(?:<(?:[^<>\n\\\x00]|\\.)*>)/,j=new RegExp("^"+S),U=new RegExp("^&(?:#x[a-f0-9]{1,6}|#[0-9]{1,7}|[a-z][a-z0-9]{1,31});","i"),z=/`+/,P=/^`+/,V=/\.\.\./g,I=/--+/g,H=/^<([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/,M=/^<[A-Za-z][A-Za-z0-9.+-]{1,31}:[^<>\x00-\x20]*>/i,G=/^ *(?:\n *)?/,Z=/^[ \t\n\x0b\x0c\x0d]/,$=/^\s/,J=/ *$/,Y=/^ */,W=/^ *(?:\n|$)/,X=/^\[(?:[^\\\[\]]|\\.){0,1000}\]/,Q=/^[^\n`\[\]\\!<&*_'"]+/m,K=function(t){var e=new p("text");return e._literal=t,e},tt=function(t){return t.slice(1,t.length-1).trim().replace(/[ \t\r\n]+/," ").toLowerCase().toUpperCase()},et=function(t){var e=t.exec(this.subject.slice(this.pos));return null===e?null:(this.pos+=e.index+e[0].length,e[0])},rt=function(){return this.pos0&&null!==n.match(/[^ ]/)&&" "==n[0]&&" "==n[n.length-1]?i._literal=n.slice(1,n.length-1):i._literal=n,t.appendChild(i),!0;return this.pos=s,t.appendChild(K(e)),!0},st=function(t){var e,r=this.subject;return this.pos+=1,10===this.peek()?(this.pos+=1,e=new p("linebreak"),t.appendChild(e)):j.test(r.charAt(this.pos))?(t.appendChild(K(r.charAt(this.pos))),this.pos+=1):t.appendChild(K("\\")),!0},at=function(t){var e,r,i;return(e=this.match(H))?(r=e.slice(1,e.length-1),(i=new p("link"))._destination=q("mailto:"+r),i._title="",i.appendChild(K(r)),t.appendChild(i),!0):!!(e=this.match(M))&&(r=e.slice(1,e.length-1),(i=new p("link"))._destination=q(r),i._title="",i.appendChild(K(r)),t.appendChild(i),!0)},ot=function(t){var e=this.match(T);if(null===e)return!1;var r=new p("html_inline");return r._literal=e,t.appendChild(r),!0},lt=function(t){var e,r,i,n,s,a,o,l,c,u,p,h=0,f=this.pos;if(t===L||t===F)h++,this.pos++;else for(;this.peek()===t;)h++,this.pos++;return 0===h?null:(e=0===f?"\n":this.subject.charAt(f-1),r=-1===(i=this.peek())?"\n":w(i),l=$.test(r),c=B.test(r),u=$.test(e),p=B.test(e),n=!l&&(!c||u||p),s=!u&&(!p||l||c),95===t?(a=n&&(!s||p),o=s&&(!n||c)):t===L||t===F?(a=n&&!s,o=s):(a=n,o=s),this.pos=f,{numdelims:h,can_open:a,can_close:o})},ct=function(t,e){var r=this.scanDelims(t);if(!r)return!1;var i,n=r.numdelims,s=this.pos;this.pos+=n,i=t===L?"’":t===F?"“":this.subject.slice(s,this.pos);var a=K(i);return e.appendChild(a),(r.can_open||r.can_close)&&(this.options.smart||t!==L&&t!==F)&&(this.delimiters={cc:t,numdelims:n,origdelims:n,node:a,previous:this.delimiters,next:null,can_open:r.can_open,can_close:r.can_close},null!==this.delimiters.previous&&(this.delimiters.previous.next=this.delimiters)),!0},ut=function(t){null!==t.previous&&(t.previous.next=t.next),null===t.next?this.delimiters=t.previous:t.next.previous=t.previous},pt=function(t){for(var e,r,i,n,s,a,o,l,c,u,h,f,d=[[],[],[]],g=!1,m=0;m<3;m++)d[m][95]=t,d[m][42]=t,d[m][39]=t,d[m][34]=t;for(r=this.delimiters;null!==r&&r.previous!==t;)r=r.previous;for(;null!==r;){var b=r.cc;if(r.can_close){for(e=r.previous,u=!1;null!==e&&e!==t&&e!==d[r.origdelims%3][b];){if(g=(r.can_open||e.can_close)&&r.origdelims%3!=0&&(e.origdelims+r.origdelims)%3==0,e.cc===r.cc&&e.can_open&&!g){u=!0;break}e=e.previous}if(i=r,42===b||95===b)if(u){o=r.numdelims>=2&&e.numdelims>=2?2:1,n=e.node,s=r.node,e.numdelims-=o,r.numdelims-=o,n._literal=n._literal.slice(0,n._literal.length-o),s._literal=s._literal.slice(0,s._literal.length-o);var v=new p(1===o?"emph":"strong");for(l=n._next;l&&l!==s;)c=l._next,l.unlink(),v.appendChild(l),l=c;n.insertAfter(v),f=r,(h=e).next!==f&&(h.next=f,f.previous=h),0===e.numdelims&&(n.unlink(),this.removeDelimiter(e)),0===r.numdelims&&(s.unlink(),a=r.next,this.removeDelimiter(r),r=a)}else r=r.next;else b===L?(r.node._literal="’",u&&(e.node._literal="‘"),r=r.next):b===F&&(r.node._literal="”",u&&(e.node.literal="“"),r=r.next);u||(d[i.origdelims%3][b]=i.previous,i.can_open||this.removeDelimiter(i))}else r=r.next}for(;null!==this.delimiters&&this.delimiters!==t;)this.removeDelimiter(this.delimiters)},ht=function(){var t=this.match(O);return null===t?null:E(t.substr(1,t.length-2))},ft=function(){var t=this.match(R);if(null===t){if(60===this.peek())return null;for(var e,r=this.pos,i=0;-1!==(e=this.peek());)if(92===e&&j.test(this.subject.charAt(this.pos+1)))this.pos+=1,-1!==this.peek()&&(this.pos+=1);else if(40===e)this.pos+=1,i+=1;else if(41===e){if(i<1)break;this.pos+=1,i-=1}else{if(null!==Z.exec(w(e)))break;this.pos+=1}return this.pos===r&&41!==e||0!==i?null:(t=this.subject.substr(r,this.pos-r),q(E(t)))}return q(E(t.substr(1,t.length-2)))},dt=function(){var t=this.match(X);return null===t||t.length>1001?0:t.length},gt=function(t){var e=this.pos;this.pos+=1;var r=K("[");return t.appendChild(r),this.addBracket(r,e,!1),!0},mt=function(t){var e=this.pos;if(this.pos+=1,91===this.peek()){this.pos+=1;var r=K("![");t.appendChild(r),this.addBracket(r,e+1,!0)}else t.appendChild(K("!"));return!0},bt=function(t){var e,r,i,n,s,a,o=!1;if(this.pos+=1,e=this.pos,null===(a=this.brackets))return t.appendChild(K("]")),!0;if(!a.active)return t.appendChild(K("]")),this.removeBracket(),!0;r=a.image;var l=this.pos;if(40===this.peek()&&(this.pos++,this.spnl()&&null!==(i=this.parseLinkDestination())&&this.spnl()&&(Z.test(this.subject.charAt(this.pos-1))&&(n=this.parseLinkTitle()),1)&&this.spnl()&&41===this.peek()?(this.pos+=1,o=!0):this.pos=l),!o){var c=this.pos,u=this.parseLinkLabel();if(u>2?s=this.subject.slice(c,c+u):a.bracketAfter||(s=this.subject.slice(a.index,e)),0===u&&(this.pos=l),s){var h=this.refmap[tt(s)];h&&(i=h.destination,n=h.title,o=!0)}}if(o){var f,d,g=new p(r?"image":"link");for(g._destination=i,g._title=n||"",f=a.node._next;f;)d=f._next,f.unlink(),g.appendChild(f),f=d;if(t.appendChild(g),this.processEmphasis(a.previousDelimiter),this.removeBracket(),a.node.unlink(),!r)for(a=this.brackets;null!==a;)a.image||(a.active=!1),a=a.previous;return!0}return this.removeBracket(),this.pos=e,t.appendChild(K("]")),!0},vt=function(t,e,r){null!==this.brackets&&(this.brackets.bracketAfter=!0),this.brackets={node:t,previous:this.brackets,previousDelimiter:this.delimiters,index:e,image:r,active:!0}},yt=function(){this.brackets=this.brackets.previous},kt=function(t){var e;return!!(e=this.match(U))&&(t.appendChild(K((0,d.p1)(e))),!0)},_t=function(t){var e;return!!(e=this.match(Q))&&(this.options.smart?t.appendChild(K(e.replace(V,"…").replace(I,(function(t){var e=0,r=0;return t.length%3==0?r=t.length/3:t.length%2==0?e=t.length/2:t.length%3==2?(e=1,r=(t.length-2)/3):(e=2,r=(t.length-4)/3),"—".repeat(r)+"–".repeat(e)})))):t.appendChild(K(e)),!0)},Dt=function(t){this.pos+=1;var e=t._lastChild;if(e&&"text"===e.type&&" "===e._literal[e._literal.length-1]){var r=" "===e._literal[e._literal.length-2];e._literal=e._literal.replace(J,""),t.appendChild(new p(r?"linebreak":"softbreak"))}else t.appendChild(new p("softbreak"));return this.match(Y),!0},xt=function(t,e){var r,i,n,s;this.subject=t,this.pos=0;var a=this.pos;if(0===(s=this.parseLinkLabel()))return 0;if(r=this.subject.substr(0,s),58!==this.peek())return this.pos=a,0;if(this.pos++,this.spnl(),null===(i=this.parseLinkDestination()))return this.pos=a,0;var o=this.pos;this.spnl(),this.pos!==o&&(n=this.parseLinkTitle()),null===n&&(n="",this.pos=o);var l=!0;if(null===this.match(W)&&(""===n?l=!1:(n="",this.pos=o,l=null!==this.match(W))),!l)return this.pos=a,0;var c=tt(r);return""===c?(this.pos=a,0):(e[c]||(e[c]={destination:i,title:n}),this.pos-a)},wt=function(t){var e=!1,r=this.peek();if(-1===r)return!1;switch(r){case 10:e=this.parseNewline(t);break;case 92:e=this.parseBackslash(t);break;case 96:e=this.parseBackticks(t);break;case 42:case 95:e=this.handleDelim(r,t);break;case L:case F:e=this.options.smart&&this.handleDelim(r,t);break;case 91:e=this.parseOpenBracket(t);break;case 33:e=this.parseBang(t);break;case 93:e=this.parseCloseBracket(t);break;case 60:e=this.parseAutolink(t)||this.parseHtmlTag(t);break;case 38:e=this.parseEntity(t);break;default:e=this.parseString(t)}return e||(this.pos+=1,t.appendChild(K(w(r)))),!0},Ct=function(t){for(this.subject=t._string_content.trim(),this.pos=0,this.delimiters=null,this.brackets=null;this.parseInline(t););t._string_content=null,this.processEmphasis(null)};const At=function(t){return{subject:"",delimiters:null,brackets:null,pos:0,refmap:{},match:et,peek:rt,spnl:it,parseBackticks:nt,parseBackslash:st,parseAutolink:at,parseHtmlTag:ot,scanDelims:lt,handleDelim:ct,parseLinkTitle:ht,parseLinkDestination:ft,parseLinkLabel:dt,parseOpenBracket:gt,parseBang:mt,parseCloseBracket:bt,addBracket:vt,removeBracket:yt,parseEntity:kt,parseString:_t,parseNewline:Dt,parseReference:xt,parseInline:wt,processEmphasis:pt,removeDelimiter:ut,options:t||{},parse:Ct}};var qt=[/./,/^<(?:script|pre|textarea|style)(?:\s|>|$)/i,/^/,/\?>/,/>/,/\]\]>/],Lt=/^(?:(?:\*[ \t]*){3,}|(?:_[ \t]*){3,}|(?:-[ \t]*){3,})[ \t]*$/,Ft=/^[#`~*+_=<>0-9-]/,St=/[^ \t\f\v\r\n]/,Nt=/^[*+-]/,Tt=/^(\d{1,9})([.)])/,Bt=/^#{1,6}(?:[ \t]+|$)/,Ot=/^`{3,}(?!.*`)|^~{3,}/,Rt=/^(?:`{3,}|~{3,})(?= *$)/,jt=/^(?:=+|-+)[ \t]*$/,Ut=/\r\n|\n|\r/,zt=function(t){return 32===t||9===t},Pt=function(t,e){return e=e._listData.markerOffset+e._listData.padding))return 1;t.advanceOffset(e._listData.markerOffset+e._listData.padding,!0)}return 0},finalize:function(){},canContain:function(t){return"item"!==t},acceptsLines:!1},heading:{continue:function(){return 1},finalize:function(){},canContain:function(){return!1},acceptsLines:!1},thematic_break:{continue:function(){return 1},finalize:function(){},canContain:function(){return!1},acceptsLines:!1},code_block:{continue:function(t,e){var r=t.currentLine,i=t.indent;if(e._isFenced){var n=i<=3&&r.charAt(t.nextNonspace)===e._fenceChar&&r.slice(t.nextNonspace).match(Rt);if(n&&n[0].length>=e._fenceLength)return t.lastLineLength=t.offset+i+n[0].length,t.finalize(e,t.lineNumber),2;for(var s=e._fenceOffset;s>0&&zt(Pt(r,t.offset));)t.advanceOffset(1,!0),s--}else if(i>=4)t.advanceOffset(4,!0);else{if(!t.blank)return 1;t.advanceNextNonspace()}return 0},finalize:function(t,e){if(e._isFenced){var r=e._string_content,i=r.indexOf("\n"),n=r.slice(0,i),s=r.slice(i+1);e.info=_(n.trim()),e._literal=s}else e._literal=e._string_content.replace(/(\n *)+$/,"\n");e._string_content=null},canContain:function(){return!1},acceptsLines:!0},html_block:{continue:function(t,e){return!t.blank||6!==e._htmlBlockType&&7!==e._htmlBlockType?0:1},finalize:function(t,e){e._literal=e._string_content.replace(/(\n *)+$/,""),e._string_content=null},canContain:function(){return!1},acceptsLines:!0},paragraph:{continue:function(t){return t.blank?1:0},finalize:function(t,e){for(var r,i,n=!1;91===Pt(e._string_content,0)&&(r=t.inlineParser.parseReference(e._string_content,t.refmap));)e._string_content=e._string_content.slice(r),n=!0;n&&(i=e._string_content,!St.test(i))&&e.unlink()},canContain:function(){return!1},acceptsLines:!0}},Zt=[function(t){return t.indented||62!==Pt(t.currentLine,t.nextNonspace)?0:(t.advanceNextNonspace(),t.advanceOffset(1,!1),zt(Pt(t.currentLine,t.offset))&&t.advanceOffset(1,!0),t.closeUnmatchedBlocks(),t.addChild("block_quote",t.nextNonspace),1)},function(t){var e;if(!t.indented&&(e=t.currentLine.slice(t.nextNonspace).match(Bt))){t.advanceNextNonspace(),t.advanceOffset(e[0].length,!1),t.closeUnmatchedBlocks();var r=t.addChild("heading",t.nextNonspace);return r.level=e[0].trim().length,r._string_content=t.currentLine.slice(t.offset).replace(/^[ \t]*#+[ \t]*$/,"").replace(/[ \t]+#+[ \t]*$/,""),t.advanceOffset(t.currentLine.length-t.offset),2}return 0},function(t){var e;if(!t.indented&&(e=t.currentLine.slice(t.nextNonspace).match(Ot))){var r=e[0].length;t.closeUnmatchedBlocks();var i=t.addChild("code_block",t.nextNonspace);return i._isFenced=!0,i._fenceLength=r,i._fenceChar=e[0][0],i._fenceOffset=t.indent,t.advanceNextNonspace(),t.advanceOffset(r,!1),2}return 0},function(t,e){if(!t.indented&&60===Pt(t.currentLine,t.nextNonspace)){var r,i=t.currentLine.slice(t.nextNonspace);for(r=1;r<=7;r++)if(qt[r].test(i)&&(r<7||"paragraph"!==e.type))return t.closeUnmatchedBlocks(),t.addChild("html_block",t.offset)._htmlBlockType=r,2}return 0},function(t,e){var r;if(!t.indented&&"paragraph"===e.type&&(r=t.currentLine.slice(t.nextNonspace).match(jt))){var i;for(t.closeUnmatchedBlocks();91===Pt(e._string_content,0)&&(i=t.inlineParser.parseReference(e._string_content,t.refmap));)e._string_content=e._string_content.slice(i);if(e._string_content.length>0){var n=new p("heading",e.sourcepos);return n.level="="===r[0][0]?1:2,n._string_content=e._string_content,e.insertAfter(n),e.unlink(),t.tip=n,t.advanceOffset(t.currentLine.length-t.offset,!1),2}return 0}return 0},function(t){return!t.indented&&Lt.test(t.currentLine.slice(t.nextNonspace))?(t.closeUnmatchedBlocks(),t.addChild("thematic_break",t.nextNonspace),t.advanceOffset(t.currentLine.length-t.offset,!1),2):0},function(t,e){var r,i,n;return t.indented&&"list"!==e.type||!(r=function(t,e){var r,i,n,s,a=t.currentLine.slice(t.nextNonspace),o={type:null,tight:!0,bulletChar:null,start:null,delimiter:null,padding:null,markerOffset:t.indent};if(t.indent>=4)return null;if(r=a.match(Nt))o.type="bullet",o.bulletChar=r[0][0];else{if(!(r=a.match(Tt))||"paragraph"===e.type&&"1"!==r[1])return null;o.type="ordered",o.start=parseInt(r[1]),o.delimiter=r[2]}if(-1!==(i=Pt(t.currentLine,t.nextNonspace+r[0].length))&&9!==i&&32!==i)return null;if("paragraph"===e.type&&!t.currentLine.slice(t.nextNonspace+r[0].length).match(St))return null;t.advanceNextNonspace(),t.advanceOffset(r[0].length,!0),n=t.column,s=t.offset;do{t.advanceOffset(1,!0),i=Pt(t.currentLine,t.offset)}while(t.column-n<5&&zt(i));var l=-1===Pt(t.currentLine,t.offset),c=t.column-n;return c>=5||c<1||l?(o.padding=r[0].length+1,t.column=n,t.offset=s,zt(Pt(t.currentLine,t.offset))&&t.advanceOffset(1,!0)):o.padding=r[0].length+c,o}(t,e))?0:(t.closeUnmatchedBlocks(),"list"===t.tip.type&&(n=r,(i=e._listData).type===n.type&&i.delimiter===n.delimiter&&i.bulletChar===n.bulletChar)||((e=t.addChild("list",t.nextNonspace))._listData=r),(e=t.addChild("item",t.nextNonspace))._listData=r,1)},function(t){return t.indented&&"paragraph"!==t.tip.type&&!t.blank?(t.advanceOffset(4,!0),t.closeUnmatchedBlocks(),t.addChild("code_block",t.offset),2):0}],$t=function(t,e){for(var r,i,n,s=this.currentLine;t>0&&(n=s[this.offset]);)"\t"===n?(r=4-this.column%4,e?(this.partiallyConsumedTab=r>t,i=r>t?t:r,this.column+=i,this.offset+=this.partiallyConsumedTab?0:1,t-=i):(this.partiallyConsumedTab=!1,this.column+=r,this.offset+=1,t-=1)):(this.partiallyConsumedTab=!1,this.offset+=1,this.column+=1,t-=1)},Jt=function(){this.offset=this.nextNonspace,this.column=this.nextNonspaceColumn,this.partiallyConsumedTab=!1},Yt=function(){for(var t,e=this.currentLine,r=this.offset,i=this.column;""!==(t=e.charAt(r));)if(" "===t)r++,i++;else{if("\t"!==t)break;r++,i+=4-i%4}this.blank="\n"===t||"\r"===t||""===t,this.nextNonspace=r,this.nextNonspaceColumn=i,this.indent=this.nextNonspaceColumn-this.column,this.indented=this.indent>=4},Wt=function(t){var e,r,i=!0,n=this.doc;for(this.oldtip=this.tip,this.offset=0,this.column=0,this.blank=!1,this.partiallyConsumedTab=!1,this.lineNumber+=1,-1!==t.indexOf("\0")&&(t=t.replace(/\0/g,"�")),this.currentLine=t;(r=n._lastChild)&&r._open;){switch(n=r,this.findNextNonspace(),this.blocks[n.type].continue(this,n)){case 0:break;case 1:i=!1;break;case 2:return;default:throw"continue returned illegal value, must be 0, 1, or 2"}if(!i){n=n._parent;break}}this.allClosed=n===this.oldtip,this.lastMatchedContainer=n;for(var s="paragraph"!==n.type&&Gt[n.type].acceptsLines,a=this.blockStarts,o=a.length;!s;){if(this.findNextNonspace(),!this.indented&&!Ft.test(t.slice(this.nextNonspace))){this.advanceNextNonspace();break}for(var l=0;l=1&&n._htmlBlockType<=5&&Et[n._htmlBlockType].test(this.currentLine.slice(this.offset))&&(this.lastLineLength=t.length,this.finalize(n,this.lineNumber))):this.offset')))},oe.prototype.emph=function(t,e){this.tag(e?"em":"/em")},oe.prototype.strong=function(t,e){this.tag(e?"strong":"/strong")},oe.prototype.paragraph=function(t,e){var r=t.parent.parent,i=this.attrs(t);null!==r&&"list"===r.type&&r.listTight||(e?(this.cr(),this.tag("p",i)):(this.tag("/p"),this.cr()))},oe.prototype.heading=function(t,e){var r="h"+t.level,i=this.attrs(t);e?(this.cr(),this.tag(r,i)):(this.tag("/"+r),this.cr())},oe.prototype.code=function(t){this.tag("code"),this.out(t.literal),this.tag("/code")},oe.prototype.code_block=function(t){var e=t.info?t.info.split(/\s+/):[],r=this.attrs(t);e.length>0&&e[0].length>0&&r.push(["class","language-"+this.esc(e[0])]),this.cr(),this.tag("pre"),this.tag("code",r),this.out(t.literal),this.tag("/code"),this.tag("/pre"),this.cr()},oe.prototype.thematic_break=function(t){var e=this.attrs(t);this.cr(),this.tag("hr",e,!0),this.cr()},oe.prototype.block_quote=function(t,e){var r=this.attrs(t);e?(this.cr(),this.tag("blockquote",r),this.cr()):(this.cr(),this.tag("/blockquote"),this.cr())},oe.prototype.list=function(t,e){var r="bullet"===t.listType?"ul":"ol",i=this.attrs(t);if(e){var n=t.listStart;null!==n&&1!==n&&i.push(["start",n.toString()]),this.cr(),this.tag(r,i),this.cr()}else this.cr(),this.tag("/"+r),this.cr()},oe.prototype.item=function(t,e){var r=this.attrs(t);e?this.tag("li",r):(this.tag("/li"),this.cr())},oe.prototype.custom_inline=function(t,e){e&&t.onEnter?this.lit(t.onEnter):!e&&t.onExit&&this.lit(t.onExit)},oe.prototype.custom_block=function(t,e){this.cr(),e&&t.onEnter?this.lit(t.onEnter):!e&&t.onExit&&this.lit(t.onExit),this.cr()},oe.prototype.esc=x,oe.prototype.out=function(t){this.lit(this.esc(t))},oe.prototype.tag=function(t,e,r){if(!(this.disableTags>0)){if(this.buffer+="<"+t,e&&e.length>0)for(var i,n=0;void 0!==(i=e[n]);)this.buffer+=" "+i[0]+'="'+i[1]+'"',n++;r&&(this.buffer+=" /"),this.buffer+=">",this.lastOut=">"}},oe.prototype.attrs=function(t){var e=[];if(this.options.sourcepos){var r=t.sourcepos;r&&e.push(["data-sourcepos",String(r[0][0])+":"+String(r[0][1])+"-"+String(r[1][0])+":"+String(r[1][1])])}return e};var le=/\<[^>]*\>/;function ce(t){t=t||{},this.disableTags=0,this.lastOut="\n",this.indentLevel=0,this.indent=" ",this.options=t}function ue(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,i=new Array(e);r\n',this.buffer+='\n';i=c.next();)if(s=i.entering,l=(n=i.node).type,a=n.isContainer,o="thematic_break"===l||"linebreak"===l||"softbreak"===l,r=l.replace(/([a-z])([A-Z])/g,"$1_$2").toLowerCase(),s){switch(e=[],l){case"document":e.push(["xmlns","http://commonmark.org/xml/1.0"]);break;case"list":null!==n.listType&&e.push(["type",n.listType.toLowerCase()]),null!==n.listStart&&e.push(["start",String(n.listStart)]),null!==n.listTight&&e.push(["tight",n.listTight?"true":"false"]);var p=n.listDelimiter;if(null!==p){var h;h="."===p?"period":"paren",e.push(["delimiter",h])}break;case"code_block":n.info&&e.push(["info",n.info]);break;case"heading":e.push(["level",String(n.level)]);break;case"link":case"image":e.push(["destination",n.destination]),e.push(["title",n.title]);break;case"custom_inline":case"custom_block":e.push(["on_enter",n.onEnter]),e.push(["on_exit",n.onExit])}if(u.sourcepos){var f=n.sourcepos;f&&e.push(["sourcepos",String(f[0][0])+":"+String(f[0][1])+"-"+String(f[1][0])+":"+String(f[1][1])])}if(this.cr(),this.out(this.tag(r,e,o)),a)this.indentLevel+=1;else if(!a&&!o){var d=n.literal;d&&this.out(this.esc(d)),this.out(this.tag("/"+r))}}else this.indentLevel-=1,this.cr(),this.out(this.tag("/"+r));return u.time&&console.timeEnd("rendering"),this.buffer+="\n",this.buffer},ce.prototype.out=function(t){this.disableTags>0?this.buffer+=t.replace(le,""):this.buffer+=t,this.lastOut=t},ce.prototype.cr=function(){if("\n"!==this.lastOut){this.buffer+="\n",this.lastOut="\n";for(var t=this.indentLevel;t>0;t--)this.buffer+=this.indent}},ce.prototype.tag=function(t,e,r){var i="<"+t;if(e&&e.length>0)for(var n,s=0;void 0!==(n=e[s]);)i+=" "+n[0]+'="'+this.esc(n[1])+'"',s++;return r&&(i+=" /"),i+">"},ce.prototype.esc=x,document.addEventListener("DOMContentLoaded",(function(){var t=new ee({smart:!0}),e=new n,r=document.getElementById("input"),i=document.getElementById("output"),s=document.getElementById("time");r.addEventListener("input",(function(){var n=Date.now(),a=function(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t)){var r=[],i=!0,n=!1,s=void 0;try{for(var a,o=t[Symbol.iterator]();!(i=(a=o.next()).done)&&(r.push(a.value),!e||r.length!==e);i=!0);}catch(t){n=!0,s=t}finally{try{i||null==o.return||o.return()}finally{if(n)throw s}}return r}}(t,e)||function(t,e){if(t){if("string"==typeof t)return ue(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?ue(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(e.parseText(r.value),1)[0];s.innerHTML=Date.now()-n+"ms",n=Date.now();var o=t.parse(r.value);s.innerHTML+=" / commonmark: "+(Date.now()-n)+"ms",console.log(o),i.value=JSON.stringify(a,null,2)}))}))})()})(); \ No newline at end of file diff --git a/utils/markdown-test/script.js.LICENSE.txt b/utils/markdown-test/script.js.LICENSE.txt new file mode 100644 index 0000000..f5a53a2 --- /dev/null +++ b/utils/markdown-test/script.js.LICENSE.txt @@ -0,0 +1 @@ +/*! http://mths.be/repeat v0.2.0 by @mathias */ diff --git a/utils/markdown-test/webpack.config.js b/utils/markdown-test/webpack.config.js new file mode 100644 index 0000000..cb2aaa9 --- /dev/null +++ b/utils/markdown-test/webpack.config.js @@ -0,0 +1,60 @@ +var path = require('path'); +var webpack = require('webpack'); + +var babelPlugins = [ + '@babel/plugin-transform-flow-strip-types', + ['@babel/plugin-proposal-decorators', { legacy: true }], + '@babel/plugin-proposal-function-sent', + '@babel/plugin-proposal-export-namespace-from', + '@babel/plugin-proposal-numeric-separator', + '@babel/plugin-proposal-throw-expressions', + ['@babel/plugin-proposal-class-properties', { loose: true }], + '@babel/proposal-object-rest-spread', + // react-optimize + '@babel/transform-react-constant-elements', + '@babel/transform-react-inline-elements', + 'transform-react-remove-prop-types', + 'transform-react-pure-class-to-function', +]; + +module.exports = { + name: 'script', + target: 'web', + mode: 'production', + + entry: [ path.resolve(__dirname, './mdtest.js') ], + + output: { + path: __dirname, + filename: 'script.js', + }, + + resolve: { + extensions: ['.js', '.jsx' ], + }, + + module: { + rules: [ + { + test: /\.(js|jsx)$/, + loader: 'babel-loader', + options: { + presets: [ + ['@babel/preset-env', { + targets: { + browsers: [ 'defaults' ], + }, + modules: false, + }], + '@babel/react', + ], + plugins: babelPlugins, + }, + }, + ], + }, + + stats: { + colors: true, + }, +}; diff --git a/webpack.config.client.babel.js b/webpack.config.client.babel.js index 938780a..424fdcb 100644 --- a/webpack.config.client.babel.js +++ b/webpack.config.client.babel.js @@ -42,7 +42,7 @@ export function buildWebpackClientConfig( } const babelPlugins = [ - '@babel/transform-flow-strip-types', + '@babel/plugin-transform-flow-strip-types', ['@babel/plugin-proposal-decorators', { legacy: true }], '@babel/plugin-proposal-function-sent', '@babel/plugin-proposal-export-namespace-from', diff --git a/webpack.config.web.babel.js b/webpack.config.web.babel.js index e4bcd86..cb03fba 100644 --- a/webpack.config.web.babel.js +++ b/webpack.config.web.babel.js @@ -28,7 +28,7 @@ const basePackageValues = { const ttag = {}; const babelPlugins = [ - '@babel/transform-flow-strip-types', + '@babel/plugin-transform-flow-strip-types', ['@babel/plugin-proposal-decorators', { legacy: true }], '@babel/plugin-proposal-function-sent', '@babel/plugin-proposal-export-namespace-from',