diff --git a/404.html b/404.html new file mode 100644 index 00000000..af6307bb --- /dev/null +++ b/404.html @@ -0,0 +1,9 @@ +404 Page not found Ubunchuu Trường Ú

Go Home

+ + + + +
Top
\ No newline at end of file diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md deleted file mode 100644 index 77366b2e..00000000 --- a/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,76 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -In the interest of fostering an open and welcoming environment, we as -contributors and maintainers pledge to making participation in our project and -our community a harassment-free experience for everyone, regardless of age, body -size, disability, ethnicity, sex characteristics, gender identity and expression, -level of experience, education, socio-economic status, nationality, personal -appearance, race, religion, or sexual identity and orientation. - -## Our Standards - -Examples of behavior that contributes to creating a positive environment -include: - -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members - -Examples of unacceptable behavior by participants include: - -* The use of sexualized language or imagery and unwelcome sexual attention or - advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic - address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Our Responsibilities - -Project maintainers are responsible for clarifying the standards of acceptable -behavior and are expected to take appropriate and fair corrective action in -response to any instances of unacceptable behavior. - -Project maintainers have the right and responsibility to remove, edit, or -reject comments, commits, code, wiki edits, issues, and other contributions -that are not aligned to this Code of Conduct, or to ban temporarily or -permanently any contributor for other behaviors that they deem inappropriate, -threatening, offensive, or harmful. - -## Scope - -This Code of Conduct applies both within project spaces and in public spaces -when an individual is representing the project or its community. Examples of -representing a project or community include using an official project e-mail -address, posting via an official social media account, or acting as an appointed -representative at an online or offline event. Representation of a project may be -further defined and clarified by project maintainers. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by contacting the project team at hello@getdoks.org. All -complaints will be reviewed and investigated and will result in a response that -is deemed necessary and appropriate to the circumstances. The project team is -obligated to maintain confidentiality with regard to the reporter of an incident. -Further details of specific enforcement policies may be posted separately. - -Project maintainers who do not follow or enforce the Code of Conduct in good -faith may face temporary or permanent repercussions as determined by other -members of the project's leadership. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, -available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html - -[homepage]: https://www.contributor-covenant.org - -For answers to common questions about this code of conduct, see -https://www.contributor-covenant.org/faq diff --git a/LICENSE b/LICENSE deleted file mode 100644 index be44e1fc..00000000 --- a/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -MIT License - -Copyright (c) 2018-present, Gridsome -Copyright (c) 2020-present, Henk Verlinde - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index b461b8f5..00000000 --- a/README.md +++ /dev/null @@ -1,34 +0,0 @@ -

Ubunchuu Trường Ú Blog

- -[![npm version](https://badge.fury.io/js/doks.svg)](https://badge.fury.io/js/doks) [![github pages](https://github.com/ubunchuu-truong-us/ubunchuu-truong-us.github.io/actions/workflows/gh-pages.yml/badge.svg)](https://github.com/ubunchuu-truong-us/ubunchuu-truong-us.github.io/actions/workflows/gh-pages.yml) [![pages-build-deployment](https://github.com/ubunchuu-truong-us/ubunchuu-truong-us.github.io/actions/workflows/pages/pages-build-deployment/badge.svg)](https://github.com/ubunchuu-truong-us/ubunchuu-truong-us.github.io/actions/workflows/pages/pages-build-deployment) - -
- logo -
-

Welcome to the ubunchuu-truong-us blog, built with Hugo and Doks.

-
-
- -## Contributing - -> For any UI/UX contributions, please open an issue first to discuss what you would like to change, figma if possible. - -To contribute to the blog, follow these steps: - -1. Write your blog post in the `./content/en/docs/` folder on a new branch. (for example: `feature/content-my-new-post`) -```bash -git checkout -b feature/content-my-new-post -cd ./content/en/docs/ -``` -2. Install the dependencies by running: -```bash -npm install -``` -3. Start the development server (will live reload with port 1313) -```bash -npm run start -``` -4. Make your changes and test them locally. -5. Open a pull request on your branch to submit your changes. - -> **🎉 Happy blogging!** diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 4ad3369f..00000000 --- a/SECURITY.md +++ /dev/null @@ -1,7 +0,0 @@ -# Reporting Security Issues - -The Doks team and community take security issues in Doks seriously. We appreciate your efforts to responsibly disclose your findings, and will make every effort to acknowledge your contributions. - -To report a security issue, email [security@getdoks.org](mailto:security@getdoks.org) and include the word "SECURITY" in the subject line. - -We'll endeavor to respond quickly, and will keep you updated throughout the process. diff --git a/_headers b/_headers new file mode 100644 index 00000000..aa221abd --- /dev/null +++ b/_headers @@ -0,0 +1,10 @@ +/* + Strict-Transport-Security: max-age=31536000; includeSubDomains; preload + X-Content-Type-Options: nosniff + X-XSS-Protection: 1; mode=block + Content-Security-Policy: default-src 'self'; frame-ancestors https://jamstackthemes.dev; manifest-src 'self' https://*.netlify.app; connect-src 'self' https://*.netlify.app; font-src 'self' https://*.netlify.app; img-src 'self' https://*.netlify.app data: https://i.giphy.com; script-src 'self' https://*.netlify.app 'sha512-RGGByJUOP98hE4wFZM78RM/3MijWJs0Tm0DbfrFhCDCXKXfDx60fii+syp5iMs3UcNX/1H4zJNgmqSejfhHrYw==' 'sha512-RBYr6Ld4w1yVqaACrgrBLQfPgGhj/1jyacA74WxJ1KM6KVcSWymwrdDwb3HDcdpwiNJ5yssot1He0U9vXoQVlg==' 'sha256-aWZ3y/RxbBYKHXH0z8+8ljrHG1mSBvyzSfxSMjBSaXk=' 'sha256-vOgyKS2vkH4n5TxBJpeh9SgzrE6LVGsAeOAvEST6oCc='; style-src 'self' https://*.netlify.app 'unsafe-inline' + X-Frame-Options: SAMEORIGIN + Referrer-Policy: strict-origin + Feature-Policy: geolocation 'self' + Cache-Control: public, max-age=31536000 + Access-Control-Allow-Origin: * diff --git a/_redirects b/_redirects new file mode 100644 index 00000000..11c41f76 --- /dev/null +++ b/_redirects @@ -0,0 +1,9 @@ + + +# /docs/1.0/prologue/ /docs/1.0/prologue/introduction/ +# /docs/1.0/help/ /docs/1.0/help/how-to-update/ +# /docs/1.0/ /docs/1.0/prologue/introduction/ +# /docs/ /docs/1.0/prologue/introduction/ +# +# /docs/0.1/* https://v0-1-0--doks-versioning-poc.netlify.app/docs/0.1/:splat 200 +# /docs/0.2/* https://v0-2-0--doks-versioning-poc.netlify.app/docs/0.2/:splat 200 diff --git a/android-chrome-192x192.png b/android-chrome-192x192.png new file mode 100644 index 00000000..03a0e702 Binary files /dev/null and b/android-chrome-192x192.png differ diff --git a/android-chrome-512x512.png b/android-chrome-512x512.png new file mode 100644 index 00000000..74bdfb9d Binary files /dev/null and b/android-chrome-512x512.png differ diff --git a/apple-touch-icon.png b/apple-touch-icon.png new file mode 100644 index 00000000..225acef1 Binary files /dev/null and b/apple-touch-icon.png differ diff --git a/assets/images/arch-linux-subnav-icon.png b/assets/images/arch-linux-subnav-icon.png deleted file mode 100644 index da03de65..00000000 Binary files a/assets/images/arch-linux-subnav-icon.png and /dev/null differ diff --git a/assets/images/coming-soon.jpg b/assets/images/coming-soon.jpg deleted file mode 100644 index 9cf8fa3f..00000000 Binary files a/assets/images/coming-soon.jpg and /dev/null differ diff --git a/assets/images/default-image.png b/assets/images/default-image.png deleted file mode 100644 index a34ff9fc..00000000 Binary files a/assets/images/default-image.png and /dev/null differ diff --git a/assets/images/icon.png b/assets/images/icon.png deleted file mode 100644 index 6e5e7111..00000000 Binary files a/assets/images/icon.png and /dev/null differ diff --git a/assets/images/landing-page-bg.jpg b/assets/images/landing-page-bg.jpg deleted file mode 100644 index 480716f6..00000000 Binary files a/assets/images/landing-page-bg.jpg and /dev/null differ diff --git a/assets/images/linux-icon.png b/assets/images/linux-icon.png deleted file mode 100644 index 531bcd97..00000000 Binary files a/assets/images/linux-icon.png and /dev/null differ diff --git a/assets/images/linux-transparent.png b/assets/images/linux-transparent.png deleted file mode 100644 index 6006f439..00000000 Binary files a/assets/images/linux-transparent.png and /dev/null differ diff --git a/assets/images/linux-white.png b/assets/images/linux-white.png deleted file mode 100644 index 162455c1..00000000 Binary files a/assets/images/linux-white.png and /dev/null differ diff --git a/assets/images/penguins.jpg b/assets/images/penguins.jpg deleted file mode 100644 index 72166168..00000000 Binary files a/assets/images/penguins.jpg and /dev/null differ diff --git a/assets/js/app.js b/assets/js/app.js deleted file mode 100644 index 9c6c6967..00000000 --- a/assets/js/app.js +++ /dev/null @@ -1 +0,0 @@ -/** Custom scripts */ diff --git a/assets/scss/app.scss b/assets/scss/app.scss deleted file mode 100644 index 03d19ca1..00000000 --- a/assets/scss/app.scss +++ /dev/null @@ -1,38 +0,0 @@ -/** Import Bootstrap functions */ -@import "bootstrap/scss/functions"; - -/** Import theme variables */ -@import "common/variables"; - -/** Import Bootstrap */ -@import "bootstrap/scss/bootstrap"; - -/** Import highlight.js */ -// @import "highlight.js/scss/github-dark-dimmed"; - -/** Import KaTeX */ -@import "katex/dist/katex"; - -/** Import theme styles */ -@import "common/fonts"; -@import "common/global"; -@import "common/dark"; -@import "components/alerts"; -@import "components/buttons"; -@import "components/code"; -@import "components/details"; -@import "components/syntax"; -@import "components/comments"; -@import "components/forms"; -@import "components/images"; -@import "components/mermaid"; -@import "components/search"; -@import "components/tables"; -@import "layouts/footer"; -@import "layouts/header"; -@import "layouts/pages"; -@import "layouts/posts"; -@import "layouts/sidebar"; - -/** Import custom styles */ -@import "common/custom"; diff --git a/assets/scss/common/DejaVuSansMono-Bold.woff b/assets/scss/common/DejaVuSansMono-Bold.woff deleted file mode 100644 index abb18d0c..00000000 Binary files a/assets/scss/common/DejaVuSansMono-Bold.woff and /dev/null differ diff --git a/assets/scss/common/DejaVuSansMono-BoldOblique.woff b/assets/scss/common/DejaVuSansMono-BoldOblique.woff deleted file mode 100644 index abb1c2b3..00000000 Binary files a/assets/scss/common/DejaVuSansMono-BoldOblique.woff and /dev/null differ diff --git a/assets/scss/common/DejaVuSansMono-Oblique.woff b/assets/scss/common/DejaVuSansMono-Oblique.woff deleted file mode 100644 index 6493cb63..00000000 Binary files a/assets/scss/common/DejaVuSansMono-Oblique.woff and /dev/null differ diff --git a/assets/scss/common/DejaVuSansMono.woff b/assets/scss/common/DejaVuSansMono.woff deleted file mode 100644 index 629c3523..00000000 Binary files a/assets/scss/common/DejaVuSansMono.woff and /dev/null differ diff --git a/assets/scss/common/_custom.scss b/assets/scss/common/_custom.scss deleted file mode 100644 index 6da2bd04..00000000 --- a/assets/scss/common/_custom.scss +++ /dev/null @@ -1,86 +0,0 @@ -/** Custom styles */ - -/** Import San Francisco Font */ -/** Ultra Light */ -@font-face { - font-family: "San Francisco"; - font-weight: 100; - src: url("https://applesocial.s3.amazonaws.com/assets/styles/fonts/sanfrancisco/sanfranciscodisplay-ultralight-webfont.woff"); -} - -/** Thin */ -@font-face { - font-family: "San Francisco"; - font-weight: 200; - src: url("https://applesocial.s3.amazonaws.com/assets/styles/fonts/sanfrancisco/sanfranciscodisplay-thin-webfont.woff"); -} - -/** Regular */ -@font-face { - font-family: "San Francisco"; - font-weight: 400; - src: url("https://applesocial.s3.amazonaws.com/assets/styles/fonts/sanfrancisco/sanfranciscodisplay-regular-webfont.woff"); -} - -/** Medium */ -@font-face { - font-family: "San Francisco"; - font-weight: 500; - src: url("https://applesocial.s3.amazonaws.com/assets/styles/fonts/sanfrancisco/sanfranciscodisplay-medium-webfont.woff"); -} - -/** Semi Bold */ -@font-face { - font-family: "San Francisco"; - font-weight: 600; - src: url("https://applesocial.s3.amazonaws.com/assets/styles/fonts/sanfrancisco/sanfranciscodisplay-semibold-webfont.woff"); -} - -/** Bold */ -@font-face { - font-family: "San Francisco"; - font-weight: 700; - src: url("https://applesocial.s3.amazonaws.com/assets/styles/fonts/sanfrancisco/sanfranciscodisplay-bold-webfont.woff"); -} - -/** Import DejaVu Sans Mono Font*/ -@font-face { - font-family: "DejaVu Sans Mono"; - font-style: normal; - font-weight: normal; - src: local(DejaVu Sans Mono), local(DejaVuSansMono), - url(DejaVuSansMono.woff) format("woff"); -} - -@font-face { - font-family: "DejaVu Sans Mono"; - font-style: normal; - font-weight: bold; - src: local(DejaVu Sans Mono Bold), local(DejaVuSansMono-Bold), - url(DejaVuSansMono-Bold.woff) format("woff"); -} - -@font-face { - font-family: "DejaVu Sans Mono"; - font-style: oblique; - font-weight: bold; - src: local(DejaVu Sans Mono Bold Oblique), local(DejaVuSansMono-BoldOblique), - url(DejaVuSansMono-BoldOblique.woff) format("woff"); -} - -@font-face { - font-family: "DejaVu Sans Mono"; - font-style: oblique; - font-weight: normal; - src: local(DejaVu Sans Mono Oblique), local(DejaVuSansMono-Oblique), - url(DejaVuSansMono-Oblique.woff) format("woff"); -} - -/** Use it */ -body { - font-family: 'Inter', sans-serif; -} - -code { - font-family: 'DejaVu Sans Mono', monospace; -} \ No newline at end of file diff --git a/babel.config.js b/babel.config.js deleted file mode 100644 index ce9c9de0..00000000 --- a/babel.config.js +++ /dev/null @@ -1,17 +0,0 @@ -module.exports = { - presets: [ - [ - '@babel/preset-env', - { - targets: { - browsers: [ - // Best practice: https://github.com/babel/babel/issues/7789 - '>=1%', - 'not ie 11', - 'not op_mini all' - ] - } - } - ] - ] -}; \ No newline at end of file diff --git a/categories/index.html b/categories/index.html new file mode 100644 index 00000000..dbad6e6a --- /dev/null +++ b/categories/index.html @@ -0,0 +1,9 @@ +Categories Ubunchuu Trường Ú

Categories

+ + + + +
Top
\ No newline at end of file diff --git a/categories/index.xml b/categories/index.xml new file mode 100644 index 00000000..0749550b --- /dev/null +++ b/categories/index.xml @@ -0,0 +1 @@ +Categories onhttps://ubunchuu-truong-us.github.io/categories/Recent content in Categories onHugo -- gohugo.io \ No newline at end of file diff --git a/categories/page/1/index.html b/categories/page/1/index.html new file mode 100644 index 00000000..0500ed90 --- /dev/null +++ b/categories/page/1/index.html @@ -0,0 +1 @@ +https://ubunchuu-truong-us.github.io/categories/ \ No newline at end of file diff --git a/config/_default/config.toml b/config/_default/config.toml deleted file mode 100644 index eaec5982..00000000 --- a/config/_default/config.toml +++ /dev/null @@ -1,89 +0,0 @@ -baseurl = "https://ubunchuu-truong-us.github.io/" -canonifyURLs = false -disableAliases = true -disableHugoGeneratorInject = true -enableEmoji = true -enableGitInfo = true -enableRobotsTXT = true -paginate = 10 -rssLimit = 10 - -# Multilingual -defaultContentLanguage = "en" -disableLanguages = ["de", "nl"] -# defaultContentLanguageInSubdir = true - -# add redirects/headers -[outputs] -home = ["HTML", "RSS", "REDIRECTS", "HEADERS"] -section = ["HTML", "RSS", "SITEMAP"] - -# remove .{ext} from text/netlify -[mediaTypes."text/netlify"] -suffixes = [""] -delimiter = "" - -# add output format for netlify _redirects -[outputFormats.REDIRECTS] -mediaType = "text/netlify" -baseName = "_redirects" -isPlainText = true -notAlternative = true - -# add output format for netlify _headers -[outputFormats.HEADERS] -mediaType = "text/netlify" -baseName = "_headers" -isPlainText = true -notAlternative = true - -# add output format for section sitemap.xml -[outputFormats.SITEMAP] -mediaType = "application/xml" -baseName = "sitemap" -isHTML = false -isPlainText = true -noUgly = true -rel = "sitemap" - -[caches] - [caches.getjson] - dir = ":cacheDir/:project" - maxAge = "10s" - -[sitemap] - changefreq = "weekly" - filename = "sitemap.xml" - priority = 0.5 - -[taxonomies] - contributor = "contributors" - category = "categories" - tag = "tags" - -[permalinks] - docs = "/docs/:title/" - -[minify.tdewolff.html] - keepWhitespace = false - -[related] - threshold = 80 - includeNewer = true - toLower = false - [[related.indices]] - name = "categories" - weight = 100 - [[related.indices]] - name = "tags" - weight = 80 - [[related.indices]] - name = "date" - weight = 10 - -[imaging] - anchor = 'Smart' - bgColor = '#ffffff' - hint = 'photo' - quality = 100 - resampleFilter = 'Box' diff --git a/config/_default/languages.toml b/config/_default/languages.toml deleted file mode 100644 index ffb15f94..00000000 --- a/config/_default/languages.toml +++ /dev/null @@ -1,28 +0,0 @@ -[en] - languageName = "English" - contentDir = "content/en" - weight = 10 - [en.params] - languageISO = "EN" - languageTag = "en-US" - -[de] - languageName = "German" - contentDir = "content/de" - weight = 15 - [de.params] - languageISO = "DE" - languageTag = "de-DE" - -[nl] - languageName = "Nederlands" - contentDir = "content/nl" - weight = 20 - [nl.params] - languageISO = "NL" - languageTag = "nl-NL" - titleAddition = "Modern documentatie-thema" - description = "Doks is een Hugo-thema waarmee je moderne documentatie-websites kunt bouwen die veilig, snel en klaar voor SEO zijn — standaard." - titleHome = "Doks thema" - footer = "Mogelijk gemaakt door Netlify, Hugo, en Doks" - alertText = "Introductie van het Doks-kinderthema, verschillende DX + UX-updates en meer! Bekijk Doks v0.2" diff --git a/config/_default/markup.toml b/config/_default/markup.toml deleted file mode 100644 index 0693e588..00000000 --- a/config/_default/markup.toml +++ /dev/null @@ -1,29 +0,0 @@ -defaultMarkdownHandler = "goldmark" - -[goldmark] - [goldmark.extensions] - linkify = true - [goldmark.parser] - autoHeadingID = true - autoHeadingIDType = "github" - [goldmark.parser.attribute] - block = true - title = true - [goldmark.renderer] - unsafe = true - -[highlight] - codeFences = false - guessSyntax = false - hl_Lines = "" - lineNoStart = 1 - lineNos = false - lineNumbersInTable = true - noClasses = false - style = "dracula" - tabWidth = 4 - -[tableOfContents] - startLevel = 2 - endLevel = 6 - ordered = false diff --git a/config/_default/menus/menus.en.toml b/config/_default/menus/menus.en.toml deleted file mode 100644 index 1c69d6d6..00000000 --- a/config/_default/menus/menus.en.toml +++ /dev/null @@ -1,53 +0,0 @@ -[[main]] - name = "Docs" - url = "docs/giới-thiệu-về-linux" - identifier = "docs" - weight = 10 - -[[main]] - name = "Linux Overview" - url = "docs/giới-thiệu-về-linux" - identifier = "linux-overview" - weight = 11 - parent = "docs" - -[[main]] - name = "Linux Distributions" - url = "docs/tìm-hiểu-chung-về-linux-distro" - identifier = "linux-distributions" - weight = 12 - parent = "docs" - -[[main]] - name = "Install Ubuntu (Clean Install)" - url = "docs/cài-đặt-ubuntu-clean-install" - identifier = "install-ubuntu-clean" - weight = 13 - parent = "docs" - -[[main]] - name = "Install Ubuntu (Dual Boot)" - url = "docs/cài-đặt-ubuntu-cho-người-dùng-song-song-với-windows" - identifier = "install-ubuntu-dual-boot" - weight = 14 - parent = "docs" - -[[main]] - name = "15 Days Fly With Tux" - url = "docs/day-0-chào-mừng-đến-với-linux" - identifier = "fly-with-tux" - weight = 30 - -[[main]] - name = "SQL Server" - url = "https://github.com/ubunchuu-truong-us/sqlserver" - identifier = "sqlserver" - weight = 40 - [main.params] - target = "_blank" - -[[social]] - name = "GitHub" - pre = "" - url = "https://github.com/ubunchuu-truong-us" - weight = 10 diff --git a/config/_default/menus/menus.nl.toml b/config/_default/menus/menus.nl.toml deleted file mode 100644 index e530352a..00000000 --- a/config/_default/menus/menus.nl.toml +++ /dev/null @@ -1,39 +0,0 @@ -[[docs]] - name = "Prologue" - weight = 10 - identifier = "prologue" - url = "/docs/prologue/" - -[[docs]] - name = "Help" - weight = 60 - identifier = "help" - url = "/docs/help/" - -[[main]] - name = "Docs" - url = "/docs/prologue/introduction/" - weight = 10 - -# [[main]] -# name = "Blog" -# url = "/blog/" -# weight = 20 - -[[social]] - name = "GitHub" - pre = "" - url = "https://github.com/h-enk/doks" - post = "v0.1.0" - weight = 10 - -[[social]] - name = "Twitter" - pre = "" - url = "https://twitter.com/getdoks" - weight = 20 - -# [[footer]] -# name = "Privacy" -# url = "/privacy-policy/" -# weight = 10 diff --git a/config/_default/module.toml b/config/_default/module.toml deleted file mode 100644 index ea4b46dd..00000000 --- a/config/_default/module.toml +++ /dev/null @@ -1,68 +0,0 @@ -[hugoVersion] - extended = true - min = "0.80.0" - max = "" - -[[mounts]] - source = "node_modules/@hyas/doks/archetypes" - target = "archetypes" - -[[mounts]] - source = "node_modules/@hyas/doks/assets" - target = "assets" - -# [[mounts]] -# source = "node_modules/@hyas/doks/content" -# target = "content" - -[[mounts]] - source = "node_modules/@hyas/doks/data" - target = "data" - -[[mounts]] - source = "node_modules/@hyas/doks/layouts" - target = "layouts" - -[[mounts]] - source = "node_modules/@hyas/doks/static" - target = "static" - -[[mounts]] - source = "node_modules/flexsearch" - target = "assets/js/vendor/flexsearch" - -[[mounts]] - source = "node_modules/katex" - target = "assets/js/vendor/katex" - -[[mounts]] - source = "node_modules/mermaid" - target = "assets/js/vendor/mermaid" - -[[mounts]] - source = "assets" - target = "assets" - -[[mounts]] - source = "static" - target = "static" - -# [[mounts]] -# source = "content" -# target = "content" - -[[mounts]] - source = "layouts" - target = "layouts" - -[[mounts]] - source = "archetypes" - target = "archetypes" - -[[mounts]] - source = "data" - target = "data" - -[[mounts]] - source = "node_modules/@hyas/images/layouts" - target = "layouts" diff --git a/config/_default/params.toml b/config/_default/params.toml deleted file mode 100644 index 28beaa0e..00000000 --- a/config/_default/params.toml +++ /dev/null @@ -1,117 +0,0 @@ -# Meta Data for SEO - -## Homepage -title = "Ubunchuu Trường Ú" -titleSeparator = " " -titleAddition = "Linux made easy." -description = "Ubunchuu Trường Ú là một dự án do một nhóm sinh viên trường KHTN lập nên, mong muốn cung cấp kiến thức bổ ích về linux và giúp các bạn học sinh, sinh viên bước đầu tiếp cận với hệ điều hành linux." - -## Documentation -docsVersion = "0.5" - -# Main menu alignment (l = left, c = center, r = right) and logo options. -main_menu = {align = "l", show_logo = true} - -## Open Graph -images = ["images/linux-transparent.png"] -ogLocale = "en_US" -domainTLD = "https://ubunchuu-truong-us.github.io/" -titleHome = "Ubunchuu Trường Ú" - -## Twitter Cards -# twitterSite = "@getdoks" -# twitterCreator = "@henkverlinde" - -## JSON-LD -# schemaType = "Person" -schemaType = "Organization" -schemaName = "Ubunchuu Trường Ú" -# schemaAuthor = "Henk Verlinde" -# schemaAuthorTwitter = "https://twitter.com/henkverlinde" -# schemaAuthorLinkedIn = "https://www.linkedin.com/in/henkverlinde/" -schemaAuthorGitHub = "https://github.com/ubunchuu-truong-us" -schemaLocale = "en-US" -schemaLogo = "images/linux-transparent.png" -schemaLogoWidth = 512 -schemaLogoHeight = 512 -schemaImage = "images/linux-transparent.png" -schemaImageWidth = 1280 -schemaImageHeight = 640 -# schemaTwitter = "https://twitter.com/getdoks" -# schemaLinkedIn = "" -schemaGitHub = "https://github.com/ubunchuu-truong-us" -# schemaSection = ["docs"] - -## Sitelinks Search Box -siteLinksSearchBox = true - -## Chrome Browser -themeColor = "#fff" - -# Images - Temporarily left in place for backward compatibility -quality = 100 -bgColor = "#fff" -landscapePhotoWidths = [900, 800, 700, 600, 500] -portraitPhotoWidths = [800, 700, 600, 500] -lqipWidth = "20x" -smallLimit = "300" - -# Images -imageResponsive = true -imageConvertTo = "webp" -imageImageSizes = ["480","720","1080","1280","1600","2048"] -singleSize = false -imageAddClass = "img-fluid lazyload blur-up" - -### Image template -defaultImage = "coming-soon.jpg" # put in `./assets/images/` -fillImage = "1270x740 Center" # normalize image size - -# Footer -footer = "Powered by Github Pages, Hugo, and Doks" - -# Feed -copyRight = "Copyright © 2023 Ubunchuu Trường Ú" - -# Alert -alert = false -alertDismissable = true -# alertText = "Introducing the Doks child theme, several DX + UX updates, and more! Check out Doks v0.2" -alertText = "Series mới: 15 Days Fly With Tux 🐧" - -# Edit Page -# repoHost [Github | Gitea | GitLab | Bitbucket | BitbucketServer ] is used for building the edit link based on git hoster -repoHost = "GitHub" -#repoHost = "Gitea" -docsRepo = "https://github.com/ubunchuu-truong-us/ubunchuu-truong-us.github.io" -docsRepoBranch = "main" -docsRepoSubPath = "" -editPage = false -lastMod = false - -[sections] - sectionNav = ["docs"] - -[options] - lazySizes = true - clipBoard = true - instantPage = true - flexSearch = true - searchSectionsShow = [] - searchSectionsIndex = [] - darkMode = true - bootStrapJs = true - breadCrumb = true - highLight = true - kaTex = true - multilingualMode = false - docsVersioning = false - fullWidth = false - navbarSticky = true - toTopButton = true - scrollSpy = false # experimental; needs Bootstrap >= 5.2.0-beta1 - -[menu] - [menu.section] - auto = true - collapsibleSidebar = false diff --git a/config/next/config.toml b/config/next/config.toml deleted file mode 100644 index 9c5e90da..00000000 --- a/config/next/config.toml +++ /dev/null @@ -1 +0,0 @@ -canonifyURLs = false diff --git a/config/postcss.config.js b/config/postcss.config.js deleted file mode 100644 index e8c3b39d..00000000 --- a/config/postcss.config.js +++ /dev/null @@ -1,40 +0,0 @@ -const autoprefixer = require('autoprefixer'); -const purgecss = require('@fullhuman/postcss-purgecss'); -const whitelister = require('purgecss-whitelister'); - -module.exports = { - plugins: [ - autoprefixer(), - purgecss({ - content: [ - './node_modules/@hyas/doks/layouts/**/*.html', - './node_modules/@hyas/doks/content/**/*.md', - './layouts/**/*.html', - './content/**/*.md', - ], - safelist: [ - 'lazyloaded', - 'table', - 'thead', - 'tbody', - 'tr', - 'th', - 'td', - 'h5', - 'alert-link', - 'container-xxl', - 'container-fluid', - ...whitelister([ - './node_modules/@hyas/doks/assets/scss/common/_variables.scss', - './node_modules/@hyas/doks/assets/scss/components/_alerts.scss', - './node_modules/@hyas/doks/assets/scss/components/_buttons.scss', - './node_modules/@hyas/doks/assets/scss/components/_code.scss', - './node_modules/@hyas/doks/assets/scss/components/_syntax.scss', - './node_modules/@hyas/doks/assets/scss/components/_search.scss', - './node_modules/@hyas/doks/assets/scss/common/_dark.scss', - './node_modules/katex/dist/katex.css', - ]), - ], - }), - ], -} diff --git a/config/production/config.toml b/config/production/config.toml deleted file mode 100644 index 9c5e90da..00000000 --- a/config/production/config.toml +++ /dev/null @@ -1 +0,0 @@ -canonifyURLs = false diff --git a/content/en/_index.md b/content/en/_index.md deleted file mode 100644 index 0bd0309f..00000000 --- a/content/en/_index.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: "Ubunchuu Trường Ú" -description: "Một project 'Lai nú' giấu tên tại trường Ú hứa hẹn giúp mọi người bước đầu tiếp cận với Linux, đặc biệt là Ubuntu cùng cách thiết lập chúng như một pro developer." -lead: "Một project 'Lai nú' giấu tên tại trường Ú hứa hẹn giúp mọi người bước đầu tiếp cận với Linux, đặc biệt là Ubuntu cùng cách thiết lập chúng như một pro developer." -date: 2022-12-24 -lastmod: 2022-12-24 -draft: false -images: [./linux.ico] ---- diff --git a/content/en/contributors/_index.md b/content/en/contributors/_index.md deleted file mode 100644 index e225f344..00000000 --- a/content/en/contributors/_index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: "Contributors" -description: "The Doks contributors." -date: 2020-10-06T08:50:29+00:00 -lastmod: 2020-10-06T08:50:29+00:00 -draft: false -images: [] ---- - -The Doks contributors. diff --git a/content/en/contributors/henk-verlinde/_index.md b/content/en/contributors/henk-verlinde/_index.md deleted file mode 100644 index f775534e..00000000 --- a/content/en/contributors/henk-verlinde/_index.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: "Henk Verlinde" -description: "Creator of Hyas." -date: 2020-10-06T08:50:45+00:00 -lastmod: 2020-10-06T08:50:45+00:00 -draft: false -images: [] ---- - -Creator of Hyas. - -[@HenkVerlinde](https://twitter.com/henkverlinde) diff --git a/content/en/docs/15DFWT/0-welcome-to-linux/index.md b/content/en/docs/15DFWT/0-welcome-to-linux/index.md deleted file mode 100644 index d9b2a7a9..00000000 --- a/content/en/docs/15DFWT/0-welcome-to-linux/index.md +++ /dev/null @@ -1,177 +0,0 @@ ---- -title: "Day 0: Chào mừng đến với Linux" -description: "" -lead: "" -date: 2022-12-24 -lastmod: 2022-12-24 -draft: false -images: [] -contributors: ["lelouvincx"] -weight: 401 ---- - -Xin chào, lại là Tux đây! Sau khi cài đặt thành công Ubuntu, bước tiếp theo chúng ta cần làm là thiết lập Ubuntu để có thể sử dụng. Cùng mình đi tiếp những bước cài đặt nhé! - -## 1. Làm quen với môi trường dòng lệnh (CLI) - -Nhìn chung, các hệ máy UNIX như Linux, MacOS đều cung cấp một giao diện làm việc với dòng lệnh (Command Line Interface), hay gọi dân dã là Terminal. Bạn có thể mở terminal bằng icon này hoặc ấn tổ hợp `Crtrl + Alt + T`. - -### Check package update -```bash -sudo apt-get update -sudo apt-get dist-upgrade -``` - -> :information_source: Nhớ dùng mật khẩu đã nhập ở khâu cài đặt nhé! - -### Cài đặt các thư viện cần thiết -```bash -sudo apt-get install software-properties-common build-essential openssl-dev dirmngr gnupg apt-transport-https ca-certificates -y -sudo apt-get install curl wget -y -``` - -> **Note:** Thêm tag `-y` vào giúp bạn không cần chọn `yes/no` trong quá trình cài đặt - -### Cài bộ gõ tiếng Việt - -Có một vài bộ gõ tiếng Việt trên mạng như IBus Unikey, IBus Bamboo, IBus Teni, ... nhưng ở đây Tux sẽ hướng dẫn bạn cài IBus Bamboo, hiện tại là phiên bản hoàn thiện nhất để gõ tiếng Việt trên Linux. - -Trang chủ của [IBus Bamboo](https://github.com/BambooEngine/ibus-bamboo). - -Chạy từng dòng một như dưới đây nhé: - -```bash -sudo add-apt-repository ppa:bamboo-engine/ibus-bamboo -sudo apt-get update -sudo apt-get install ibus ibus-bamboo --install-recommends -ibus restart -env DCONF_PROFILE=ibus dconf write /desktop/ibus/general/preload-engines "['BambooUs', 'Bamboo']" && gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us'), ('ibus', 'Bamboo')]" -``` - -Sau khi chạy xong, bạn Log Out lại máy để IBus được khởi động. - -(Cần có máy để viết chính xác) - -## 2. Cài đặt ứng dụng cơ bản - -### Htop và neofetch - kiểm tra tình trạng của máy - -Htop giúp bạn kiểm tra tài nguyên hiện tại của máy như CPU, RAM, swap, ... Bạn cũng có thể tìm kiếm, filter, sắp xếp các process đang chạy. - -![](https://i.imgur.com/88xvSO5.png) - -Kiểm tra htop đã được cài hay chưa: - -```bash -htop --version -# Nếu chưa được cài -sudo apt install htop -``` - -Bên cạnh htop, neofetch cho bạn cái nhìn tổng quan về hiện trạng của Linux với một giao diện đẹp: - -![](https://i.imgur.com/XX3ewNG.png) - -Kiểm tra neofetch đã được cài hay chưa: -```bash -neofetch -# Nếu chưa được cài -sudo apt install neofetch -``` - -### Flameshot - chụp màn hình - -Tiếp theo là ứng dụng để chụp màn hình, ở đây Tux dùng flameshot vì độ nhẹ và dễ chỉnh sửa: - -```bash -sudo apt-get install flameshot -y -``` - -> :information_source: Thêm tag `-y` để tự động chọn yes khi cài đặt - -(config flameshot vào autostart, bind phím tắt nhưng mà để có máy rồi làm) - -### Zoom - -Zoom là ứng dụng không thể thiếu sau thời đại dịch Covid-19. Hiện tại Zoom đã release phiên bản .deb cho các hệ Debian. Truy cập trang download của Zoom: https://zoom.us/download?os=linux - -Chọn như trong hình: - -![](https://i.imgur.com/dmAReAH.png) - -Sau khi download về, bạn có thể vào thư mục Downloads và click vào link để chạy gói cài đặt, y như Windows vậy :D - -### VLC - -VLC là ứng dụng mã nguồn mở để xem video phổ biến trên Linux. - -```bash -# Kiểm tra VLC đã cài trong máy -vlc --version -# Cài đặt VLC -sudo apt-get install vlc -y -``` - -### Visual Studio Code - -Tương tự như Zoom, Visual Studio Code cũng cung cấp bộ cài cho bạn. Truy cập trang download của VSCode: https://code.visualstudio.com/download - -Chọn file .deb, sau đó tải về và cài đặt như bình thường. -![](https://i.imgur.com/2MewLMw.png) - -Tới đây chắc bạn cũng hình dung được cách cài đặt ứng dụng trên Linux rồi đúng không nào. Tux sẽ tổng hợp lại giúp các bạn. - -Giả sử bạn cần cài ứng dụng tên là **ubunchuu**: - -- Cài đặt bằng terminal - -```bash -sudo apt update -sudo apt install ubunchuu -``` - -- Cài đặt bằng gói deb - - Search trên mạng: download ubunchuu for ubuntu - - Tìm kiếm file .deb phù hợp với phiên bản của mình (22.04) - - Tải về và cài đặt - -- Ngoài 2 cách phổ biến trên, với một số ứng dụng sẽ có câu lệnh chuyên dụng để cài đặt, ví dụ như để cài Fig Terminal, bạn chỉ cần copy và chạy câu lệnh này: - -![](https://i.imgur.com/g48j4ao.png) - -### R và R Studio - -Truy cập trang download của R Studio và follow theo hướng dẫn trên trang: https://posit.co/download/rstudio-desktop/ - -### Challenge: Cài đặt browser ưa thích của bạn -*E.g:* edge/chrome/brave/opera - -Dựa theo kiến thức ở trên, hãy thử tự cài browser ưa thích của bạn vào máy nhé! Nếu gặp bất cứ khó khăn nào, hãy liên hệ với **Ubunchuu** qua messenger. - -![](https://i.imgur.com/K0tnDFP.png) - -## 3. Những ứng dụng non-native trên Linux và cách khắc phục - -### Microsoft Office - -Để thay thế Microsoft Office, bạn có thể dùng ứng dụng cài sẵn như Libre Office. Hoặc WPS Office cho UI đẹp hơn và chức năng tốt hơn. Nhưng cũng trade-off vì WPS sẽ nặng hơn và cần config để Linux mở mặc định bằng WPS. - -Link download WPS: https://www.wps.com/office/linux/ - -### Matlab, R Studio - -Matlab không hỗ trợ Linux, nhưng bạn có thể sử dụng online ở nlink sau: -- Matlab: https://matlab.mathworks.com/ -- R Studio: https://posit.cloud/ (có thể sử dụng R Studio bản online nếu thấy package R Studio bên trên khá nặng) - -### Maple - -Hiện tại có phiên bản Maple cho Linux, nhưng khá nặng và việc cài đặt rườm rà nên Tux không viết vào. Bạn có thể xem hướng dẫn [ở đây](https://cyanogenmods.org/how-to-install-maple-in-ubuntu-linux/) nhé. - -### Visual Studio - -Hiện tại không có phiên bản cho Linux/Ubuntu. Nhưng bạn có thể sử dụng VSCode thay thế, bằng việc cài plugin liên quan. - -### Zalo - -Hiện tại không có phiên bản Zalo cho Linux, bạn có thể dùng Zalo web để thay thế. diff --git a/content/en/docs/15DFWT/1-basic-command/index.md b/content/en/docs/15DFWT/1-basic-command/index.md deleted file mode 100644 index ce513e32..00000000 --- a/content/en/docs/15DFWT/1-basic-command/index.md +++ /dev/null @@ -1,180 +0,0 @@ ---- -title: "Day 1: Câu lệnh cơ bản với terminal" -description: "" -lead: "" -date: 2023-05-31 -lastmod: 2023-05-31 -draft: false -images: [] -contributors: ["thangbuiq"] -weight: 402 ---- - -Để làm việc với file trên Linux (hay trên Linux server), các bạn không thể sử dụng các thao tác bằng đồ họa (kéo thả như trên Windows) mà phải thao tác qua cửa sổ dòng lệnh (command-line). Điều này gây khó khăn cho những người không quen thuộc với việc sử dụng console. - -Thông qua bài viết này, Tux sẽ giúp mọi người làm quen với một số lệnh cơ bản để quản lý file trên hệ thống Linux. Chúng ta sẽ bắt đầu với các lệnh này cơ bản, đơn giản và dễ nhớ, giúp cho việc quản lý file trên Linux trở nên dễ dàng hơn. - -> :bulb: Hãy nhớ nút mở Terminal mặc định trên Linux là Ctrl+Alt+T nhé! - -![](https://hackmd.io/_uploads/B1ic3C4U3.png) - - -## Các lệnh cơ bản - -Dưới đây là một số lệnh cơ bản để quản lý file trên Linux: -Các lệnh đều tuần theo syntax như sau: [command] [option] (option là các tags) - -### 1. `pwd` - -Lệnh `pwd` (print working directory) dùng để hiển thị đường dẫn thư mục hiện tại. Mặc định khi chưa thực hiện thao tác *"đổi thư mục"* thì khi chúng ta mới mở Terminal lên, chúng ta sẽ đang ở thư mục **/home/username**. -Lệnh có 2 tags chính: -L (Logical), -P (Physical) - -**Ví dụ:** - -```bash -pwd #Output: /home/ubunchuu nếu username là ubunchuu -``` - -### 2. `cd` - -Lệnh `cd` (change directory) dùng để di chuyển đến thư mục khác. - -**Ví dụ:** - -```bash -cd /home/ubunchuu/oop-project -``` -> Lúc này khi lệnh cd đã được thực thi, chúng ta sẽ có output của lệnh `pwd` bên trên là: `/home/ubunchuu/oop-project` - -Mẹo riêng dành cho lệnh `cd`: -- `cd`: gõ chỉ mình lệnh `cd` giúp ta chuyển nhanh đến thư mục `/home/username` hiện tại mà không cần phải ghi địa chỉ ra. -- `cd ..`: giúp ta đi đến thư mục mẹ của thư mục hiện tại. -- `cd ~[username]`: giúp ta đi đến user khác nằm trong máy tính Linux. -- `cd -`: đi đến thư mục trước đó. - - - -### 3. `ls` - -Lệnh `ls` (list) dùng để liệt kê nội dung của thư mục hiện tại. -Các tags của lệnh list: -- `ls -R`: liệt kê tất cả files bên trong mọi thư mục con. -- `ls -a`: hiện ra tất cả files kể cả files đang bị ẩn (hidden). -- `ls -lh`: hiên ra files kèm kích thước của files ví dụ như `ubunchuu 2022MB`. - -**Ví dụ:** - -```bash -ls -a #list ra tất cả file, kể cả file ẩn trong thư mục hiện tại -``` - - -### 4. `touch` - -Lệnh `touch` dùng để tạo ra một file mới tại thư mục hiện tại hoặc theo đường dẫn của file. - -**Ví dụ:** - -```bash -touch /home/ubunchuu/document/penguin.cpp # tạo file vào đường dẫn này -touch penguin.cpp # tạo file tại thư mục đang cd vào -``` - -### 5. `mkdir` - -Lệnh `mkdir` (make directory) dùng để tạo ra một thư mục mới tại đường dẫn hiện tại hoặc đường dẫn đầy đủ tự định nghĩa. - -**Ví dụ:** - -```bash -mkdir ubunchuu-vip #tạo thư mục tên ubunchuu bên trong thư mục hiện tại -mkdir /home/ubunchuu/document/ubunchuu-vip #tạo thư mục tên ubunchuu bên trong thư mục hiện tại -``` - -### 6. `cat` - -Lệnh `cat` dùng để hiển thị nội dung của một file. -Một số mẹo hay với lệnh cat: -- `cat > filename.txt `: in nội dung của file này vào 1 file mới. -- `cat filename1.txt filename2.txt > filename3.txt`: lấy ra output của `filename1.txt` và `filename2.txt`, nối chúng lại rồi đưa vào một file mới là `filename3.txt`. -- `tac filename.txt`: in nội dung file này theo thứ tự ngược lại. - -**Ví dụ:** - -```bash -cat cautrucdulieu.txt # In output bên trong file trên Terminal -``` - -### 7. `cp` - -Lệnh `cp` (copy) dùng để sao chép một file hoặc một thư mục tới một địa chỉ. -Một số cách dùng với lệnh `cp`: -- `cp *.py /python`: copy tất cả file có đuôi .py vào thư mục python -- `cp filename1.txt filename2.txt /stored`: lưu nhiều files vào 1 địa chỉ, điều kiện là các files phải ở trong cùng thư mục đang `cd` vào. -- `cp -R /ubunchuu /best-website-to-learn-linux`: tag `-R` giúp ta copy được cả một thư mục vào một địa chỉ xác định. - -**Ví dụ:** - -```bash -cp hoclinux.txt mybrain/ -``` - -### 8. `mv` - -Lệnh `mv` (move) dùng để di chuyển hoặc đổi tên một file hoặc thư mục. -Các cách dùng lệnh mv: -- `mv filename.txt /home/username/Documents`: di chuyển file đến địa chỉ thư mục. -- `mv old_filename.txt new_filename.txt`: đổi tên một file sang tên khác. - -**Ví dụ:** -```bash -mv old-ubunchuu.cpp new-ubunchuu.cpp -``` - -### 9. `rm` - -Lệnh `rm` (remove) dùng để xóa một file hoặc thư mục. -Các tags của lệnh `rm`: -* `-i` : đưa ra thông báo khi xóa. -* `-f` : xóa files mà không cần xác nhận từ người dùng. -* `-r` : xóa files lẫn thư mục. -> Ta cũng có thể sử dụng kết hợp các tags với nhau như : `-rf` - -**Ví dụ:** - -```bash -rm -rf windows # xóa tất cả file và thư mục con của thư mục windows -``` - -### 10. `grep` - -Lệnh `grep` dùng để tìm kiếm và hiển thị các dòng trong file phù hợp với một mẫu (pattern) cụ thể. - -**Ví dụ:** - -```bash -grep "pattern" filename.txt -grep linux ubunchuu.txt # hiển thị ra những dòng có linux trong file. -``` - -> Ngoài các lệnh dùng thường xuyên trên, Ubunchuu khuyến khích các bạn nên học thêm nhiều lệnh hay khác, Ubunchuu recommend cách học nhanh qua cheatsheet như: https://www.guru99.com/linux-commands-cheat-sheet.html - -## Bài tập luyện tập: Ngày 1 -Học phải đi đôi với hành, Ubunchuu cung cấp cho các bạn một bài tập điều khiển thao tác với files và thư mục (làm quen với Terminal) của Ngày 1 trong hệ thống bài học "15 Days Flying With Tux" như sau: - -**Bài tập sử dụng các lệnh điều khiển Linux** - -*Hãy thực hiện các tác vụ sau đây bằng cách sử dụng các lệnh điều khiển Linux đã học:* - -1. Tạo một thư mục có tên là **"linux_learning"**. -1. Di chuyển vào thư mục **"linux_learning"**. -1. Tạo một file có tên là **"my_file.txt"** trong thư mục **"linux_learning"**. -1. Mở trình soạn thảo văn bản lên, nhập **"hello world"**, lưu và đóng nó lại. -1. Hiển thị các files có trong thư mục **"linux_learning"**. -1. Sao chép file **"my_file.txt"** vào một thư mục khác có tên là **"backup"**. -1. Đổi tên file **"my_file.txt"** thành **"new_file.txt"**. -1. Di chuyển vào thư mục **"backup"**. -1. Xóa thư mục **"linux_learning"** và tất cả nội dung bên trong. -1. Tìm kiếm các dòng trong file **"new_file.txt"** chứa từ **"hello"** và hiển thị kết quả. - -Hãy take note lại các lệnh bạn sử dụng để thực hiện từng tác vụ trên và kết quả sau khi thực hiện vào ứng dụng take note (ví dụ: Notion) của các bạn nhé. diff --git a/content/en/docs/15DFWT/2-terminal-setup/index.md b/content/en/docs/15DFWT/2-terminal-setup/index.md deleted file mode 100644 index 545dd3a5..00000000 --- a/content/en/docs/15DFWT/2-terminal-setup/index.md +++ /dev/null @@ -1,249 +0,0 @@ ---- -title: "Day 2: Cấu hình Terminal Emulator" -description: "" -lead: "" -date: 2023-05-27 -lastmod: 2023-05-27 -draft: false -images: [] -contributors: ["lelouvincx", "thangbuiq"] -weight: ---- - -Trong bài viết này, chúng ta sẽ học cách cài đặt và tùy chỉnh terminal trên Ubuntu. Terminal là một phần quan trọng trong quá trình làm việc với Linux. Chúng ta sẽ sử dụng **Alacritty** làm terminal emulator. - -![](static/alacritty.png) - - -## Alacritty là gì? Vì sao rất nên dùng làm Terminal Emulator? - -**Alacritty** là một terminal emulator nhanh và nhẹ, có tích hợp **GPU**. Nó được viết bằng **Rust** và có thể chạy trên nhiều hệ điều hành khác nhau như **Linux, macOS, Windows**. - -> Ghé thăm trang chủ của Alacritty ở đây nhé: https://alacritty.org - -![](static/image.png) - -Lý do nên yêu ngay Alacritty: -- Giao diện rất modern và đẹp (ngay cả khi để default): Alacritty được thiết kế để trông đẹp mắt ngay cả khi bạn không tùy chỉnh gì cả. Em nó có một **giao diện tối giản, nhưng rất thẩm mỹ.** - -- Khả năng customizing cao: Alacritty cho phép ta tùy chỉnh mọi thứ, từ font chữ, màu sắc, đến các phím tắt. Nếu cánh cụt là một ubunchuu-er thì chắc chắn sẽ thích vọc vạch cả ngày với Alacritty. - -- Hiệu năng cao: Alacritty được viết bằng Rust, một ngôn ngữ lập trình rất nổi tiếng về hiệu năng. Alacritty có thể chạy rất nhanh và nhẹ nhàng, đặc biệt là khi ta sử dụng nó để làm việc với các tools khác như vim, tmux, ... - -## Cài đặt Alacritty - -### Cài các packages dependencies - -```bash -sudo apt-get install cmake pkg-config libfreetype6-dev libfontconfig1-dev libxcb-xfixes0-dev libxkbcommon-dev python3 git-core -y -``` - -### Thêm PPA repository và cài đặt thôi - -``` bash -sudo add-apt-repository ppa:aslatter/ppa -y -sudo apt-get update -sudo apt-get install alacritty -y -``` - -> Mở Alacritty bằng cách search trong danh sách App thôi 🎉 - -## Welcome to Alacritty - -![](static/welcome.png) - -Lúc này, Alacritty cơ bản đã được cài đặt thành công vào máy của bạn. Tuy nhiên, Alacritty vẫn sử dụng các config default và những thứ này hoàn toàn có thể customize lại được tùy ý theo ý thích của mình. - -## Tùy chỉnh Alacritty - -Những config của Alacritty thường nằm trong một file YAML. Bạn có thể tìm default config tại **`~/.config/alacritty/alacritty.yml`** và chỉnh sửa theo ý muốn. - -> Nếu không thấy file default, hãy clone ở đây về: -> https://github.com/tmcdonell/config-alacritty/blob/master/alacritty.yml - -Một số field cần lưu ý khi config Alacritty: -* **font**: cho phép bạn chọn font chữ mặc định. -* **colors**: Bạn có thể tùy chỉnh màu sắc của terminal. -* **key_bindings**: cho phép bạn định nghĩa các phím tắt tùy chỉnh. - -Hãy xem qua cấu trúc của file config YAML của Alacritty: - -```yaml -env: - TERM: xterm-256color - -window: - padding: - x: 6 - y: 6 - -scrolling: - history: 5000 - -font: - normal: - family: JetBrainsMono Nerd Font Mono - style: Regular - bold: - family: JetBrainsMono Nerd Font Mono - style: Bold - italic: - family: JetBrainsMono Nerd Font Mono - style: Italic - bold_italic: - family: JetBrainsMono Nerd Font Mono - style: Bold Italic - size: 14.0 # Kích thước font chữ - offset: - x: 1 - y: 1 - -colors: - # Chỗ này dùng để config theme cho terminal - # Cánh cụt nhà mình có thể tham khảo thêm tại: - # https://github.com/alacritty/alacritty-theme -background_opacity: 0.95 # Độ trong suốt của background - -key_bindings: - # Đây là phần config các shortcut, tùy chỉnh theo ý thích của mình thôi nhé - # Xem syntax mẫu dưới đây nhé - - { key: Home, mods: Shift, action: ScrollToTop, mode: ~Alt } -``` - -## Cài Alacritty làm terminal mặc định - -```bash -sudo update-alternatives --install /usr/bin/x-terminal-emulator x-terminal-emulator $(which alacritty) 10 -sudo update-alternatives --config x-terminal-emulator -``` - -## Cài đặt Nerd Font - -Một list các nerd fonts mà nhà cánh cụt recommend: -```text -https://github.com/ryanoasis/nerd-fonts -``` - -Có nhiều nerd fonts cho bạn lựa chọn, nhưng ở đây recommend `JetBrains Mono Nerd Font Mono`. -Link download: -```text -https://github.com/ryanoasis/nerd-fonts/releases/download/v3.1.1/JetBrainsMono.zip -``` - -1. Download file zip trên về bằng lệnh `wget` hoặc `curl`. -```bash -# Dùng wget để download -wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.1.1/JetBrainsMono.zip - -# Dùng curl để download -curl -L https://github.com/ryanoasis/nerd-fonts/releases/download/v3.1.1/JetBrainsMono.zip -O JetBrainsMono.zip -``` -2. Extract file zip vừa download về -```bash -unzip JetBrainsMono.zip -``` -3. Place them into `~/.fonts` -```bash -mkdir -p ~/.fonts -cp JetBrainsMono/*.ttf ~/.fonts -``` -4. Refresh font cache -```bash -fc-cache -f -v -``` - -## Config của Tux (bằng Toml) - -> Link: https://github.com/ubunchuu-truong-us/dotfiles/blob/main/alacritty.toml - -Hoặc các cánh cụt cũng có thể copy trực tiếp từ đây và paste vào file config của mình: (nhớ đổi đuôi file thành `.toml` nhé) - -```toml -live_config_reload = true - -[colors] -draw_bold_text_with_bright_colors = true - -[colors.bright] -black = "#565656" -blue = "#49a4f8" -cyan = "#99faf2" -green = "#c0e17d" -magenta = "#a47de9" -red = "#ec5357" -white = "#ffffff" -yellow = "#f9da6a" - -[colors.normal] -black = "#2e2e2e" -blue = "#47a0f3" -cyan = "#64dbed" -green = "#abe047" -magenta = "#7b5cb0" -red = "#eb4129" -white = "#e5e9f0" -yellow = "#f6c744" - -[colors.primary] -background = "#101421" -foreground = "#fffbf6" - -[cursor] -style = "Block" - -[env] -TERM = "alacritty" - -[font] -size = 13 - -[font.normal] -family = "JetBrainsMono Nerd Font Mono" - -[scrolling] -history = 10000 -multiplier = 3 - -[selection] -save_to_clipboard = true -semantic_escape_chars = ",│`|:\"' ()[]{}<>\t" - -[window] -decorations = "Full" -dynamic_padding = false -opacity = 0.95 -startup_mode = "Windowed" -title = "Alacritty" - -[window.class] -general = "Alacritty" -instance = "Alacritty" - -[window.dimensions] -columns = 160 -lines = 45 - -[window.padding] -x = 5 -y = 0 -``` - -## Uninstall alacritty - -Nếu không thích emulator này, các bạn có thể bye bye em nó bằng lệnh: - -```bash -sudo apt-get remove -y alacritty -``` - -### Other options - -Về terminal emulator sẽ có rất nhiều option khác cho mọi người lựa chọn, như: -- Yakuake -- Terminator -- Tilda -- ... - -Tuy nhiên, chúng mình sẽ không bao giờ giới thiệu và guide một cái gì không tốt cho mọi người. Khi mới bắt đầu học Linux và muốn nhập môn với bộ môn custom, tụi mình vẫn khuyên các bạn nên sử dụng **Alacritty**, đây cũng là cơ hội để chúng mình tập làm quen với việc config những cái cơ bản bằng file **YAML** (nếu bạn chưa dùng qua YAML bao giờ). - -> Tin chúng mình đi, sau khi thử qua tất cả Emulator thì chúng mình đã nhận ra, **Alacritty** là mượt nhất 🌻 diff --git a/content/en/docs/15DFWT/_index.md b/content/en/docs/15DFWT/_index.md deleted file mode 100644 index ee6df08a..00000000 --- a/content/en/docs/15DFWT/_index.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: "15 Days Flying With Tux" -description: "A Series to dive into the linux's world with Tux" -date: 2023-05-19 -lastmod: 2023-05-19 -draft: false -images: [] -weight: 4 ---- diff --git a/content/en/docs/Installation Guide/1-clean-install/index.md b/content/en/docs/Installation Guide/1-clean-install/index.md deleted file mode 100644 index 4fb2df01..00000000 --- a/content/en/docs/Installation Guide/1-clean-install/index.md +++ /dev/null @@ -1,123 +0,0 @@ ---- -title: "Cài đặt Ubuntu (clean install)" -description: "" -lead: "" -date: 2022-12-24 -lastmod: 2022-12-24 -draft: false -images: [] -contributors: ["lelouvincx, thangbuiq, chimlun0910"] -weight: 301 ---- - -## 1. Giới thiệu về Ubuntu -### Ubuntu hoàn toàn miễn phí và có thể dễ dàng cài đặt trên mọi cấu hình: -Khác với Windows và MacOS, Ubuntu không yêu cầu một khoản phí bất kỳ nào để có thể cài đặt và sử dụng hệ điều hành. - -Việc cài đặt Ubuntu theo tụi mình đánh giá là đơn giản hơn việc cài đặt hệ điều hành Windows khá nhiều. Các bạn chỉ cần có vốn tiếng anh nhất định và sự hiểu biết đơn giản về máy tính. -### Ubuntu đáp ứng nhu cầu về cá nhân hóa: -Ubuntu có tính cá nhân hóa cao hơn khi so sánh với bất kỳ hệ điều hành phổ biến hiện nay (Windows, MacOS). Bạn có thể tùy chỉnh ở nhiều khía cạnh liên quan đến UI để phục vụ cho nhu cầu cá nhân hóa của bản thân. ->Nếu giao diện mặc định của Ubuntu đã quá nhàm chán, Ubunchuu khuyến khích các bạn tìm hiểu về chủ đề này. UI Customization ở Linux thường không quá ảnh hưởng quá nhiều đến hiệu năng của máy (như ngốn RAM, ăn CPU, ..) ->Trong tương lai, Ubunchuu sẽ dành một bài viết riêng về chủ đề này. Tuy nhiên, nếu các bạn muốn tìm hiểu trước, tụi mình sẽ để đường link tham khảo: [LinuxScoop](https://www.youtube.com/@linuxscoop) - một trong những kênh youtube nổi tiếng về Linux UI Customization. -### Một lựa chọn tốt cho việc lập trình: -Nếu bạn là một dân IT hoặc là một người yêu thích việc gõ code, hoặc cho dù là không đi nữa. Nếu công việc của bạn có liên quan đến việc lập trình, Ubuntu chính là một lựa chọn tốt bởi Ubuntu cung cấp cho bạn một Terminal với sức mạnh "tuyệt đối". Đối với nhiều lập trình viên, việc thao tác với chuột thường khá ít và thao tác dòng lệnh (command line) trên Linux phải gọi là rất "đã" và tốt hơn Windows rất nhiều. Hơn nữa, hầu hết các ngôn ngữ lập trình đều hỗ trợ [CLI (Command Line Interface)](https://www.w3schools.com/whatis/whatis_cli.asp) điều này là cần thiết với các lập trình viên. -### Ubuntu có tính bảo mật cao: -Nghe có vẻ phi lý khi mà Ubuntu là một hệ điều hành miễn phí, mã nguồn mở nhưng lại có tính bảo mật cao? Ubuntu nói riêng và Linux nói chung đều sở hữu quyền "root", điều này cho phép bạn thao tác với hệ thống ở quyền hạn cao nhất (tương đương với Administrator bên Windows). Tuy nhiên, mặc định người dùng hệ thống không được cấp quyền này và nếu có cuộc tấn công nào vào máy tính nhưng lại không có quyền "root" thì cũng phải là 1 điều gì đó quan ngại. ->Nếu Ubuntu chưa phải là sự lựa chọn phù hợp của bạn, hãy tham khảo những Distro khác mà tụi mình đã lên bài ở đây nhé: [Tìm hiểu chung về Linux Distro](https://ubunchuu-truong-us.github.io/docs/t%C3%ACm-hi%E1%BB%83u-chung-v%E1%BB%81-linux-distro/?fbclid=IwAR3LMmxrlqoG5AMh1DWm2bN2k9Nj-_AkfizHm9XWwIil-WdJeP4rWib02a8) - -## 2. Các bước chuẩn bị -> Ubuntu yêu cầu thiết bị của bạn đáp ứng những yêu cầu sau: -> - [x] 2 GHz dual-core processor hoặc hơn. -> - [x] Tối thiếu 4 GB RAM (Ubunchu khuyến khích thiết bị của các bạn nên có ít nhất 8 GB RAM để mọi tác vụ của hệ thống trở nên mượt mà). -> - [x] Tối thiểu 25 GB dung lượng ổ đĩa. -> - [x] Một kết nối Internet xuyên suốt quá trình cài đặt để hệ thống có thể cập nhật và tải những tài nguyên cần thiết. -> - [x] USB Boot chứa bộ cài Ubuntu. - - -### Backup dữ liệu -Việc [Backup](https://en.wikipedia.org/wiki/Backup) tất cả dữ liệu trong máy của bạn trước khi cài đặt Ubuntu là một điều hết sức cần thiết vì trong quá trình cài đặt luôn có xác suất rất nhỏ xảy ra những lỗi liên quan đến hệ điều hành và phần cứng. -Ubunchuu khuyến khích các bạn nên Backup dữ liệu của mình sang một nơi an toàn như [Google Drive](https://www.google.com/intl/vi_VN/drive/), [OneDrive](https://www.microsoft.com/en-us/microsoft-365/onedrive/online-cloud-storage), [Dropbox](https://www.dropbox.com/), .. để đề phòng trường hợp mất mát dữ liệu khi cài đặt nhé. -### Ghi lại các ứng dụng cần dùng -Trước khi cài đặt Ubuntu, các bạn nên có một cái nhìn tổng quát lại nhu cầu và mục đích của các bạn khi sử dụng Ubuntu. Và hãy đảm bảo rằng nếu các bạn cần làm việc trên một phần mềm nào, phần mềm đó cần có tính tương thích và sẵn sàng để dùng. -> [Tìm hiểu chung về Linux Distro](https://ubunchuu-truong-us.github.io/docs/t%C3%ACm-hi%E1%BB%83u-chung-v%E1%BB%81-linux-distro/?fbclid=IwAR3LMmxrlqoG5AMh1DWm2bN2k9Nj-_AkfizHm9XWwIil-WdJeP4rWib02a8) -### Lưu lại tài khoản, mật khẩu, cài đặt riêng của ứng dụng -Tất nhiên là chúng ta sẽ không muốn mất thời gian để thực hiện công việc "Quên mật khẩu" đâu nhỉ ? Hãy ghi nhớ những tài khoản cần thiết cho ứng dụng bạn làm việc để cho việc cài đặt, trải nghiệm tốt nhất có thể. -### Chuẩn bị USB Boot -Dung lượng của một [Linux Distro](https://ubunchuu-truong-us.github.io/docs/t%C3%ACm-hi%E1%BB%83u-chung-v%E1%BB%81-linux-distro/?fbclid=IwAR3LMmxrlqoG5AMh1DWm2bN2k9Nj-_AkfizHm9XWwIil-WdJeP4rWib02a8) sẽ dao động trong khoảng từ dưới 1 GB cho đến trên 10 GB. Tuy vậy, một distro thông thường với hầu hết các tính năng có sẵn sẽ có dung lượng dao động từ 3 GB đến 5 GB. Ubunchuu khuyến khích các bạn nên chuẩn bị một USB có dung lượng từ 8 GB trở lên để việc tạo USB boot, cài đặt trở nên mượt mà. - -**Bước 1:** Các bạn cần tải phần mềm để thực hiện công việc tạo USB boot cho việc cài đặt. Ở đây, Ubunchuu đề xuất phần mềm [Rufus](https://rufus.ie/en/) - một phần mềm dễ sử dụng nhất để tạo USB khởi động trên máy tính và được đánh giá là một trong những công cụ tốt nhất. - -**Bước 2:** Sau khi tải về, các bạn mở file .exe lên. Rufus không yêu cầu quá trình cài đặt nên các bạn chỉ cần tải về và sử dụng luôn. - -![](https://i.imgur.com/fE66a45.png) - -**Bước 3:** Ở mục đầu tiên (**Device**), các bạn cần chọn USB được dùng trong việc cài đặt. Thông thường, nếu thiết bị của bạn chỉ cắm duy nhất 1 chiếc USB, tên của USB sẽ hiện ra trong ô này. - -**Bước 4:** Ở phần **Boot selection**, các bạn ấn vào **"Select"** và tiến hành chọn file ISO Ubuntu đã tải về. - -![](https://i.imgur.com/xnN26ZC.png) - -> Tùy thuộc vào phiên bản sẽ có tên khác nhau, của tụi mìn ở đây là "ubuntu-22.04.2-desktop-amd64.iso" - -**Bước 5:** Những tùy chọn khác, Ubunchuu khuyến khích các bạn để mặc định. Sau đó, ấn **"Start"**. Một hộp thoại mới hiện lên, các bạn chọn dòng **"Write in ISO Image mode (Recommended)"**. - -![](https://i.imgur.com/JuTQKaK.png) - -**Bước 6:** Rufus sẽ hỏi lại về việc xóa hết tất cả dữ liệu trong USB để chuẩn bị cho việc tạo USB boot. Nếu các bạn có dữ liệu gì quan trọng, vui lòng chọn **"Cancel"** và di chuyển những dữ liệu ra ngoài USB. Nếu không, hãy chọn **"OK"**. Các bạn cần đợi một khoảng thời gian ngắn để Rufus thực hiện quá trình của mình. - -![](https://i.imgur.com/udeLhmq.png) - -## 3. Tiến hành cài đặt Ubuntu -Sau khi đã hoàn thành xong việc tạo USB boot chứa bộ cài Ubuntu, Ubunchuu sẽ đưa các bạn đến với những bước cài đặt chính. - -**Bước 1:** Khởi động lại thiết bị, cắm USB và tiến hành truy cập vào Menu Boot. ->Tùy thuộc vào từng hãng thiết bị mà sẽ có những phím tắt khác nhau để truy cập vào Menu Boot (các phím tắt có thể là F1 -> F12, ESC, DEL, ...). Chi tiết, các bạn truy cập vào link [này](https://www.tomshardware.com/reviews/bios-keys-to-access-your-firmware,5732.html) hoặc thử các phím tắt theo hình bên dưới: - -
- -
-
- -**Bước 2:** Một màn hình đen với các dòng chữ trắng sẽ hiện lên (đối với phiên bản Ubuntu 22.04 LTS trở lên). Các bạn chọn dòng đầu tiên **"Try or Install Ubuntu"**. Lúc này, các bạn cần chờ một khoảng thời gian để bộ cài từ USB được chuẩn bị. -![](https://i.imgur.com/PDzhxmR.png) - -**Bước 3:** Ubunchuu nhận thấy hầu hết các distro sẽ hỗ trợ tính năng thử nghiệm để mọi người có thể làm quen cũng như khám phá những tính năng của distro đó để đưa ra sự lựa chọn cài đặt hoặc hủy bỏ. Nếu các bạn cảm thấy hài lòng với Ubuntu, hãy chọn **"Install Ubuntu"**. -![](https://i.imgur.com/GbEtHfV.png) - -**Bước 4:** Ubuntu sẽ yêu cầu chọn ngôn ngữ bàn phím, các bạn nên chọn **"English (US)"**. Chọn **"Next"**. -![](https://i.imgur.com/Vem0MQq.png) - -**Bước 5:** Ở bước này, Ubuntu sẽ hỏi rằng bạn muốn cài đặt một phiên bản đầy đủ trình duyệt web, các tiện ích, phần mềm ứng dụng cần thiết (**"Normal installation"**) hay là phiên bản rút gọn với những tiện ích cần thiết (**"Minimal installation"**). Ubunchuu khuyến khích các bạn cài đặt phiên bản đầy đủ (**"Normal installation"**). Ở các lựa chọn sau, các bạn nên tích hết để trong quá trình cài đặt, các bản cập nhật và một số phần mềm bổ sung từ bên thứ 3 sẽ được sẽ được tải xuống. Chọn **"Continue"**. -![](https://i.imgur.com/7vjmstM.png) - -> Tuy nhiên, các bạn không cần thiết phải chọn hết các tùy chọn để quá trình cài đặt được diễn ra nhanh hơn. - -**Bước 6:** Đây là bước quan trọng trong quá trình cài đặt Ubuntu. Chúng ta sẽ có các lựa chọn như sau: -![](https://i.imgur.com/SKd9CRh.png) - -- **Install Ubuntu alongside Windows Boot Manager**: Nếu các bạn muốn cài song song Ubuntu và Windows, đây là lựa chọn phù hợp cho bạn. Ubuntu sẽ tự động nhận diện và cài đặt song song với Windows vào phân vùng trống trên ổ cứng. -- **Erase disk and install Ubuntu**: Toàn bộ ổ cứng sẽ được xóa và quá trình cài mới Ubuntu sẽ diễn ra. Lúc này, Windows sẽ không còn tồn tại nữa. -- **Something else:** Tùy chọn cài đặt một cách thủ công. -> Ubunchu cần các bạn chọn vào mục **"Erase disk and install Ubuntu"**. Chọn **"Install now"**. Hoặc nếu các bạn cần tùy chọn nâng cao cho các phân vùng của Ubuntu, xin hãy chọn **"Something else"** và xem qua bước 7. - -**Bước 7:** (Optional - chỉ dành cho những bạn chọn **"Something else"**) -> Xin mời skip bước này và xem đến bước 8 nếu bạn không muốn chia phân vùng tùy thích theo yêu cầu. - -Các bạn xem qua hưỡng dẫn chi tiết chia các phân vùng con cho riêng Ubuntu ở bước 7 - phần 4 của bài viết sau: [Bước 7 - Phần 4 của Post: Cài đặt Ubuntu Dual-boot](https://ubunchuu-truong-us.github.io/docs/c%C3%A0i-%C4%91%E1%BA%B7t-ubuntu-cho-ng%C6%B0%E1%BB%9Di-d%C3%B9ng-song-song-v%E1%BB%9Bi-windows/#4-ti%E1%BA%BFn-h%C3%A0nh-c%C3%A0i-%C4%91%E1%BA%B7t-ubuntu) - - -**Bước 8:** Thiết lập vị trí và múi giờ ở nơi chúng ta đang sinh sống. Chọn **"Continue"**. -![](https://i.imgur.com/vUxIh1r.png) - -**Bước 9:** Ubuntu yêu cầu bạn nhập các thông tin cần thiết. Hãy luôn nhớ **password** vì điều này là cần thiết trong quá trình sử dụng. -> Nếu cần thiết, hãy take-note password mà bạn vừa tạo đi. - -![](https://i.imgur.com/xQvGZ8H.png) - -> Các bạn có thể chọn **"Log in automatically"** việc nhập password là quá phiền phức mỗi khi khởi động máy, hoặc chọn **"Require my password to log in"** để tăng tính bảo mật cho thiết bị. Chọn **"Continue"**. - -**Bước 10:** Quá trình cài đặt sẽ được thực hiện. Thiết bị của bạn sẽ khởi động lại một vài lần, chính vì thế hãy chờ đợi cho đến khi mọi thứ hoàn thành xong. -![](https://i.imgur.com/FrERUHm.png) -> Cuối cùng, sau khi quá trình cài đặt đã hoàn tất, hãy khởi động lại máy tính, sau đó rút USB boot ra và nhấn Enter khi nhìn thấy tùy chọn **"Please remove the installation medium then press enter".** -## :100: Lời kết -Hãy trải nghiệm và tận hưởng những tính năng độc đáo của Ubuntu các bạn nhé :3 diff --git a/content/en/docs/Installation Guide/2-dual-boot/index.md b/content/en/docs/Installation Guide/2-dual-boot/index.md deleted file mode 100644 index b851cc72..00000000 --- a/content/en/docs/Installation Guide/2-dual-boot/index.md +++ /dev/null @@ -1,238 +0,0 @@ ---- -title: "Cài đặt Ubuntu cho người dùng song song với Windows" -description: "" -lead: "" -date: 2022-12-24 -lastmod: 2022-12-24 -draft: false -images: [] -contributors: ["lelouvincx, thangbuiq, chimlun0910"] -weight: 302 ---- - -## 1. Giới thiệu về Ubuntu -### Ubuntu hoàn toàn miễn phí và có thể dễ dàng cài đặt trên mọi cấu hình: -Khác với Windows và MacOS, Ubuntu không yêu cầu một khoản phí bất kỳ nào để có thể cài đặt và sử dụng hệ điều hành. - -Việc cài đặt Ubuntu theo tụi mình đánh giá là đơn giản hơn việc cài đặt hệ điều hành Windows khá nhiều. Các bạn chỉ cần có vốn tiếng anh nhất định và sự hiểu biết đơn giản về máy tính. -### Ubuntu đáp ứng nhu cầu về cá nhân hóa: -Ubuntu có tính cá nhân hóa cao hơn khi so sánh với bất kỳ hệ điều hành phổ biến hiện nay (Windows, MacOS). Bạn có thể tùy chỉnh ở nhiều khía cạnh liên quan đến UI để phục vụ cho nhu cầu cá nhân hóa của bản thân. ->Nếu giao diện mặc định của Ubuntu đã quá nhàm chán, Ubunchuu khuyến khích các bạn tìm hiểu về chủ đề này. UI Customization ở Linux thường không quá ảnh hưởng quá nhiều đến hiệu năng của máy (như ngốn RAM, ăn CPU, ..) ->Trong tương lai, Ubunchuu sẽ dành một bài viết riêng về chủ đề này. Tuy nhiên, nếu các bạn muốn tìm hiểu trước, tụi mình sẽ để đường link tham khảo: [LinuxScoop](https://www.youtube.com/@linuxscoop) - một trong những kênh youtube nổi tiếng về Linux UI Customization. -### Một lựa chọn tốt cho việc lập trình: -Nếu bạn là một dân IT hoặc là một người yêu thích việc gõ code, hoặc cho dù là không đi nữa. Nếu công việc của bạn có liên quan đến việc lập trình, Ubuntu chính là một lựa chọn tốt bởi Ubuntu cung cấp cho bạn một Terminal với sức mạnh "tuyệt đối". Đối với nhiều lập trình viên, việc thao tác với chuột thường khá ít và thao tác dòng lệnh (command line) trên Linux phải gọi là rất "đã" và tốt hơn Windows rất nhiều. Hơn nữa, hầu hết các ngôn ngữ lập trình đều hỗ trợ [CLI (Command Line Interface)](https://www.w3schools.com/whatis/whatis_cli.asp) điều này là cần thiết với các lập trình viên. -### Ubuntu có tính bảo mật cao: -Nghe có vẻ phi lý khi mà Ubuntu là một hệ điều hành miễn phí, mã nguồn mở nhưng lại có tính bảo mật cao? Ubuntu nói riêng và Linux nói chung đều sở hữu quyền "root", điều này cho phép bạn thao tác với hệ thống ở quyền hạn cao nhất (tương đương với Administrator bên Windows). Tuy nhiên, mặc định người dùng hệ thống không được cấp quyền này và nếu có cuộc tấn công nào vào máy tính nhưng lại không có quyền "root" thì cũng phải là 1 điều gì đó quan ngại. ->Nếu Ubuntu chưa phải là sự lựa chọn phù hợp của bạn, hãy tham khảo những Distro khác mà tụi mình đã lên bài ở đây nhé: [Tìm hiểu chung về Linux Distro](https://ubunchuu-truong-us.github.io/docs/t%C3%ACm-hi%E1%BB%83u-chung-v%E1%BB%81-linux-distro/?fbclid=IwAR3LMmxrlqoG5AMh1DWm2bN2k9Nj-_AkfizHm9XWwIil-WdJeP4rWib02a8) - -## 2. Các bước chuẩn bị -> Ubuntu yêu cầu thiết bị của bạn đáp ứng những yêu cầu sau: -> - [x] 2 GHz dual-core processor hoặc hơn. -> - [x] Tối thiếu 4 GB RAM (Ubunchu khuyến khích thiết bị của các bạn nên có ít nhất 8 GB RAM để mọi tác vụ của hệ thống trở nên mượt mà). -> - [x] Tối thiểu 25 GB dung lượng ổ đĩa. -> - [x] Một kết nối Internet xuyên suốt quá trình cài đặt để hệ thống có thể cập nhật và tải những tài nguyên cần thiết. -> - [x] USB Boot chứa bộ cài Ubuntu. - - -### Backup dữ liệu -Việc [Backup](https://en.wikipedia.org/wiki/Backup) tất cả dữ liệu trong máy của bạn trước khi cài đặt Ubuntu là một điều hết sức cần thiết vì trong quá trình cài đặt luôn có xác suất rất nhỏ xảy ra những lỗi liên quan đến hệ điều hành và phần cứng. -Ubunchuu khuyến khích các bạn nên Backup dữ liệu của mình sang một nơi an toàn như [Google Drive](https://www.google.com/intl/vi_VN/drive/), [OneDrive](https://www.microsoft.com/en-us/microsoft-365/onedrive/online-cloud-storage), [Dropbox](https://www.dropbox.com/), .. để đề phòng trường hợp mất mát dữ liệu khi cài đặt nhé. -### Ghi lại các ứng dụng cần dùng -Trước khi cài đặt Ubuntu, các bạn nên có một cái nhìn tổng quát lại nhu cầu và mục đích của các bạn khi sử dụng Ubuntu. Và hãy đảm bảo rằng nếu các bạn cần làm việc trên một phần mềm nào, phần mềm đó cần có tính tương thích và sẵn sàng để dùng. -> [Tìm hiểu chung về Linux Distro](https://ubunchuu-truong-us.github.io/docs/t%C3%ACm-hi%E1%BB%83u-chung-v%E1%BB%81-linux-distro/?fbclid=IwAR3LMmxrlqoG5AMh1DWm2bN2k9Nj-_AkfizHm9XWwIil-WdJeP4rWib02a8) -### Lưu lại tài khoản, mật khẩu, cài đặt riêng của ứng dụng -Tất nhiên là chúng ta sẽ không muốn mất thời gian để thực hiện công việc "Quên mật khẩu" đâu nhỉ ? Hãy ghi nhớ những tài khoản cần thiết cho ứng dụng bạn làm việc để cho việc cài đặt, trải nghiệm tốt nhất có thể. -### Chuẩn bị USB Boot -Dung lượng của một [Linux Distro](https://ubunchuu-truong-us.github.io/docs/t%C3%ACm-hi%E1%BB%83u-chung-v%E1%BB%81-linux-distro/?fbclid=IwAR3LMmxrlqoG5AMh1DWm2bN2k9Nj-_AkfizHm9XWwIil-WdJeP4rWib02a8) sẽ dao động trong khoảng từ dưới 1 GB cho đến trên 10 GB. Tuy vậy, một distro thông thường với hầu hết các tính năng có sẵn sẽ có dung lượng dao động từ 3 GB đến 5 GB. Ubunchuu khuyến khích các bạn nên chuẩn bị một USB có dung lượng từ 8 GB trở lên để việc tạo USB boot, cài đặt trở nên mượt mà. - -**Bước 1:** Các bạn cần tải phần mềm để thực hiện công việc tạo USB boot cho việc cài đặt. Ở đây, Ubunchuu đề xuất phần mềm [Rufus](https://rufus.ie/en/) - một phần mềm dễ sử dụng nhất để tạo USB khởi động trên máy tính và được đánh giá là một trong những công cụ tốt nhất. - -**Bước 2:** Sau khi tải về, các bạn mở file .exe lên. Rufus không yêu cầu quá trình cài đặt nên các bạn chỉ cần tải về và sử dụng luôn. - -![](https://i.imgur.com/fE66a45.png) - -**Bước 3:** Ở mục đầu tiên (**Device**), các bạn cần chọn USB được dùng trong việc cài đặt. Thông thường, nếu thiết bị của bạn chỉ cắm duy nhất 1 chiếc USB, tên của USB sẽ hiện ra trong ô này. - -**Bước 4:** Ở phần **Boot selection**, các bạn ấn vào **"Select"** và tiến hành chọn file ISO Ubuntu đã tải về. - -![](https://i.imgur.com/xnN26ZC.png) - -> Tùy thuộc vào phiên bản sẽ có tên khác nhau, của tụi mìn ở đây là "ubuntu-22.04.2-desktop-amd64.iso" - -**Bước 5:** Những tùy chọn khác, Ubunchuu khuyến khích các bạn để mặc định. Sau đó, ấn **"Start"**. Một hộp thoại mới hiện lên, các bạn chọn dòng **"Write in ISO Image mode (Recommended)"**. - -![](https://i.imgur.com/JuTQKaK.png) - -**Bước 6:** Rufus sẽ hỏi lại về việc xóa hết tất cả dữ liệu trong USB để chuẩn bị cho việc tạo USB boot. Nếu các bạn có dữ liệu gì quan trọng, vui lòng chọn **"Cancel"** và di chuyển những dữ liệu ra ngoài USB. Nếu không, hãy chọn **"OK"**. Các bạn cần đợi một khoảng thời gian ngắn để Rufus thực hiện quá trình của mình. - -![](https://i.imgur.com/udeLhmq.png) - - -## 3. Chia phân vùng trên Windows để cài đặt Ubuntu ->Note: Nếu máy tính bạn đủ khả năng để phân vùng (cho phép khả năng partition tối đa) thì trước hết ta hãy sử dụng công cụ có sẵn trong máy tính là [Disk Management](https://learn.microsoft.com/en-us/windows-server/storage/disk-management/overview-of-disk-management) để đạt hiệu quả và độ an toàn nhé. -### 1. Kiểm tra dung lượng máy tính và nhu cầu của mình -Với người mới bắt đầu hoặc muốn trải nghiệm Ubuntu song song với hệ điều hành Windows, Ubunchuu khuyến khích các bạn nên chia phân vùng tầm 60 đến 100GB cho Ubuntu và thực hiện [Dual-boot](https://en.wikipedia.org/wiki/Multi-booting). Điều này giúp cho Ubuntu có đủ dung lượng hệ thống để thực hiện các tác vụ, giúp các bạn có thể sử dụng Ubuntu một cách thoải mái nhất. -> Tuy nhiên nếu bạn chỉ muốn cài đặt để trải nghiệm và không thường xuyên sử dụng trong tương lai, các bạn có thể để tầm 25 GB dung lượng trống như Ubunchu đã đề cập ở phần [chuẩn bị](#-Các-bước-chuẩn-bị) ở trên. -### 2. Tiến hành chia phân vùng trên máy tính (partition) -Ubunchuu sẽ đưa ra hai cách trong việc chia phân vùng trên máy tính. Cách thứ nhất, Ubunchuu sẽ hướng dẫn các bạn sử dụng công cụ có sẵn trên Windows là [Disk Management](https://learn.microsoft.com/en-us/windows-server/storage/disk-management/overview-of-disk-management). Cách thứ hai, Ubunchuu sẽ nhờ sự trợ giúp của phần mềm [MiniTool Partition Wizard](https://www.partitionwizard.com/download.html) - một trong nhưng phần mềm miễn phí tốt nhất trong việc hỗ trợ phân vùng ổ đĩa. -#### Cách 1: Phân vùng ổ đĩa với Disk Management -**Bước 1:** Nhấn tổ hợp phím Windows + X và chọn Disk Management để mở cửa sổ Disk Management (hoặc chuột phải vào This PC trong File Explorer và chọn Disk Management). - -
- -
-
- -Giao diện của Disk Management hiện ra với trung tâm chính giữa là danh sách các phân vùng ổ đĩa có sẵn trong máy. Tùy vào từng thiết bị mà danh sách các phân vùng. - -**Bước 2:** Các bạn cần xác định ổ đĩa cần phân vùng. Ở đây, tụi mình sẽ chọn ổ đĩa C với dung lượng 352.26 GB để phân vùng ra một phân vùng mới dung để cài đặt. Chuột phải vào ổ đĩa cần chia nhỏ ra và chọn **Shrink Volume**. Sau đó, máy tính của bạn cần một khoảng thời gian nhỏ để tính toán khả năng chia phân vùng. - -
- -
-
- - -> Một số máy tính sẽ ngăn cản bãn truy cập vào chức năng này vì một số lý do hệ thống (chi tiết vui lòng truy cập: [How to Fix Can't Shrink Volume in Windows 11/10/8/7](https://www.easeus.com/partition-manager-software/windows-cant-shrink-volume-partition.html#:~:text=Windows%20won't%20let%20you,as%20the%20System%20Restore%20feature.)). Lúc này, Ubunchuu cần bạn di chuyển đến cách thứ 2 [Phân vùng ổ đĩa với MiniTool Partition Wizard](#Cách-2-Phân-vùng-ổ-đĩa-với-MiniTool-Partition-Wizard) - -**Bước 3:** Nhập dung lượng bạn dành cho hệ điều hành Ubuntu vào ô **"Enter the amount of space to shrink in MB"**. Ví dụ nếu bạn muốn dành 50GB cho Ubuntu thì sẽ để là 50 x 1024 = 51200MB -> Lưu ý: Hãy chọn dung lượng phù hợp cho Ubuntu nhé, đừng chia phân vùng quá lớn (nếu không cần thiết) hoặc quá nhỏ và trên hết là phải nằm trong khả năng cho phép của ổ đĩa. - -**Bước 4:** Nhấn Shrink và khởi động lại máy tính để PC của bạn hoàn tất tiến trình phân vùng nhé. - -
- -
-
- -> Tuy nhiên, nếu trong trường hợp máy tính của các bạn không đủ khả năng cho phép phân vùng nhiều (Dung lượng vượt quá mức dung lượng cho phép chia nhỏ vì bị giới hạn bởi vùng sao lưu an toàn - Recovery Parition) thì sẽ hiện như hình sau: (Total Size sau khi phân vùng sẽ là 0MB) - -> Lúc này, các bạn nên sử dụng các phần mềm rời bên thứ 3 để thực hiện công việc phân vùng. Ubunchuu sẽ hướng dẫn các bạn chia phân vùng bằng một công cụ mã nguồn mở có độ tin cậy cao và bảo mật nhất, đó chính là **MiniTool Partition Wizard**. - -**Bước 5:** Nếu các bạn đã thành công ở **bước 4** (nếu không, Ubunchuu sẽ cần bạn qua cách làm khác là: [Phân vùng ổ đĩa với MiniTool Partition Wizard](#Cách-2-Phân-vùng-ổ-đĩa-với-MiniTool-Partition-Wizard), một phân vùng trống sẽ hiện ra trong danh sách các phân vùng. Lúc này, các bạn ấn chuột phải vào phân vùng mới đó, chọn **"New Simple Volume"** và thực hiện điền các bước sau: -> - Các bạn chọn **"Next"** ở cửa sổ đầu tiên. -> - Chọn dung lượng cần để tạo phân vùng mới. Ở bước này các bạn chỉ cần ấn **"Next"** mà không cần chỉnh sửa gì hết. -> - Chọn ký tự cho phân vùng mới. Chọn **"Next"**. -> - Ở bước này, hệ thống sẽ hỏi bạn có muốn format cho phân vùng mới này không ? Ubunchuu cần bạn chọn vào lựa chọn **"Format this volume with the following settings"**. Lưu ý, hãy nhớ chọn **FAT32** ở phần **"File system"**. -> Chọn **"Next"** và **"Finish"** để tiến hành phân vùng ổ cứng - -> Note: Một số máy sẽ không có tùy chọn FAT32 ở phần "File system", lúc này hãy chuyển sang phần [Phân vùng ổ đĩa với MiniTool Partition Wizard](#Cách-2-Phân-vùng-ổ-đĩa-với-MiniTool-Partition-Wizard). - -#### Cách 2: Phân vùng ổ đĩa với MiniTool Partition Wizard. - -**Bước 1:** Truy cập trang web chính chủ của [MiniTool Partition Wizard](https://www.partitionwizard.com/download.html) và tiến hành tải xuống phiên bản miễn phí (Free Edition) của phần mềm về, sau đó tiến hành setup đơn giản. ->**Note:** Phần này dành cho những bạn không biết setup, những bạn biết rồi có thể bỏ qua: -> - Bước 1: Nhấn vào nút **Local Download**, file cài đặt sẽ được tải về máy, mở file này lên bằng cách nhấn đúp chuột: -> ->
->
-> ->- Bước 2: Chọn ngôn ngữ là **English** và nhấn **"OK"** ở cửa sổ hiện lên đầu tiên. Sau đó chọn **"Continue installing free edition"** và nhấn Next. (vì bản free đã thực hiện tốt chức năng phân vùng rồi) -> ->- Bước 3: Bỏ chọn công cụ ShadowMaker vì ở MiniTool Partition Wizard chúng ta đã có chức năng Backup dữ liệu rồi. -> ->
->
-> ->- Bước 4: Chọn đường dẫn cần cài đặt phần mềm và nhấn **"Next"**. ->- Bước 5: Nhấn **"Finish"** để kết thúc cài đặt. - -**Bước 2:** Mở **MiniTool Parition Wizard** lên, giao diện của phần mềm khá tương đồng với công cụ Disk Management của hệ thống. Nhấn chuột phải vào ổ đĩa cần chia nhỏ phân vùng và nhấn vào tùy chọn **Split**. - -
- -
-
- -**Bước 3:** Nhập dung lượng bạn dành cho Ubuntu vào phần **"New Partition Size"** hoặc kéo phần Slide bên trên cho vừa với dung lượng bạn cần (Tụi mình sẽ phân vùng cho Ubuntu với dung lượng vào khoảng 50GB), sau đó nhấn **"OK"**. - -
- -
-
- -**Bước 4**: Lúc này, các bạn sẽ thấy một phân vùng trống (Unallocated) có dung lượng 50 GB (Tùy vào dung lượng phân chia của các bạn). Ấn chuột phải vào phân vùng trống này, chọn **"Create"**. Một hộp thoại sẽ hiện lên, các bạn lần lượt nhập các thông tin sau: -> - Partition Label: Tên của phân vùng. -> - File System: FAT32 (Điều này là cần thiết để bộ cài Ubuntu nhận diện được phân vùng để cài đặt). -> - Drive Letter: Kí tự của phân vùng (Có thể để mặc định theo phần mềm). -> - Kiểm tra lại dung lượng một lần cuối trong phần "Size and Location". - -Nhấn **"Ok""** - -**Bước 5:** Nhấn **"Apply"** ở bên trái dưới cùng của ứng dụng để tiến hành công việc phân vùng ổ cứng. Sau đó, các bạn hãy khởi động lại máy tính, đợi boot tầm 5-10p để máy tính tiến hành phân vùng nhé. - -
- -
-
- ->Sau khi khởi động lại máy tính, khi vào Disk Management kiểm tra lại bạn sẽ thấy có một phân vùng mới với dung lượng bằng chính dung lượng mà bạn đã chia nhỏ (như mình thì là 50GB). - -## 4. Tiến hành cài đặt Ubuntu -Sau khi đã hoàn thành xong việc tạo USB boot chứa bộ cài Ubuntu, Ubunchuu sẽ đưa các bạn đến với những bước cài đặt chính. - -**Bước 1:** Khởi động lại thiết bị, cắm USB và tiến hành truy cập vào Menu Boot. ->Tùy thuộc vào từng hãng thiết bị mà sẽ có những phím tắt khác nhau để truy cập vào Menu Boot (các phím tắt có thể là F1 -> F12, ESC, DEL, ...). Chi tiết, các bạn truy cập vào link [này](https://www.tomshardware.com/reviews/bios-keys-to-access-your-firmware,5732.html) hoặc thử các phím tắt theo hình bên dưới: - -
- -
-
- -**Bước 2:** Một màn hình đen với các dòng chữ trắng sẽ hiện lên (đối với phiên bản Ubuntu 22.04 LTS trở lên). Các bạn chọn dòng đầu tiên **"Try or Install Ubuntu"**. Lúc này, các bạn cần chờ một khoảng thời gian để bộ cài từ USB được chuẩn bị. -![](https://i.imgur.com/PDzhxmR.png) - -**Bước 3:** Ubunchuu nhận thấy hầu hết các distro sẽ hỗ trợ tính năng thử nghiệm để mọi người có thể làm quen cũng như khám phá những tính năng của distro đó để đưa ra sự lựa chọn cài đặt hoặc hủy bỏ. Nếu các bạn cảm thấy hài lòng với Ubuntu, hãy chọn **"Install Ubuntu"**. -![](https://i.imgur.com/GbEtHfV.png) - -**Bước 4:** Ubuntu sẽ yêu cầu chọn ngôn ngữ bàn phím, các bạn nên chọn **"English (US)"**. Chọn **"Next"**. -![](https://i.imgur.com/Vem0MQq.png) - -**Bước 5:** Ở bước này, Ubuntu sẽ hỏi rằng bạn muốn cài đặt một phiên bản đầy đủ trình duyệt web, các tiện ích, phần mềm ứng dụng cần thiết (**"Normal installation"**) hay là phiên bản rút gọn với những tiện ích cần thiết (**"Minimal installation"**). Ubunchuu khuyến khích các bạn cài đặt phiên bản đầy đủ (**"Normal installation"**). Ở các lựa chọn sau, các bạn nên tích hết để trong quá trình cài đặt, các bản cập nhật và một số phần mềm bổ sung từ bên thứ 3 sẽ được sẽ được tải xuống. Chọn **"Continue"**. -![](https://i.imgur.com/7vjmstM.png) - -> Tuy nhiên, các bạn không cần thiết phải chọn hết các tùy chọn để quá trình cài đặt được diễn ra nhanh hơn. - -**Bước 6:** Đây là bước quan trọng trong quá trình cài đặt Ubuntu. Chúng ta sẽ có các lựa chọn như sau: -![](https://i.imgur.com/oB46tdR.png) - -- **Install Ubuntu alongside Windows Boot Manager**: Nếu các bạn muốn cài song song Ubuntu và Windows, đây là lựa chọn phù hợp cho bạn. Ubuntu sẽ tự động nhận diện và cài đặt song song với Windows vào phân vùng trống trên ổ cứng. -> Not Recommended. Ubunchuu khuyên bạn sử dụng cài đặt **Something else** để tự tùy biến theo nhu cầu của bạn với các phân vùng mà bạn cần sử dụng. -- **Erase disk and install Ubuntu**: Toàn bộ ổ cứng sẽ được xóa và quá trình cài mới Ubuntu sẽ diễn ra. Lúc này, Windows sẽ không còn tồn tại nữa. -> Các bạn nên cẩn thận khi chọn tùy chọn này. -- **Something else:** Tùy chọn cài đặt một cách thủ công. -Ở đây, vì đã phân chia phân vùng cho Ubuntu ở [Mục 3](#-Chia-phân-vùng-trên-Windows-để-cài-đặt-Ubuntu), Ubunchu cần các bạn chọn vào mục **"Something else"**. Chọn **"Continue"**. - -**Bước 7:** Danh sách các phân vùng có sẵn trong máy sẽ được liệt kê trong cửa số mới xuất hiện. Các bạn cần tìm đúng phân vùng đã chia ở [Mục 3](#-Chia-phân-vùng-trên-Windows-để-cài-đặt-Ubuntu). -> Lưu ý: Các phân vùng sẽ khá khó để nhận diện vì tên của chúng lúc này được đặt theo cấu trúc của Linux. Cách dễ dàng nhất để nhận diện phân vùng cần tìm là dựa vào dung lượng chúng ta đã chia cho nó. - - -Đầu tiên, ta cần nhấn đúp chuột vào **"free space"** (tức là phần phân vùng mà bạn đã chia ở [Mục 3](#-Chia-phân-vùng-trên-Windows-để-cài-đặt-Ubuntu)) và lần lượt tạo các phân vùng cho máy tính của bạn: -1. Đầu tiên chúng mình sẽ phải tạo phân vùng EFI (EFI System Partition) để máy boot vào, phân vùng này chúng ta nên để khoảng 500MB, hoặc nếu bạn thích dư dả tránh trường hợp boot không lên hay crash thì ta cũng có thể để 1000MB. Chọn loại phân vùng **"Use as: EFI System Partition"**: -![](https://i.imgur.com/EfnCSId.png) -2. Chọn phần **"free space"** còn lại và thực hiện các thao tác tương tự để tạo lần lượt các phân vùng sau: -- /efi: 500MB-1GB (đã tạo bên trên) -- /swap: 2GB (Chọn Use as: **"swap"**, Mount point: *không có*) -- / (root): phần còn lại (Chọn Use as: **"ext4"**, Mount point: **"/"**) -> /home (Optional - không bắt buộc): từ phiên bản Ubuntu 20.04 trở đi, kể cả bạn chỉ chọn mỗi "/" thì Ubuntu vẫn sẽ tự động tạo thêm thư mục "/home/username" bên trong nên điều này là không cần thiết. Tuy nhiên, nếu bạn muốn tùy chọn dung lượng cho thư mục home (dùng để chứa tài liệu, file cá nhân,...) thì có thể tạo thêm và chọn Use as: **"ext4"**, Mount point: **"/home"**. -> /boot (Optional - không bắt buộc): có thể tạo thư mục chứa file để boot, không cần thiết nhưng có thể tạo để đề phòng khi cần thiết. -![](https://i.imgur.com/5LcMs4O.png) -3. Chọn phân vùng EFI cần boot ngay tại mục **"Device for boot loader installation"**. -> Như hình trên, phân vùng cần boot của mình là /dev/sda1 vì ở trong bảng các phân vùng, device "/dev/sda1" của mình có **type là "efi"** như mình đã tạo. -4. Chọn **"Install now"**. - -**Bước 8:** Thiết lập vị trí và múi giờ ở nơi chúng ta đang sinh sống. Chọn **"Continue"**. -![](https://i.imgur.com/vUxIh1r.png) - -**Bước 9:** Ubuntu yêu cầu bạn nhập các thông tin cần thiết. Hãy luôn nhớ **password** vì điều này là cần thiết trong quá trình sử dụng. -> Nếu cần thiết, hãy take-note password mà bạn vừa tạo đi. - -![](https://i.imgur.com/xQvGZ8H.png) - -> Các bạn có thể chọn **"Log in automatically"** việc nhập password là quá phiền phức mỗi khi khởi động máy, hoặc chọn **"Require my password to log in"** để tăng tính bảo mật cho thiết bị. Chọn **"Continue"**. - -**Bước 10:** Quá trình cài đặt sẽ được thực hiện. Thiết bị của bạn sẽ khởi động lại một vài lần, chính vì thế hãy chờ đợi cho đến khi mọi thứ hoàn thành xong. -![](https://i.imgur.com/FrERUHm.png) -> Cuối cùng, sau khi quá trình cài đặt đã hoàn tất, hãy khởi động lại máy tính, sau đó rút USB boot ra và nhấn Enter khi nhìn thấy tùy chọn **"Please remove the installation medium then press enter".** -## :100: Lời kết -Hãy trải nghiệm và tận hưởng những tính năng độc đáo của Ubuntu các bạn nhé :3 diff --git a/content/en/docs/Installation Guide/3-setup-onedrive/index.md b/content/en/docs/Installation Guide/3-setup-onedrive/index.md deleted file mode 100644 index 6ff44fec..00000000 --- a/content/en/docs/Installation Guide/3-setup-onedrive/index.md +++ /dev/null @@ -1,157 +0,0 @@ ---- -title: "Cài đặt và đồng bộ Onedrive cho Linux" -description: "" -lead: "" -date: 2023-03-19 -lastmod: 2022-12-24 -draft: false -images: [] -contributors: ["chimlun0910"] -weight: 303 ---- - -###### tags: `onedrive`,`file-syncing-with-onedrive` - -## :memo: Onedrive là gì ? Tìm hiểu chung về công dụng của Onedrive -**OneDrive** là dịch vụ đám mây của Microsoft được sử dụng để lưu trữ dữ liệu của người dùng. Dịch vụ cho phép người dùng kết nối với dữ liệu của họ thông qua việc lưu trữ và bảo vệ dữ liệu. Người dùng có thể chia sẻ dữ liệu với những người khác và truy cập đến chúng từ mọi nơi trên tất cả các thiết bị của họ. Đây được coi là một trong những thế mạnh của dịch vụ lưu trữ đám mây. -> Khi người dùng sử dụng **OneDrive** bằng tài khoản do công ty hoặc trường học của họ cung cấp, tài khoản đó đôi khi được gọi là "**OneDrive for work or school**." (OneDrive dành cho cơ quan hoặc trường học). Vì từng được gọi là "**OneDrive for Business**" nên đôi khi người dùng vẫn có thể thấy nó được gọi như vậy ở nhiều nơi. - -![](https://i.imgur.com/YrBp8wk.png) - -**Tại sao Ubunchuu lại khuyến khích các bạn sử dụng OneDrive ?** Một câu trả lời đơn giản thôi: Chúng ta luôn muốn dữ liệu của bạn thân được lưu trữ, đồng bộ hóa và luôn hiện hữu trên thiết bị mà chúng ta đang làm việc. - -**OneDrive** thể hiện ưu thế qua những công dụng sau: -- **Lưu trữ tài liệu trực tuyến:** OneDrive luôn sẵn sàng hoạt động và người dùng có thể truy cập nội dung lưu trữ ở mọi lúc mọi nơi với thời gian khả dụng lên đến 99,97% (dựa trên số liệu của Microsoft). -- **Chỉnh sửa dữ liệu và đồng bộ hóa sự thay đổi trên các thiết bị:** Mỗi khi người dùng có sự thay đổi ở dữ liệu được lưu trữ tren OneDrive, sự thay đổi đó cũng được thể hiện ở các thiết bị có đăng nhập tài khoản OneDrive. Nói một cách dễ hiểu hơn là khi người dùng thêm hoặc xóa dữ liệu trong OneDrive ở một thiết bị nào đó, họ cũng sẽ thấy sự thay đổi đó ở một thiết bị khác có đăng nhập tài khoản OneDrive đó. -- **Giữ cho các dữ liệu của người dùng được bảo vệ trên điện toán đám mây:** Tính bảo mật chính là một điểm cộng lớn của OneDrive. Việc cung cấp nhiều lựa chọn chia sẻ nội dung sẽ đi kèm với những rủi ro về việc rò rỉ thông tin bảo mật cao của cá nhân hoặc tổ chức. Đây là một lợi thế với các doanh nghiệp vì sẽ có các cấp độ chia sẻ khác nhau với các quyền khác nhau, điều này đảm bảo là dữ liệu sẽ bị giới hạn quyền thao tác khi cần thiết. -- **Khả năng chia sẻ tuyệt vời:** Tính năng chia sẻ mở rộng (Extended Sharing) hỗ trợ trên cả phiên bản online và thư viện tệp tập trung là một trong tính năng vô cùng tiện ích của dịch vụ OneDrive. Điều này cho phép người dùng chia sẻ dữ liệu dưới dạng tệp với mọi người xung quanh hoặc những người cụ thể, và thậm chí những người dùng ẩn danh chỉ bằng những thao tác đơn giản. - -Hiện tại OneDrive đang cung cấp 2 loại dịch vụ đám mây với những loại người dùng và nhóm tiện ích khác nhau: -- **Cho gia đình:** - - **Microsoft 365 Family:** Dành cho một đến sáu người dùng với tối đa năm thiết bị cùng sử dụng một lúc. Dung lượng tối đa 6 TB dung lượng lưu trữ đám mây (1 TB cho mỗi người). - - **Microsoft 365 Personal:** Dành cho một người với dung lượng lưu trữ đám mây 1 TB. -- **Cho doanh nghiệp:** - - **Microsoft 365 Business Basic** - - **Ứng dụng Microsoft 365 dành cho doanh nghiệp** - - **Microsoft 365 Business Standard:** Mọi tính năng trong Business Basic, cộng thêm nhiều tính năng riêng khác. - - **Microsoft 365 Business Premium** - -Tùy vào từng loại dịch vụ sẽ có mưc giá khác nhau và phương thức thanh toán khác nhau (**Thanh toán hàng năm** / **Thanh toán hàng tháng**) - - -> Có thể nói từ khi biết đến OneDrive, bản thân mình cảm thấy việc sao lưu, đồng bộ hóa cũng như chỉnh sửa dữ liệu vô cùng dễ dàng, đặc biệt là khi dùng tài khoản do trường hoặc cơ quan cung cấp. - -## Cài đặt và đồng bộ hóa OneDrive trên Ubuntu -Để cài đặt OneDrive, trước tiên, cần cài đặt một số dependency. Các bạn hãy ấn phím tắt Ctrl + Alt + T hoặc mở Terminal một cách thủ công và thực hiện các bước sau: - -Nếu thiết bị của bạn đã cài đặt trước OneDrive với bất kỳ PPA repository, Ubunchuu khuyến khích các bạn nên xóa hết và cài đặt mới lại từ đầu để đảm bảo các bạn được trải nghiệm phiên bản mới nhất của OneDrive -> Debian repository là một tập hợp các gói Debian được tổ chức trong một cây thư mục đặc biệt, được sử dụng để lưu trữ các chương trình cài đặt. Các thiết bị có thể kết nối đến repository để tải xuống và cài đặt các gói bằng công cụ Quản lý gói ([PackageManagement](https://wiki.debian.org/PackageManagement)) dựa trên [Apt](https://wiki.debian.org/Apt). - -### Xóa OneDrive đã có sẵn trên thiết bị -Nếu thiết bị của bạn chưa cài đặt OneDrive, bạn có thể bỏ qua bước này và tiếp tục ở bước [Cài đặt OneDrive](#Cài-đặt-OneDrive) -Đầu tiên, hãy thực hiện việc xóa OneDrive (nếu đã có sẵn trong OS). -```bash -sudo apt remove onedrive -sudo apt autoremove -``` - -Hãy chạy lệnh ```apt update``` để thực hiện việc cập nhật danh sách các packages của hệ thống và lệnh này sẽ không thực hiện nâng cấp bất kỳ package nào của hệ thống cả. -```bash -sudo apt update -``` -### Cài đặt OneDrive - -Thao tác cài đặt OneDrive sẽ được thực hiện qua câu lệnh sau: -```bash -sudo apt-get install onedrive -``` - -Quá trình cài đặt sẽ không tốn nhiều thời gian, để kiểm tra xem OneDrive đã cài đặt thành công hay chưa, các bạn có thể nhập lệnh sau: -```bash -onedrive --version -``` - -![](https://i.imgur.com/3beQqEw.png) - - -> Terminal sẽ hiển thị kết quả là phiên bản mới nhất của OneDrive được cài đặt trong máy. - -Để bắt đầu sử dụng OneDrive, hãy nhập ```onedrive``` vào Terminal và ấn Enter. -```bash -onedrive -``` -Kết quả trả về là một đường link đăng nhập của OneDrive. Các bạn hãy copy đường link đó vào trình duyệt và tiến hành đăng nhập như thông thường. Sau khi đăng nhập, các bạn sẽ được trình duyệt chuyển đến một trang trống, hãy copy đường link của trang đó và paste vào Terminal nhé. -> Lưu ý: Để paste vào Terminal, các bạn có thể chuột phải chọn **Paste** hoặc ấn tổ hợp phím tắt **Ctrl + Shift + V** (thêm phím tắt **Shift** so với thông thường). - -![](https://i.imgur.com/EUwcIeA.png) - -Sau khi thao tác, các bạn sẽ thầy dòng thông báo biểu thị việc đăng nhập thành công. -> Application has been successfully authorised, however no additional command switches were provided - -![](https://i.imgur.com/V9leSxh.png) - - -Lúc này, các bạn có thể sử dụng lệnh sau đề đồng bộ hóa tất cả dữ liệu trên OneDrive xuống máy của các bạn: -```bash -onedrive --synchronize -``` -Để biết thêm nhiều tùy chọn khác của OneDrive như ```loggout```, ..., vui lòng nhập lệnh sau: -```bash -onedrive --help -``` - -![](https://i.imgur.com/4QExo5j.png) - - -## Cách config OneDrive -Khi thực hiện việc đồng bộ hóa dữ liệu theo mặc định, OneDrive sẽ tự tạo một folder có tên **"OneDrive"** ở đường dẫn ```/home/user_name/```. Tuy nhiên, nếu không muốn lúc nào cũng phải truy cập ở đường dẫn này, các bạn có thể thay đổi đường dẫn cho OneDrive để nó đồng bộ hóa vô một thư mục với đường dẫn nhất định. - -Ở đây, tụi mình muốn OneDrive sẽ đồng bộ hóa dữ liệu vào thư mục ```Documents``` trong hệ thống. Cách cài đặt sẽ được thực hiện như sau: - -Đầu tiên hãy tạo file config của OneDrive trong hệ thống. -```bash -mkdir -p ~/.config/onedrive -cd ~/.config/onedrive -sudo touch config.txt -``` - -Tiếp theo, chúng ta sẽ mở file ```config.txt``` lên và tiến hành cấu hình. Có hai tùy chọn cấu hình là: **“sync_dir”** và **“skip_files”**. -- **sync_dir:** Vị trí lưu trữ các file OneDrive. Tất cả các file trên đám mây sẽ được đồng bộ vào trong thưc mục này. Mọi thao tác với dữ liệu trong thư mục này cũng sẽ được đồng bộ ngược lại lên OneDrive. -- **skip_files:** Loại file (hoặc mẫu file) không được đồng bộ. Tuy nhiên, nếu bạn muốn đồng bộ hóa hết tất cả dữ liệu thì bạn không cần quan tâm tới cấu hình này. - -Để mở file ```config.txt```, các bạn thực hiện câu lệnh sau: -```bash -sudo nano config.txt -``` - -![](https://i.imgur.com/jOlDQvj.png) - - -Các bạn hãy thêm vào file dòng sau: -```text -sync_dir = "~/Documents" -``` - -![](https://i.imgur.com/rYKuBNY.png) - -Đây là thao tác đồng bộ hóa dữ liệu trên OneDrive vào thư mục **Documents** với cấu hình là tất cả các định dạng của dữ liệu. Chẳng hạn, nếu các bạn không muốn đồng bộ hóa các file có đuôi ```.bat```, hãy thêm vào bước trên dòng lệnh sau nhé: -```text -skip_file = ".bat" -``` -Sau đó hãy ấn **Ctrl + X** và chọn **Y** để lưu lại file cấu hình này. -Cuối cùng, hãy nhập lệnh để OneDrive tiến hành đồng bộ hóa dữ liệu nha. -```bash -onedrive --synchronize -``` -Kết quả cuối cùng là thư mục chúng ta mong muốn đã được đồng bộ hóa dữ liệu. -## Khởi động OneDrive khi đăng nhập -Thông thường, OneDrive không tự khởi động khi đăng nhập. Tuy nhiên, Ubunchuu có cách để giúp các bạn khắc phục việc này. - -Hãy nhập dòng lệnh sau để OneDrive luôn khởi động cùng thiết bị nha. -```bash -systemctl --user enable onedrive -systemctl --user start onedrive -``` -## Lời kết -Như vậy, Ubunchuu đã dành ra một bài viết nhỏ để giúp các bạn có thể làm việc với OneDrive trên Linux. Điều này giúp cho học tập, công việc của chúng ta trở nên thuận tiện hơn bao giờ hết vì dữ liệu luôn sẵn sàng mọi lúc, mọi nơi. -Nếu các bạn gặp lỗi trong quá trình cài đặt, các bạn vui lòng liên hệ với tụi mình để tụi mình có thể giúp các bạn khắc phục lỗi giúp các bạn sớm nhất có thể nha. Chúc các bạn thành công :3 diff --git a/content/en/docs/Installation Guide/_index.md b/content/en/docs/Installation Guide/_index.md deleted file mode 100644 index 9e9133cb..00000000 --- a/content/en/docs/Installation Guide/_index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: "Installation Guide" -description: "Section 3 - Installation Guide" -lead: "Installation Guide" -date: 2023-03-06 -lastmod: 2023-03-06 -draft: false -images: [] -weight: 3 ---- diff --git a/content/en/docs/Linux Distribution/1-gioi-thieu-distro/index.md b/content/en/docs/Linux Distribution/1-gioi-thieu-distro/index.md deleted file mode 100644 index 67287137..00000000 --- a/content/en/docs/Linux Distribution/1-gioi-thieu-distro/index.md +++ /dev/null @@ -1,100 +0,0 @@ ---- -title: "Tìm hiểu chung về Linux Distro" -description: "Tìm hiểu chung về Linux Distro" -lead: "" -date: 2023-02-06 -lastmod: 2023-02-06 -draft: false -images: [] -weight: 201 -contributors: ["thangbuiq", "chimlun0910"] -toc: true ---- - -> Distro là từ viết tắt của linux distribution, có tên tiếng việt là phân phối của Linux. - -![](static/branches.png) - -## 1. Khái niệm Distro - -- Một bản phân phối của linux (hay distro) là một hệ điều hành được lập trình từ những tùy biến dựa trên nhân Linux. Những tùy biến này có thể giải thích đơn giản là sự thay đổi trong cách đóng gói packages bên trong hệ điều hành cùng với nhân Linux, cùng các công cụ GNU, thư viện cũng như tiện ích, ứng dụng khác nhau cho phù hợp với nhu cầu người sử dụng. -- Bên trong một distro bao gồm: - - Nhân Linux (kernel) - - Tổng hợp các ứng dụng và tiện ích đã tùy biến - - Trình cài đặt và quản lý packages - -> :shamrock: **Ghi nhớ**: Distro đơn giản là một phiên bản "biến hóa" của hệ điều hành dựa trên nhân linux, được tùy biến tùy theo nhu cầu của người sử dụng. - -## 2. Các nhánh của linux và các bản phân phối - -Linux được chia làm nhiều nhánh và các distro của nó được phát triển dựa trên từng nhánh riêng biệt này. -Linux hiện đang được chia làm các nhánh chính như sau: - -### **Debian Based Linux Distributions** - -- **Debian**: là nhánh mang hướng phi thương mại và là một trong những nhánh ra đời sớm nhất, được duy trì bởi cộng đồng phát triển mạnh mẽ. Có 3 nhánh chính của Debian được hỗ trợ dài hạn: - - **Nhánh ổn định**: Đây là bản phát hành hiện tại, hướng tới độ tối ưu và ổn định một cách tối đa. Các phiên bản ổn định của Debian thường sẽ được phát hành sau một khoảng thời gian phiên bản thử nghiệm đã được nhà phát hành khắc phục gần hết lỗi lớn nhỏ (_thường có chữ LTS_). - - **Nhánh thử nghiệm**: Đây là phiên bản tiếp theo của phiên bản ổn định ở hiện tại. Phiên bản thử nghiệm thường ẩn chứa nhiều lỗi trong hệ thống cùng packages không ổn định. Việc cập nhật lên phiên bản thử nghiệm quá sớm có thể khiến hệ thống của bạn không ổn định. Tuy nhiên đây cũng là lúc mà cộng đồng người dùng có thể đóng góp để giúp nhà phát hành khắc phục lỗi và cho ra thêm nhiều tính năng mới phù hợp với nhu cầu người dùng. - - **Nhánh không ổn định**: Đây là nhánh được phát hành mà trong đó những packages chưa được thông qua kiểm tra nên sẽ tiêm ẩn nhiều nguy cơ xảy ra lỗi trong quá trình sử dụng. - -![](static/dedian.png) - -> Khám phá thêm về **Debian** [tại đây](https://www.debian.org/index.vi.html). - -- **Ubuntu**: Được phát hành vào năm 2004, Ubuntu được dựa trên phiên bản không ổn định của Debian. Với sự phát triển, đóng góp của cộng đồng, Ubuntu đã và đang trở thành một trong những distro được sử dụng nhiều nhất. Ubuntu sử dụng giao diện đồ họa người dùng (GUI) **GNOME** (GNU Network Object Model Environment) mang đến một giao diện thân thiện với người dùng và chính nhờ vậy, đây là một distro phù hợp cho những người mới tiếp cận đến "Linux". - -![](static/ubuntu.png) - -> Khám phá thêm về **Ubuntu** [tại đây](https://ubuntu.com/). - -- **Linux Mint**: Đây là một bản phân phối dựa trên Ubuntu. Linux Mint được đánh giá là có giao diện thân thiện nhất với người dùng Windows. Tương tự như các distro khác, Linux Mint có cộng đồng người dùng lớn, giúp cho distro này ngày càng phát triển mạnh và trở thành lựa chọn thay thế tốt cho Ubuntu. - -![](static/mint.png) - -> Khám phá thêm về **Linux Mint** [tại đây](https://linuxmint.com/). - -- **Kali linux**: Là một bản phân phối dựa trên Debian, mục tiêu của nó là: tập hợp nhiều công cụ kiểm tra bảo mật và thâm nhập tốt nhất có thể trong một môi trường hệ điều hành. Bạn có thể tìm thấy nhanh gọn nhiều công cụ mã nguồn mở để thực hiện các quy trình kiểm thử (pentest), tấn công, điều tra số, dịch ngược, ... Kali Linux là hệ điều hành ưa thích của nhiều hacker trên thế giới. - -![](static/kali.png) - -> Khám phá thêm về **Kali Linux** [tại đây](https://www.kali.org/). - -### **RPM Based Linux Distributions** - -- **Fedora**: là nhánh được phân phối phi thương mại được phát hành bởi Red Hat, được tạo ra nhằm kiểm thử các công nghệ cho một bản phân phối thương mại khác của Red Hat, nơi mà các phần mềm nguồn mở mới được tạo lập, phát triển và kiểm thử trong phiên bản miễn phí trước khi đưa tính năng ấy chính thức vào Red Hat Enterprise. - -![](static/fedora.jpg) - -> Khám phá thêm về **Fedora** [tại đây](https://getfedora.org/). - -- **OpenSUSE**: Đây là một dự án mã nguồn mở với các bản phân phối dựa trên Linux do SUSE - một công ty phần mềm mã nguồn mở, đa quốc gia, có trụ sở tại Đức phát triển và kinh doanh Linux cho các khách hàng doanh nghiệp. OpenSuse được biết đến với cả KDE Desktop và Gnome Desktop mang đến sự đa dạng cho người dùng. - -![](static/opensuse.png) - -> Khám phá thêm về **OpenSuse** [tại đây](https://www.opensuse.org/). - -- **CentOS**: CentOS là một dự án mã nguồn mở được phát triển bởi Red Hat, Inc. là một công ty phần mềm Mỹ cung cấp sản phẩm phần mềm mã nguồn mở cho cộng đồng doanh nghiệp. CentOS sở hữu hai bản phân phối riêng biệt: CentOS Stream và CentOS Linux. CentOS Stream là nền tảng phát triển cho những bản phân phối Linux trong tương lai của Red Hat® Enterprise. - -![](static/centos.png) - -> Khám phá thêm về **CentOS** [tại đây](https://www.centos.org/). - -### Một số bản phân phối khác - -- **Slackware**: là nhánh đầu tiên được phân phối trên nhân linux. Slackware không có trình quản lý packages và tất cả phần mềm được biên dịch bởi quản trị viên hệ thống hoặc người dùng bình thường của hệ thống. - -![](static/slackware.png) - -> Khám phá thêm về **Slackware** [tại đây](http://www.slackware.com/). - -- **Arch Linux**: một bản phân phối nhắm vào những người dùng Linux có kinh nghiệm và được duy trì bởi một cộng đồng mạnh mẽ trên tinh thần tình nguyện, cung cấp các packages chính thức và một loạt các packages không chính thức do người dùng gửi. Các packages thường được định hình để cài đặt bởi một tệp văn bản gọi là PKGBUILD (Ubunchuu sẽ có một chủ đề riêng tất tần tật về Arch Linux). - -![](static/arch.png) - -> Khám phá thêm về **Arch Linux** [tại đây](https://archlinux.org/). - -:bulb: **Hint:** Hãy cân nhắc chọn một Distro phù hợp với mình và có mục đích sử dụng phù hợp với nhu cầu của mình. - -> Không cần là người tốt nhất, chỉ cần đó là người phù hợp nhất. - ---- diff --git a/content/en/docs/Linux Distribution/2-lua-chon-distro/index.md b/content/en/docs/Linux Distribution/2-lua-chon-distro/index.md deleted file mode 100644 index b328c08f..00000000 --- a/content/en/docs/Linux Distribution/2-lua-chon-distro/index.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: "Chọn ra Distro phù hợp nhất với mình" -description: "Lựa chọn Distro phù hợp nhất" -lead: "" -date: 2023-02-21 -lastmod: 2023-02-21 -draft: false -images: [] -menu: - docs: - parent: "Linux Distribution" -weight: 202 -contributors: ["thangbuiq", "chimlun0910"] -toc: true ---- - -Theo số liệu thống kê từ trang truelist.co (số liệu thống kê tính tới ngày 02/02/2023), hiện nay số lượng các distros Linux đang hoạt động vào khoảng hơn 600 distros. -Một số distros được sử dụng phổ biến nhất hiện nay là Debian, Ubuntu, Manjaro, Arch Linux, Kali Linux, và còn nhiều hơn thế nữa. -Tuy nhiên, để chọn ra được một distro phù hợp với tính chất công việc, nhu cầu sử dụng của bạn thì có lẽ là một việc không hề dễ dàng và tốn nhiều thời gian trải nghiệm. - -Ubunchuu sẽ cố gắng hết sức để giúp các bạn có thể chọn được một distro phù hợp với bản thân của các bạn. -Có một câu nói đùa khá là "viral" trong cộng đồng Li-nú: - -> "Chọn distro cũng giống như cách mà các bạn chọn mẫu người yêu lí tưởng cho bản thân, không cần là người tốt nhất, chỉ cần là người phù hợp nhất. -> Tuy nhiên có được cả hai thì lại là một điều quá đỗi tuyệt vời". - -Ở bài viết này, Ubunchuu sẽ phân loại distro theo đối tượng người dùng cũng như tính chất công việc, nhu cầu giải trí của họ. - -## 1. Đối với người dùng đã quen thuộc với giao diện của hệ điều hành Windows - -Với những người dùng đã thân thuộc với giao diện của hệ điều hành Windows và không có nhu cầu khám phá nhiều về tính cá nhân hóa của Linux, Ubunchuu đề xuất cho các bạn những distro sau: - -- **Linux Mint**: Đây là một trong những bản phân phối Linux khá nhẹ và có phần khá giống với Windows về hình thức bên ngoài. - Một trong những ứng dụng độc đáo mà Linux Mint có là Warpinator: một công cụ dựa trên Giver giúp dễ dàng chia sẻ tệp với những người dùng khác trên mạng cục bộ. - -- **OpenSuse**: Với giao diện mang phong cách thân thiện với người dùng Windows, OpenSuse sẽ là distro phù hợp với những người dùng thành thạo với Linux. - Một trong những điểm đặc biệt là OpenSuse được lựa chọn đa phần với những người làm IT, quản trị hệ thống và những con dân Coder, Dev, ... - -- **Kubuntu**: Sở hữu một cái tên nghe khá tương đồng với Ubuntu, Kubuntu là sự hợp nhất hợp nhất Ubuntu với KDE và giao diện desktop Plasma tuyệt vời. - Distro này đến cho bạn một bộ ứng dụng đầy đủ. - Bản cài đặt bao gồm các ứng dụng năng suất, văn phòng, email, âm nhạc sẵn sàng sử dụng khi khởi động. - Konsole của Kubuntu được coi là một trong những Terminal tốt nhất trong cộng đồng Li-nú. - -## 2. Đối với người dùng đã quen thuộc với giao diện của hệ điều hành MacOS - -Đối với quan điểm cá nhân của người viết bài viết này, giao diện đồ họa người dùng của MacOS thực sự là một trong những giao diện đẹp, thân thiện với người dùng. -Nếu các bạn yêu thích một giao diện mới mẻ, không thiên hướng Windows, Ubunchuu sẽ đề xuất một vài distro sau: - -- **Ubuntu**: Ubuntu là một trong những bản phân phối Linux linh hoạt nhất với một cộng đồng lớn và hỗ trợ lâu dài. - Distro này được người dùng mới tiếp cận và người dùng đã có kinh nghiệm ưa thích, đặc biệt là do số lượng lớn các tiện ích phần mềm có sẵn. - Ubuntu nổi tiếng với sức mạnh của Terminal - một text-based interface cho phép người dùng truy cập trực tiếp vào hệ thống UNIX. - Trong những bản cập nhật gần đây, giao diện đồ họa người dùng của Ubuntu được đánh giá là có sự tương đồng với giao diện của MacOS. - -- **Elementary OS**: Được đánh giá là trong những distro Linux đẹp nhất, ElementaryOS có giao diện thân thiện với những người dùng MacOS và những người dùng thích khám phá sự cá nhân hóa mà Linux mang lại. - Elementary OS có thanh Dock khá đep cũng như những hiệu ứng chuyển tab mượt mà. - Distro này dựa trên Ubuntu và yêu cầu laptop có tài nguyên phù hợp để hoạt động mượt mà. - -- **Garuda Linux**: Một trong những distro "cool, ngầu" nhất, Garuda Linux là một bản phân phối Linux dựa trên Arch Linux. - Giao diện của Garuda Linux khá bắt mắt chính vì vậy một số lượng tài nguyên nhất định sẽ được yêu cầu trước khi cài đặt distro này. - -## 3. Distros phù hợp với nhu cầu sử dụng máy tính cấu hình thấp - -**Kết luận**: Như Ubunchuu đã đề cập ở trên - Hãy chọn cho mình distro hợp với tính chất công việc, nhu cầu giải trí của mình để các bạn có thể truy cập, sử dụng được tính năng mà bản thân mong muốn. -Ubunchuu sẽ gợi ý một vài các yếu tố sau để giúp bạn có cái nhìn dễ dàng hơn: - -- Mục đích sử dụng: Có rất nhiều distro với nhiều tính năng riêng biệt. - Hãy chọn distro mà có lợi nhất cho bản thân cũng như nhu cầu của bạn. - Lựa chọn sai distro có thể khiến bạn tốn nhiều thời gian để làm quen, điều chỉnh, ... - -- Yêu cầu phần cứng: Ubunchuu khuyến khích các bạn không nên bỏ qua bước này bởi vì sự tương thích phần cứng sẽ là yếu tố quyết định đến trải nghiệm của bạn. - -- Trình độ hiểu biết: Một số distro không dành cho những người mới tiếp xúc với Linux như Arch Linux, Slackware, Gentoo Linux, và Kali Linux. - Chắc hẳn các bạn cũng không muốn minh có một trải nghiệm "ác mộng" với những câu lệnh, packages và nhiều thứ khác. - -- Cộng đồng hỗ trợ: Ubunchuu khuyến khích các bạn chọn một distro sở hữu một cộng đồng hỗ trợ, đóng góp lớn. - Mọi lỗi xảy ra trong quá trình bạn trải nghiệm có thể tìm thấy cách khắc phục trong cộng đồng và cũng có thể là một đóng góp nhỏ để phát triển cộng đồng từng ngày. - -- Hướng dẫn và tài liệu: Đúng! Luôn phải có sự hiểu biết nhất định về distro mà bạn sắp sử dụng, từ cách cài đặt, cách sử dụng packages manager đến cách cài đặt những phần mềm của distro đó. - Các bạn sẽ không muốn trải nghiệm lần mò những câu lệnh để sử dụng, cài đặt. diff --git a/content/en/docs/Linux Distribution/_index.md b/content/en/docs/Linux Distribution/_index.md deleted file mode 100644 index 21088b86..00000000 --- a/content/en/docs/Linux Distribution/_index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: "Linux Distribution" -description: "Section 2 - linux distribution" -lead: "Linux distribution" -date: 2023-02-06 -lastmod: 2023-02-06 -draft: false -images: [] -weight: 2 ---- diff --git a/content/en/docs/Linux Overview/1-gioi-thieu-linux/index.md b/content/en/docs/Linux Overview/1-gioi-thieu-linux/index.md deleted file mode 100644 index fc95c0b0..00000000 --- a/content/en/docs/Linux Overview/1-gioi-thieu-linux/index.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: "Giới thiệu về Linux" -description: "Giới thiệu về hệ điều hành Linux." -lead: "" -date: 2022-12-24 -lastmod: 2022-12-24 -draft: false -images: [./debian.PNG, ./pie.png] -menu: - docs: - parent: "Linux Overview" -contributors: ["lelouvincx"] -weight: 101 ---- - -Chào mừng bạn đến với bài viết đầu tiên, mở đầu tutorial của chúng mình. -Mình là Tux, người đồng hành cùng bạn trong cuộc hành trình này. -Hãy cùng bắt đầu với một chút flashback về lịch sử đằng sau sự hình thành linux. - -## 1️. Lịch sử hình thành - -Năm 1969, Ken Thompson và Dennis Ritchie tại viện nghiên cứu Bell (đại học MIT) đã phát triển hệ điều hành UNIX. -Ban đầu, UNIX được viết bằng assembly. -Sau đó nó đã được viết lại bằng C để ổn định và di động hơn. - -Suốt khoảng thời gian đó, rất nhiều hệ điều hành như BSD, MINIX, ... được phát triển dựa trên hệ thống UNIX. -Tuy nhiên, chúng đều không quá thành công. -Điểm chung của chúng là đều thiếu một nhân (kernel) thống nhất. - -> **Nhân** (kernel) là thành phần quan trọng nhất của một hệ điều hành. Nhân cho phép phần cứng "nói chuyện" được với phần mềm. Ngoài ra, nó còn có thể làm được ti tỉ thứ khác, nhưng chúng ta sẽ tìm hiểu sau. Còn giờ, bạn chỉ cần biết nhân điều khiển hầu như mọi thứ trong hệ thống của bạn. - -![](static/debian.PNG) - -Vào năm 1991, một thanh niên trẻ tên Linus Torvalds đã bắt đầu phát triển thứ mà chúng ta gọi là nhân linux. -Và rồi... boom! - -Linux ra đời! - -Linux là hệ điều hành mã nguồn mở (open-source) ra đời từ khoảng 30 năm trở lại đây, được phát triển dựa trên hệ điều hành UNIX và viết bằng ngôn ngữ lập trình C. - -> _Fun fact_: Linus Torvalds đã muốn gọi phát minh của mình là Freax, một từ ghép giữa "free", "freak", và "x" (như là một ám chỉ đến Unix). -> Ông đã từng xem xét cái tên "Linux," nhưng ban đầu bác bỏ nó do quá tự cao tự đại. -> Sau đó thì một trong những admin của máy chủ linux của trường tự đặt tên dự án là "Linux" mà không hỏi ý kiến Torvalds. -> Sau cùng, ông cũng đồng ý với cái tên "Linux". - -Linux được xuất bản dưới giấy phép công cộng GNU, giúp hạn chế hoạt động về thương mại. Ông từng tuyên bố, "Phát hành Linux theo GNU chắc chắn là điều tốt nhất tôi từng làm." Nếu không thì chúng ta đã không có một hệ điều hành tuyệt vời với đông đảo lập trình viên ưa thích như hôm nay. - -## 2️. Tổng quan về Linux - -Cấu trúc hệ điều hành Linux tóm gọn lại chỉ gồm 3 phần chính: - -- **Kernel**: hay được gọi là phần nhân, vì đây là phần quan trọng nhất trong máy tính bởi chứa đựng các module hay các package để quản lý, giao tiếp giữa phần cứng máy tính và ứng dụng. -- **Shell**: là phần có chức năng thực thi các lệnh (command) từ người dùng hoặc từ các ứng dụng yêu cầu, chuyển đến cho kernel xử lý. Nói nôm na, shell chính là cầu nối để kernel và ứng dụng nói chuyện với nhau. -- **Application**: là phần quen thuộc với chúng ta nhất, phần để người dùng cài đặt và chạy ứng dụng để người dùng có thể phục vụ cho nhu cầu của mình. - -![](static/pie.png) - -💡 **Ghi nhớ**: Linux là hệ điều hành open-source, đa số các thao tác thực hiện trên linux sẽ thông qua các câu lệnh gọn gàng và nhanh trên terminal. diff --git a/content/en/docs/Linux Overview/2-vi-sao-linux/index.md b/content/en/docs/Linux Overview/2-vi-sao-linux/index.md deleted file mode 100644 index adb6bc9e..00000000 --- a/content/en/docs/Linux Overview/2-vi-sao-linux/index.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: "Vì sao nên sử dụng Linux" -description: "Vì sao chúng ta nên sử dụng hệ điều hành Linux." -lead: "" -date: 2022-12-24 -lastmod: 2022-12-24 -draft: false -images: [./compile-time.png, ./rice-sample.jpg] -menu: - docs: - parent: "Linux Overview" -contributors: ["thangbuiq"] -weight: 102 ---- - -### 1. Thiên đường mã nguồn mở - -Khi bạn quá mệt với các yêu cầu trả tiền bản quyền các ứng dụng, hay thậm chí là bản quyền cho chính hệ điều hành của bạn? -Linux là dành cho bạn, nơi mà mọi người chỉ cần clone về mọi thứ một cách miễn phí. -Ngoài ra nó còn có điểm cộng nữa là bạn có thể xem được bên trong source của chúng có những gì, thông qua đó, ta có thể dễ dàng tùy biến chúng. - -### 2. Thích hợp cho "dân code" (developers) - -Tốc độ compile, debug bằng các ngôn ngữ lập trình trên Linux nhanh hơn nhiều so với các hệ điều hành khác. -Thích hợp hoàn hảo dành cho dân code chính hiệu. -Ảnh dưới so sánh tốc độ compile một file C++ 1000 dòng code, sample size = 1000 lần. - -![](static/compile-time.png) - -### 3. Bảo mật an toàn - -Điều này dễ hiểu vì khi cài đặt hay thực thi bất cứ thứ gì trong Linux bạn cũng sẽ cần sự cấp phép “superuser", và cũng nhờ cơ chế phân quyền tài khoản, cách linux tổ chức quản lí file trên hệ thống,... -Như chúng ta đã biết, các hệ điều hành khác sẽ dễ bị tấn công bởi các kiểu tấn công khác nhau (hoặc bị khai thác các lỗ hổng zero-day). -Tuy không phải là bất khả xâm phạm nhưng theo những thống kê cho thấy: số lượng các cuộc tấn công hay mã độc chủ yếu xảy ra với các server chạy Windows. -Linux không phải là tượng đài bất khả xâm phạm nhưng chắc chắn nó an toàn hơn windows mặc cho các công nghệ tường lửa trên windows ngày một phát triển (thật ra không ai rảnh mà viết malware hay virus cho linux cả). - -### 4. Cấu hình siêu nhẹ, hiệu suất cao - -Cấu hình mà Linux yêu cầu là rất thấp, thấp hơn rất nhiều so với các OS khác như macOS hay Windows. -Thực tế ta thấy nhiều người có máy tính chỉ với 1GB RAM chạy linux trên chip Pentium vẫn ổn định mượt mà, với cấu hình tương tự chúng ta sẽ gặp nhiều khó khăn khi thực hiện các thao tác thông thường trên Windows. -Vì thế, không phải lo về việc Linux chiếm bao nhiêu dung lượng hay đòi hỏi cấu hình ra sao, cho dù máy tính bạn chỉ còn trống vài chục GB và có cấu hình từ đời “tống", thì nó vẫn chạy rất tốt Linux. - -Yêu cầu tối thiểu của Linux (Distro: Arch): - -- RAM: 512 MB (recommended 2 GB). -- Trống ít nhất 1GB ổ đĩa (recommended 20 GB). -- Có kết nối Internet - -### 5. Khả năng tùy biến cao - -Linux mang lại cho người dùng khả năng "thiên biến vạn hóa" trên chính hệ điều hành của mình, từ custom giao diện (hay còn gọi là "RICE"), config terminal, config hệ thống, v.v… -Nhưng sẽ còn tùy thuộc vào thẩm mỹ của người mình (Tux sẽ có thêm chi tiết về custom giao diện Linux chi tiết cho các bạn sau). - -![](static/rice-sample.jpg) - -### 6. Cộng đồng hỗ trợ đông đảo - -Khi sử dụng Linux, nếu bạn đang có thắc mắc hay chiếc máy tính chạy Linux của bạn không may gặp phải gì đó. -Thay vì phải đem ra tiệm và bị ép cài win lại như máy Win (xong bị thu phí vài trăm ngàn), hoặc bị tư vấn và phải mua hẳn một cái máy mới như macbook, thì ta chỉ cần search google hay tra stackoverflow để biết được mọi giải pháp cho mọi vấn đề fix mọi thứ, các trang cộng đồng linux như ITS-FOSS, hoặc như ở đây, các bạn có UBUNCHUU, mọi người luôn luôn welcome và cởi mở để giúp đỡ nhau. -Chỉ cần với tinh thần ham học hỏi, không việc gì là khó với chúng mình cả. diff --git a/content/en/docs/Linux Overview/3-so-sanh-linux/index.md b/content/en/docs/Linux Overview/3-so-sanh-linux/index.md deleted file mode 100644 index 9240e2d8..00000000 --- a/content/en/docs/Linux Overview/3-so-sanh-linux/index.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: "So sánh Linux với các hệ điều hành khác" -description: "So sánh Linux với Windows & MacOS" -lead: "" -date: 2023-02-01 -lastmod: 2023-02-01 -draft: false -images: "" -menu: - docs: - parent: "Linux Overview" -contributors: ["lelouvincx"] -weight: 103 ---- - -> Chúng ta hãy cùng so sánh Linux với hai hệ điều hành phổ biến là Windows và MacOS. - - - -### ⚙️ Cài đặt - -Để cài Windows, chỉ cần một USB Boot có chứa Windows là có thể cài được. Windows chạy được với hầu hết các loại phần cứng, nhưng yêu cầu tối thiểu 1 GHz CPU, RAM từ 1-2 Gb và ổ cứng 15 Gb. Sau đó, quy trình cài đặt chỉ cần "bấm" và "chọn". - -Khác với Windows, macOS được cài đặt sẵn trong các máy macbook hoặc iMac. Khi máy về, chỉ cần tùy chỉnh một số chức năng cho phù hợp là được. - -Hiện tại, cài đặt Ubuntu đã được tinh gọn, thêm giao diện người dùng (UI). Cũng giống Windows, để cài Ubuntu chỉ cần một USB Boot có chứa Ubuntu theo phiên bản đã chọn. Nhưng so với Windows thì Ubuntu có yêu cầu phần cứng thấp hơn nhiều. Các máy từ đời "Hán" với chip Pentium 10 năm tuổi cũng có thể cài được và sử dụng trơn tru. - -Nhưng nếu bạn cài đặt một phiên bản của Linux: Arch thì đó là một câu chuyện khác. Bạn sẽ phải cài đặt lại hết từ đầu những thứ cần có của một hệ điều hành. Từ việc chia phân vùng, kết nối internet, thiết lập đồng hồ, cài đặt packages liên quan, ... tất cả thực hiện trên giao diện dòng lệnh terminal (CLI). - -![](static/image1.jpg) - -> Nhưng "thương cho roi cho vọt", một khi bạn cài được Arch, bạn sẽ học được vô số kiến thức bổ ích về Linux, thứ sẽ giúp bạn rất nhiều sau này. - -![](static/image2.jpg) - -### 💯 Độ tương thích phần mềm - -Windows là hệ điều hành thông dụng nhất, và nhờ đó hầu hết phần mềm tương thích với nó. Tương tự, macOS cũng có một hệ sinh thái phần mềm riêng. Ví dụ đối với editor, thay vì dùng Adobe Premier (tương thích với Windows và macOS), họ có thể dùng DaVinci Resolve, phần mềm edit video độc quyền của macOS. - -Tuy nhiên đối với Linux, một vài phần mềm ở Windows không có phiên bản cho Linux như Zalo, Adobe (Photoshop, Illustrator, Premier, ...). Bạn vẫn có thể sử dụng chúng thông qua [Wine](https://www.winehq.org/), nhưng khó để nói chúng chạy mượt mà như trên Windows. - -Ngoài ra hầu hết các game trên Windows sử dụng driver của riêng họ là DirectX, vì vậy, nếu bạn dành phần lớn thời gian chơi game thì tốt nhất là dùng Windows. - -Tuy nhiên, lợi thế của Linux là các phần mềm cũ từ nhiều năm trước cũng có thể cài đặt được. Ví dụ bạn cần cài đặt phiên bản chục năm trước của một phần mềm để học tập. - -![](static/image3.jpg) - -### 🤯 Độ khó sử dụng - -Windows và macOS có giao diện rất thân thiện với người dùng. Tuy nhiên, chúng không phải môi trường tốt cho việc coding. MacOS được phát triển từ nhân Linux nên có một số câu lệnh tương tự Linux, nhưng thực tế, không ai chạy và quản lý server bằng macOS cả. - -![](static/image4.jpg) - -Hiện tại phiên bản Ubuntu 22.10 đã được phát triển rất thân thiện với người dùng, bạn không phải mất quá nhiều thời gian để làm quen với nó. - -![](static/image5.jpg) - -### 🔐 Bảo mật và ổn định - -Không có gì phải bàn cãi, Linux là hệ điều hành bảo mật và ổn định nhất. Thực tế với mã nguồn được công khai không khiến nó trở nên nguy hiểm như bạn vẫn nghĩ, ngược lại đó là một lợi thế. Mã nguồn mở khiến lỗi được phát hiện và chữa nhanh hơn. - -Mặc khác, Windows được coi là hệ điều hành dễ bị lây lan virus nhất. Với lượng người dùng lớn, Windows trở thành mục tiêu cho các phần mềm malware và virus. - -### 📂 Quản lý files - -Windows sử dụng "drives", gọi dân dã là ổ đĩa/phân vùng. Thường là ổ đĩa C hoặc D sẽ chứa files liên quan đến hệ thống. Bạn cũng có thể chia thêm ổ đĩa từ C hoặc D để lưu trữ file cá nhân. Ngoài ra có các ổ đĩa ngoài như CD, USB. - -Mặt khác, macOS và Linux có hệ thống quản lý files khá tương đồng vì cùng đến từ UNIX. Chúng không có "drives" như Windows, thay vào đó mọi thứ trong máy tính được coi như 1 file (kể cả ổ cứng ngoài), và tất cả files được tổ chức dưới dạng thư mục, phân chia theo cây với cùng một gốc. - -### 😍 Shells - -Một trong những thứ mà Tux thích nhất khi dùng Linux là terminal. Cả Linux và macOS đều đặt `bash` là shell mặc định. Trong khi đó Windows có hệ thống shell riêng là `powershell`, với cách dùng và syntax khác biệt. - -Là lập trình viên, sử dụng shell để tương tác với kernel là một trong những điều bắt buộc. Lý do vì hầu hết các server hiện nay đều là Linux, kể cả khi bạn muốn thuê một VPS, hay Cloud Compute Engine. Terminal thực sự giúp cuộc sống lập trình viên dễ dàng hơn, hay vì luôn dùng chuột để điều khiển máy tính. - -![](static/image7.jpg) - -### 🍀 Cộng đồng hỗ trợ - -Mặc dù lượng người dùng không nhiều bằng hai hệ điều hành kia, cộng đồng người dùng Linux là những người yêu phần mềm và đam mê công nghệ. Họ thường trao đổi, chia sẻ, hỗ trợ kiến thức với nhau. - -MacOS cũng sở hữu một lượng fan, phần lớn về sáng tạo (thiết kế đồ họa, animation, video, ...) và về cách sử dụng những thứ được Apple làm sẵn. - -Và cuối cùng, Windows được sử dụng đại trà bởi người dùng phổ thông. - -![](static/image8.jpg) diff --git a/content/en/docs/Linux Overview/_index.md b/content/en/docs/Linux Overview/_index.md deleted file mode 100644 index b5f7903a..00000000 --- a/content/en/docs/Linux Overview/_index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: "Linux Overview" -description: "Section 1 - linux overview" -lead: "Linux overview" -date: 2022-24-12 -lastmod: 2022-24-12 -draft: false -images: [] -weight: 1 ---- diff --git a/content/en/docs/_index.md b/content/en/docs/_index.md deleted file mode 100644 index 195cb644..00000000 --- a/content/en/docs/_index.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: "Docs" -description: "Ubunchuu docs." -lead: "" -date: 2022-12-24 -lastmod: 2022-12-24 -draft: false -images: [] ---- diff --git a/content/en/linux.ico b/content/en/linux.ico deleted file mode 100644 index a2c826b3..00000000 Binary files a/content/en/linux.ico and /dev/null differ diff --git a/content/en/privacy-policy/index.md b/content/en/privacy-policy/index.md deleted file mode 100644 index 63150240..00000000 --- a/content/en/privacy-policy/index.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: "Privacy Policy" -description: "We do not use cookies and we do not collect any personal data." -date: 2020-08-27T19:23:18+02:00 -lastmod: 2020-08-27T19:23:18+02:00 -draft: true -images: [] ---- - -__TLDR__: We do not use cookies and we do not collect any personal data. - -## Website visitors - -- No personal information is collected. -- No information is stored in the browser. -- No information is shared with, sent to or sold to third-parties. -- No information is shared with advertising companies. -- No information is mined and harvested for personal and behavioral trends. -- No information is monetized. - -### Information we collect and what we use it for - -We run [Plausible](https://plausible.io/) analytics on getdoks.org. The following information is collected: - -- __Page URL__. We track the page URL of each page view on this website. We use this to understand which pages have been viewed and how many times a particular page has been viewed. For example: _https://getdoks.org/_. -- __HTTP Referrer__. We use the referrer string to understand the number of visitors referred to this website from links on other sites. For example: _https://github.com/_. -- __Browser__. We use this to understand what browsers people use when visiting this website. This is derived from the User-Agent HTTP header. The full User-Agent is discarded. For example: _Chrome_. -- __Operating system__. We use this to understand what operating systems people use when visiting this website. We only use the brand of the operating system and don’t include the version number or any other details. This is derived from the User-Agent HTTP header. The full User-Agent is discarded. For example: _GNU/Linux_. -- __Device type__. We use this to understand what devices people use when visiting this website. This is derived from window.innerWidth. The actual width of the browser in pixels is discarded. For example: _Desktop_. -- __Visitor Country__. We look up the visitor’s country using the IP address. We do not track anything more granular than the country of origin and the IP address of the visitor is discarded. We never store IP addresses in our database or logs. For example: _Canada_. - -## Contact us - -[Contact us]({{< relref "contact/index.md" >}}) if you have any questions. - -Effective Date: _27th August 2020_ diff --git a/contributors/chimlun0910/index.html b/contributors/chimlun0910/index.html new file mode 100644 index 00000000..40706e02 --- /dev/null +++ b/contributors/chimlun0910/index.html @@ -0,0 +1,9 @@ +chimlun0910 Ubunchuu Trường Ú

chimlun0910

Tìm hiểu chung về Linux Distro
Chọn ra Distro phù hợp nhất với mình
Cài đặt và đồng bộ Onedrive cho Linux
+ + + + +
Top
\ No newline at end of file diff --git a/contributors/chimlun0910/index.xml b/contributors/chimlun0910/index.xml new file mode 100644 index 00000000..9df1acca --- /dev/null +++ b/contributors/chimlun0910/index.xml @@ -0,0 +1,5 @@ +chimlun0910 onhttps://ubunchuu-truong-us.github.io/contributors/chimlun0910/Recent content in chimlun0910 onHugo -- gohugo.ioSun, 19 Mar 2023 00:00:00 +0000Tìm hiểu chung về Linux Distrohttps://ubunchuu-truong-us.github.io/docs/t%C3%ACm-hi%E1%BB%83u-chung-v%E1%BB%81-linux-distro/Mon, 06 Feb 2023 00:00:00 +0000https://ubunchuu-truong-us.github.io/docs/t%C3%ACm-hi%E1%BB%83u-chung-v%E1%BB%81-linux-distro/Distro là từ viết tắt của linux distribution, có tên tiếng việt là phân phối của Linux. +1. Khái niệm Distro # +Một bản phân phối của linux (hay distro) là một hệ điều hành được lập trình từ những tùy biến dựa trên nhân Linux. Những tùy biến này có thể giải thích đơn giản là sự thay đổi trong cách đóng gói packages bên trong hệ điều hành cùng với nhân Linux, cùng các công cụ GNU, thư viện cũng như tiện ích, ứng dụng khác nhau cho phù hợp với nhu cầu người sử dụng.Chọn ra Distro phù hợp nhất với mìnhhttps://ubunchuu-truong-us.github.io/docs/ch%E1%BB%8Dn-ra-distro-ph%C3%B9-h%E1%BB%A3p-nh%E1%BA%A5t-v%E1%BB%9Bi-m%C3%ACnh/Tue, 21 Feb 2023 00:00:00 +0000https://ubunchuu-truong-us.github.io/docs/ch%E1%BB%8Dn-ra-distro-ph%C3%B9-h%E1%BB%A3p-nh%E1%BA%A5t-v%E1%BB%9Bi-m%C3%ACnh/Theo số liệu thống kê từ trang truelist.co (số liệu thống kê tính tới ngày 02/02/2023), hiện nay số lượng các distros Linux đang hoạt động vào khoảng hơn 600 distros. Một số distros được sử dụng phổ biến nhất hiện nay là Debian, Ubuntu, Manjaro, Arch Linux, Kali Linux, và còn nhiều hơn thế nữa. Tuy nhiên, để chọn ra được một distro phù hợp với tính chất công việc, nhu cầu sử dụng của bạn thì có lẽ là một việc không hề dễ dàng và tốn nhiều thời gian trải nghiệm.Cài đặt và đồng bộ Onedrive cho Linuxhttps://ubunchuu-truong-us.github.io/docs/c%C3%A0i-%C4%91%E1%BA%B7t-v%C3%A0-%C4%91%E1%BB%93ng-b%E1%BB%99-onedrive-cho-linux/Sun, 19 Mar 2023 00:00:00 +0000https://ubunchuu-truong-us.github.io/docs/c%C3%A0i-%C4%91%E1%BA%B7t-v%C3%A0-%C4%91%E1%BB%93ng-b%E1%BB%99-onedrive-cho-linux/tags: onedrive,file-syncing-with-onedrive # +📝 Onedrive là gì ? Tìm hiểu chung về công dụng của Onedrive # +OneDrive là dịch vụ đám mây của Microsoft được sử dụng để lưu trữ dữ liệu của người dùng. Dịch vụ cho phép người dùng kết nối với dữ liệu của họ thông qua việc lưu trữ và bảo vệ dữ liệu. Người dùng có thể chia sẻ dữ liệu với những người khác và truy cập đến chúng từ mọi nơi trên tất cả các thiết bị của họ. \ No newline at end of file diff --git a/contributors/chimlun0910/page/1/index.html b/contributors/chimlun0910/page/1/index.html new file mode 100644 index 00000000..7de55e6b --- /dev/null +++ b/contributors/chimlun0910/page/1/index.html @@ -0,0 +1 @@ +https://ubunchuu-truong-us.github.io/contributors/chimlun0910/ \ No newline at end of file diff --git a/contributors/henk-verlinde/index.html b/contributors/henk-verlinde/index.html new file mode 100644 index 00000000..9cc41028 --- /dev/null +++ b/contributors/henk-verlinde/index.html @@ -0,0 +1,9 @@ +Henk Verlinde Ubunchuu Trường Ú

Henk Verlinde

Creator of Hyas.

@HenkVerlinde

+ + + + +
Top
\ No newline at end of file diff --git a/contributors/henk-verlinde/index.xml b/contributors/henk-verlinde/index.xml new file mode 100644 index 00000000..8e26b0fc --- /dev/null +++ b/contributors/henk-verlinde/index.xml @@ -0,0 +1 @@ +Henk Verlinde onhttps://ubunchuu-truong-us.github.io/contributors/henk-verlinde/Recent content in Henk Verlinde onHugo -- gohugo.ioTue, 06 Oct 2020 08:50:45 +0000 \ No newline at end of file diff --git a/contributors/henk-verlinde/page/1/index.html b/contributors/henk-verlinde/page/1/index.html new file mode 100644 index 00000000..9664c6eb --- /dev/null +++ b/contributors/henk-verlinde/page/1/index.html @@ -0,0 +1 @@ +https://ubunchuu-truong-us.github.io/contributors/henk-verlinde/ \ No newline at end of file diff --git a/contributors/index.html b/contributors/index.html new file mode 100644 index 00000000..d1b57eb3 --- /dev/null +++ b/contributors/index.html @@ -0,0 +1,9 @@ +Contributors Ubunchuu Trường Ú
+ + + + +
Top
\ No newline at end of file diff --git a/contributors/index.xml b/contributors/index.xml new file mode 100644 index 00000000..292a936a --- /dev/null +++ b/contributors/index.xml @@ -0,0 +1,2 @@ +Contributors onhttps://ubunchuu-truong-us.github.io/contributors/Recent content in Contributors onHugo -- gohugo.ioTue, 06 Oct 2020 08:50:29 +0000thangbuiqhttps://ubunchuu-truong-us.github.io/contributors/thangbuiq/Wed, 31 May 2023 00:00:00 +0000https://ubunchuu-truong-us.github.io/contributors/thangbuiq/lelouvincxhttps://ubunchuu-truong-us.github.io/contributors/lelouvincx/Sat, 27 May 2023 00:00:00 +0000https://ubunchuu-truong-us.github.io/contributors/lelouvincx/chimlun0910https://ubunchuu-truong-us.github.io/contributors/chimlun0910/Sun, 19 Mar 2023 00:00:00 +0000https://ubunchuu-truong-us.github.io/contributors/chimlun0910/lelouvincx, thangbuiq, chimlun0910https://ubunchuu-truong-us.github.io/contributors/lelouvincx-thangbuiq-chimlun0910/Sat, 24 Dec 2022 00:00:00 +0000https://ubunchuu-truong-us.github.io/contributors/lelouvincx-thangbuiq-chimlun0910/Henk Verlindehttps://ubunchuu-truong-us.github.io/contributors/henk-verlinde/Tue, 06 Oct 2020 08:50:45 +0000https://ubunchuu-truong-us.github.io/contributors/henk-verlinde/Creator of Hyas. +@HenkVerlinde \ No newline at end of file diff --git a/contributors/lelouvincx-thangbuiq-chimlun0910/index.html b/contributors/lelouvincx-thangbuiq-chimlun0910/index.html new file mode 100644 index 00000000..7a311de0 --- /dev/null +++ b/contributors/lelouvincx-thangbuiq-chimlun0910/index.html @@ -0,0 +1,9 @@ +lelouvincx, thangbuiq, chimlun0910 Ubunchuu Trường Ú

lelouvincx, thangbuiq, chimlun0910

+ + + + +
Top
\ No newline at end of file diff --git a/contributors/lelouvincx-thangbuiq-chimlun0910/index.xml b/contributors/lelouvincx-thangbuiq-chimlun0910/index.xml new file mode 100644 index 00000000..da91fc45 --- /dev/null +++ b/contributors/lelouvincx-thangbuiq-chimlun0910/index.xml @@ -0,0 +1,7 @@ +lelouvincx, thangbuiq, chimlun0910 onhttps://ubunchuu-truong-us.github.io/contributors/lelouvincx-thangbuiq-chimlun0910/Recent content in lelouvincx, thangbuiq, chimlun0910 onHugo -- gohugo.ioSat, 24 Dec 2022 00:00:00 +0000Cài đặt Ubuntu (clean install)https://ubunchuu-truong-us.github.io/docs/c%C3%A0i-%C4%91%E1%BA%B7t-ubuntu-clean-install/Sat, 24 Dec 2022 00:00:00 +0000https://ubunchuu-truong-us.github.io/docs/c%C3%A0i-%C4%91%E1%BA%B7t-ubuntu-clean-install/1. Giới thiệu về Ubuntu # +Ubuntu hoàn toàn miễn phí và có thể dễ dàng cài đặt trên mọi cấu hình: # +Khác với Windows và MacOS, Ubuntu không yêu cầu một khoản phí bất kỳ nào để có thể cài đặt và sử dụng hệ điều hành. +Việc cài đặt Ubuntu theo tụi mình đánh giá là đơn giản hơn việc cài đặt hệ điều hành Windows khá nhiều.Cài đặt Ubuntu cho người dùng song song với Windowshttps://ubunchuu-truong-us.github.io/docs/c%C3%A0i-%C4%91%E1%BA%B7t-ubuntu-cho-ng%C6%B0%E1%BB%9Di-d%C3%B9ng-song-song-v%E1%BB%9Bi-windows/Sat, 24 Dec 2022 00:00:00 +0000https://ubunchuu-truong-us.github.io/docs/c%C3%A0i-%C4%91%E1%BA%B7t-ubuntu-cho-ng%C6%B0%E1%BB%9Di-d%C3%B9ng-song-song-v%E1%BB%9Bi-windows/1. Giới thiệu về Ubuntu # +Ubuntu hoàn toàn miễn phí và có thể dễ dàng cài đặt trên mọi cấu hình: # +Khác với Windows và MacOS, Ubuntu không yêu cầu một khoản phí bất kỳ nào để có thể cài đặt và sử dụng hệ điều hành. +Việc cài đặt Ubuntu theo tụi mình đánh giá là đơn giản hơn việc cài đặt hệ điều hành Windows khá nhiều. \ No newline at end of file diff --git a/contributors/lelouvincx-thangbuiq-chimlun0910/page/1/index.html b/contributors/lelouvincx-thangbuiq-chimlun0910/page/1/index.html new file mode 100644 index 00000000..df427d71 --- /dev/null +++ b/contributors/lelouvincx-thangbuiq-chimlun0910/page/1/index.html @@ -0,0 +1 @@ +https://ubunchuu-truong-us.github.io/contributors/lelouvincx-thangbuiq-chimlun0910/ \ No newline at end of file diff --git a/contributors/lelouvincx/index.html b/contributors/lelouvincx/index.html new file mode 100644 index 00000000..851faab6 --- /dev/null +++ b/contributors/lelouvincx/index.html @@ -0,0 +1,9 @@ +lelouvincx Ubunchuu Trường Ú

lelouvincx

Giới thiệu về Linux
So sánh Linux với các hệ điều hành khác
Day 0: Chào mừng đến với Linux
Day 2: Cấu hình Terminal Emulator
+ + + + +
Top
\ No newline at end of file diff --git a/contributors/lelouvincx/index.xml b/contributors/lelouvincx/index.xml new file mode 100644 index 00000000..6eede70a --- /dev/null +++ b/contributors/lelouvincx/index.xml @@ -0,0 +1,10 @@ +lelouvincx onhttps://ubunchuu-truong-us.github.io/contributors/lelouvincx/Recent content in lelouvincx onHugo -- gohugo.ioSat, 27 May 2023 00:00:00 +0000Giới thiệu về Linuxhttps://ubunchuu-truong-us.github.io/docs/gi%E1%BB%9Bi-thi%E1%BB%87u-v%E1%BB%81-linux/Sat, 24 Dec 2022 00:00:00 +0000https://ubunchuu-truong-us.github.io/docs/gi%E1%BB%9Bi-thi%E1%BB%87u-v%E1%BB%81-linux/Chào mừng bạn đến với bài viết đầu tiên, mở đầu tutorial của chúng mình. Mình là Tux, người đồng hành cùng bạn trong cuộc hành trình này. Hãy cùng bắt đầu với một chút flashback về lịch sử đằng sau sự hình thành linux. +1️. Lịch sử hình thành # +Năm 1969, Ken Thompson và Dennis Ritchie tại viện nghiên cứu Bell (đại học MIT) đã phát triển hệ điều hành UNIX.So sánh Linux với các hệ điều hành kháchttps://ubunchuu-truong-us.github.io/docs/so-s%C3%A1nh-linux-v%E1%BB%9Bi-c%C3%A1c-h%E1%BB%87-%C4%91i%E1%BB%81u-h%C3%A0nh-kh%C3%A1c/Wed, 01 Feb 2023 00:00:00 +0000https://ubunchuu-truong-us.github.io/docs/so-s%C3%A1nh-linux-v%E1%BB%9Bi-c%C3%A1c-h%E1%BB%87-%C4%91i%E1%BB%81u-h%C3%A0nh-kh%C3%A1c/Chúng ta hãy cùng so sánh Linux với hai hệ điều hành phổ biến là Windows và MacOS. +https://youtu.be/o14-gCNRwR8 +⚙️ Cài đặt # +Để cài Windows, chỉ cần một USB Boot có chứa Windows là có thể cài được. Windows chạy được với hầu hết các loại phần cứng, nhưng yêu cầu tối thiểu 1 GHz CPU, RAM từ 1-2 Gb và ổ cứng 15 Gb. Sau đó, quy trình cài đặt chỉ cần &ldquo;bấm&rdquo; và &ldquo;chọn&rdquo;.Day 0: Chào mừng đến với Linuxhttps://ubunchuu-truong-us.github.io/docs/day-0-ch%C3%A0o-m%E1%BB%ABng-%C4%91%E1%BA%BFn-v%E1%BB%9Bi-linux/Sat, 24 Dec 2022 00:00:00 +0000https://ubunchuu-truong-us.github.io/docs/day-0-ch%C3%A0o-m%E1%BB%ABng-%C4%91%E1%BA%BFn-v%E1%BB%9Bi-linux/Xin chào, lại là Tux đây! Sau khi cài đặt thành công Ubuntu, bước tiếp theo chúng ta cần làm là thiết lập Ubuntu để có thể sử dụng. Cùng mình đi tiếp những bước cài đặt nhé! +1. Làm quen với môi trường dòng lệnh (CLI) # +Nhìn chung, các hệ máy UNIX như Linux, MacOS đều cung cấp một giao diện làm việc với dòng lệnh (Command Line Interface), hay gọi dân dã là Terminal.Day 2: Cấu hình Terminal Emulatorhttps://ubunchuu-truong-us.github.io/docs/day-2-c%E1%BA%A5u-h%C3%ACnh-terminal-emulator/Sat, 27 May 2023 00:00:00 +0000https://ubunchuu-truong-us.github.io/docs/day-2-c%E1%BA%A5u-h%C3%ACnh-terminal-emulator/Trong bài viết này, chúng ta sẽ học cách cài đặt và tùy chỉnh terminal trên Ubuntu. Terminal là một phần quan trọng trong quá trình làm việc với Linux. Chúng ta sẽ sử dụng Alacritty làm terminal emulator. +Alacritty là gì? Vì sao rất nên dùng làm Terminal Emulator? # +Alacritty là một terminal emulator nhanh và nhẹ, có tích hợp GPU. Nó được viết bằng Rust và có thể chạy trên nhiều hệ điều hành khác nhau như Linux, macOS, Windows. \ No newline at end of file diff --git a/contributors/lelouvincx/page/1/index.html b/contributors/lelouvincx/page/1/index.html new file mode 100644 index 00000000..5bbce978 --- /dev/null +++ b/contributors/lelouvincx/page/1/index.html @@ -0,0 +1 @@ +https://ubunchuu-truong-us.github.io/contributors/lelouvincx/ \ No newline at end of file diff --git a/contributors/page/1/index.html b/contributors/page/1/index.html new file mode 100644 index 00000000..8fcaa164 --- /dev/null +++ b/contributors/page/1/index.html @@ -0,0 +1 @@ +https://ubunchuu-truong-us.github.io/contributors/ \ No newline at end of file diff --git a/contributors/thangbuiq/index.html b/contributors/thangbuiq/index.html new file mode 100644 index 00000000..8ff8fd01 --- /dev/null +++ b/contributors/thangbuiq/index.html @@ -0,0 +1,9 @@ +thangbuiq Ubunchuu Trường Ú

thangbuiq

Vì sao nên sử dụng Linux
Tìm hiểu chung về Linux Distro
Chọn ra Distro phù hợp nhất với mình
Day 1: Câu lệnh cơ bản với terminal
Day 2: Cấu hình Terminal Emulator
+ + + + +
Top
\ No newline at end of file diff --git a/contributors/thangbuiq/index.xml b/contributors/thangbuiq/index.xml new file mode 100644 index 00000000..37b842a4 --- /dev/null +++ b/contributors/thangbuiq/index.xml @@ -0,0 +1,7 @@ +thangbuiq onhttps://ubunchuu-truong-us.github.io/contributors/thangbuiq/Recent content in thangbuiq onHugo -- gohugo.ioWed, 31 May 2023 00:00:00 +0000Vì sao nên sử dụng Linuxhttps://ubunchuu-truong-us.github.io/docs/v%C3%AC-sao-n%C3%AAn-s%E1%BB%AD-d%E1%BB%A5ng-linux/Sat, 24 Dec 2022 00:00:00 +0000https://ubunchuu-truong-us.github.io/docs/v%C3%AC-sao-n%C3%AAn-s%E1%BB%AD-d%E1%BB%A5ng-linux/1. Thiên đường mã nguồn mở # +Khi bạn quá mệt với các yêu cầu trả tiền bản quyền các ứng dụng, hay thậm chí là bản quyền cho chính hệ điều hành của bạn? Linux là dành cho bạn, nơi mà mọi người chỉ cần clone về mọi thứ một cách miễn phí. Ngoài ra nó còn có điểm cộng nữa là bạn có thể xem được bên trong source của chúng có những gì, thông qua đó, ta có thể dễ dàng tùy biến chúng.Tìm hiểu chung về Linux Distrohttps://ubunchuu-truong-us.github.io/docs/t%C3%ACm-hi%E1%BB%83u-chung-v%E1%BB%81-linux-distro/Mon, 06 Feb 2023 00:00:00 +0000https://ubunchuu-truong-us.github.io/docs/t%C3%ACm-hi%E1%BB%83u-chung-v%E1%BB%81-linux-distro/Distro là từ viết tắt của linux distribution, có tên tiếng việt là phân phối của Linux. +1. Khái niệm Distro # +Một bản phân phối của linux (hay distro) là một hệ điều hành được lập trình từ những tùy biến dựa trên nhân Linux. Những tùy biến này có thể giải thích đơn giản là sự thay đổi trong cách đóng gói packages bên trong hệ điều hành cùng với nhân Linux, cùng các công cụ GNU, thư viện cũng như tiện ích, ứng dụng khác nhau cho phù hợp với nhu cầu người sử dụng.Chọn ra Distro phù hợp nhất với mìnhhttps://ubunchuu-truong-us.github.io/docs/ch%E1%BB%8Dn-ra-distro-ph%C3%B9-h%E1%BB%A3p-nh%E1%BA%A5t-v%E1%BB%9Bi-m%C3%ACnh/Tue, 21 Feb 2023 00:00:00 +0000https://ubunchuu-truong-us.github.io/docs/ch%E1%BB%8Dn-ra-distro-ph%C3%B9-h%E1%BB%A3p-nh%E1%BA%A5t-v%E1%BB%9Bi-m%C3%ACnh/Theo số liệu thống kê từ trang truelist.co (số liệu thống kê tính tới ngày 02/02/2023), hiện nay số lượng các distros Linux đang hoạt động vào khoảng hơn 600 distros. Một số distros được sử dụng phổ biến nhất hiện nay là Debian, Ubuntu, Manjaro, Arch Linux, Kali Linux, và còn nhiều hơn thế nữa. Tuy nhiên, để chọn ra được một distro phù hợp với tính chất công việc, nhu cầu sử dụng của bạn thì có lẽ là một việc không hề dễ dàng và tốn nhiều thời gian trải nghiệm.Day 1: Câu lệnh cơ bản với terminalhttps://ubunchuu-truong-us.github.io/docs/day-1-c%C3%A2u-l%E1%BB%87nh-c%C6%A1-b%E1%BA%A3n-v%E1%BB%9Bi-terminal/Wed, 31 May 2023 00:00:00 +0000https://ubunchuu-truong-us.github.io/docs/day-1-c%C3%A2u-l%E1%BB%87nh-c%C6%A1-b%E1%BA%A3n-v%E1%BB%9Bi-terminal/Để làm việc với file trên Linux (hay trên Linux server), các bạn không thể sử dụng các thao tác bằng đồ họa (kéo thả như trên Windows) mà phải thao tác qua cửa sổ dòng lệnh (command-line). Điều này gây khó khăn cho những người không quen thuộc với việc sử dụng console. +Thông qua bài viết này, Tux sẽ giúp mọi người làm quen với một số lệnh cơ bản để quản lý file trên hệ thống Linux.Day 2: Cấu hình Terminal Emulatorhttps://ubunchuu-truong-us.github.io/docs/day-2-c%E1%BA%A5u-h%C3%ACnh-terminal-emulator/Sat, 27 May 2023 00:00:00 +0000https://ubunchuu-truong-us.github.io/docs/day-2-c%E1%BA%A5u-h%C3%ACnh-terminal-emulator/Trong bài viết này, chúng ta sẽ học cách cài đặt và tùy chỉnh terminal trên Ubuntu. Terminal là một phần quan trọng trong quá trình làm việc với Linux. Chúng ta sẽ sử dụng Alacritty làm terminal emulator. +Alacritty là gì? Vì sao rất nên dùng làm Terminal Emulator? # +Alacritty là một terminal emulator nhanh và nhẹ, có tích hợp GPU. Nó được viết bằng Rust và có thể chạy trên nhiều hệ điều hành khác nhau như Linux, macOS, Windows. \ No newline at end of file diff --git a/contributors/thangbuiq/page/1/index.html b/contributors/thangbuiq/page/1/index.html new file mode 100644 index 00000000..db2a4334 --- /dev/null +++ b/contributors/thangbuiq/page/1/index.html @@ -0,0 +1 @@ +https://ubunchuu-truong-us.github.io/contributors/thangbuiq/ \ No newline at end of file diff --git a/data/docs-versions.yml b/data/docs-versions.yml deleted file mode 100644 index 8e7e5dd9..00000000 --- a/data/docs-versions.yml +++ /dev/null @@ -1,60 +0,0 @@ -# - group: v1.x -# baseurl: "https://getbootstrap.com" -# description: "Every minor and patch release from v1 is listed below." -# versions: -# - v: "1.0.0" -# - v: "1.1.0" -# - v: "1.1.1" -# - v: "1.2.0" -# - v: "1.3.0" -# - v: "1.4.0" -# -# - group: v2.x -# baseurl: "https://getbootstrap.com" -# description: "Every minor and patch release from v2 is listed below." -# versions: -# - v: "2.0.0" -# - v: "2.0.1" -# - v: "2.0.2" -# - v: "2.0.3" -# - v: "2.0.4" -# - v: "2.1.0" -# - v: "2.1.1" -# - v: "2.2.0" -# - v: "2.2.1" -# - v: "2.2.2" -# - v: "2.3.0" -# - v: "2.3.1" -# - v: "2.3.2" -# -# - group: v3.x -# baseurl: "https://getbootstrap.com/docs" -# description: "Every minor and patch release from v3 is listed below. Last update was v3.4.1." -# versions: -# - v: "3.3" -# - v: "3.4" -# -# - group: v4.x -# baseurl: "https://getbootstrap.com/docs" -# description: "Our previous major release with its minor releases. Last update was v4.6.0." -# versions: -# - v: "4.0" -# - v: "4.1" -# - v: "4.2" -# - v: "4.3" -# - v: "4.4" -# - v: "4.5" -# - v: "4.6" - -- group: v0.x - baseurl: "/docs" - description: "Current major release. Last update was v0.2.0." - versions: - - v: "0.1" - - v: "0.2" - -- group: v1.x - baseurl: "/docs" - description: "Every minor and patch release from v1 is listed below. Last update was v1.0.0." - versions: - - v: "1.0" diff --git a/docs/15dfwt/index.html b/docs/15dfwt/index.html new file mode 100644 index 00000000..329fea77 --- /dev/null +++ b/docs/15dfwt/index.html @@ -0,0 +1,9 @@ +15 Days Flying With Tux Ubunchuu Trường Ú

15 Days Flying With Tux

+ + + + +
Top
\ No newline at end of file diff --git a/docs/15dfwt/index.xml b/docs/15dfwt/index.xml new file mode 100644 index 00000000..4697632c --- /dev/null +++ b/docs/15dfwt/index.xml @@ -0,0 +1,6 @@ +15 Days Flying With Tux onhttps://ubunchuu-truong-us.github.io/docs/15dfwt/Recent content in 15 Days Flying With Tux onHugo -- gohugo.ioFri, 19 May 2023 00:00:00 +0000Day 0: Chào mừng đến với Linuxhttps://ubunchuu-truong-us.github.io/docs/day-0-ch%C3%A0o-m%E1%BB%ABng-%C4%91%E1%BA%BFn-v%E1%BB%9Bi-linux/Sat, 24 Dec 2022 00:00:00 +0000https://ubunchuu-truong-us.github.io/docs/day-0-ch%C3%A0o-m%E1%BB%ABng-%C4%91%E1%BA%BFn-v%E1%BB%9Bi-linux/Xin chào, lại là Tux đây! Sau khi cài đặt thành công Ubuntu, bước tiếp theo chúng ta cần làm là thiết lập Ubuntu để có thể sử dụng. Cùng mình đi tiếp những bước cài đặt nhé! +1. Làm quen với môi trường dòng lệnh (CLI) # +Nhìn chung, các hệ máy UNIX như Linux, MacOS đều cung cấp một giao diện làm việc với dòng lệnh (Command Line Interface), hay gọi dân dã là Terminal.Day 1: Câu lệnh cơ bản với terminalhttps://ubunchuu-truong-us.github.io/docs/day-1-c%C3%A2u-l%E1%BB%87nh-c%C6%A1-b%E1%BA%A3n-v%E1%BB%9Bi-terminal/Wed, 31 May 2023 00:00:00 +0000https://ubunchuu-truong-us.github.io/docs/day-1-c%C3%A2u-l%E1%BB%87nh-c%C6%A1-b%E1%BA%A3n-v%E1%BB%9Bi-terminal/Để làm việc với file trên Linux (hay trên Linux server), các bạn không thể sử dụng các thao tác bằng đồ họa (kéo thả như trên Windows) mà phải thao tác qua cửa sổ dòng lệnh (command-line). Điều này gây khó khăn cho những người không quen thuộc với việc sử dụng console. +Thông qua bài viết này, Tux sẽ giúp mọi người làm quen với một số lệnh cơ bản để quản lý file trên hệ thống Linux.Day 2: Cấu hình Terminal Emulatorhttps://ubunchuu-truong-us.github.io/docs/day-2-c%E1%BA%A5u-h%C3%ACnh-terminal-emulator/Sat, 27 May 2023 00:00:00 +0000https://ubunchuu-truong-us.github.io/docs/day-2-c%E1%BA%A5u-h%C3%ACnh-terminal-emulator/Trong bài viết này, chúng ta sẽ học cách cài đặt và tùy chỉnh terminal trên Ubuntu. Terminal là một phần quan trọng trong quá trình làm việc với Linux. Chúng ta sẽ sử dụng Alacritty làm terminal emulator. +Alacritty là gì? Vì sao rất nên dùng làm Terminal Emulator? # +Alacritty là một terminal emulator nhanh và nhẹ, có tích hợp GPU. Nó được viết bằng Rust và có thể chạy trên nhiều hệ điều hành khác nhau như Linux, macOS, Windows. \ No newline at end of file diff --git a/docs/15dfwt/sitemap.xml b/docs/15dfwt/sitemap.xml new file mode 100644 index 00000000..6bc82a72 --- /dev/null +++ b/docs/15dfwt/sitemap.xml @@ -0,0 +1 @@ +https://ubunchuu-truong-us.github.io/docs/day-0-ch%C3%A0o-m%E1%BB%ABng-%C4%91%E1%BA%BFn-v%E1%BB%9Bi-linux/2024-01-16T14:34:23+07:00weekly0.5https://ubunchuu-truong-us.github.io/docs/day-1-c%C3%A2u-l%E1%BB%87nh-c%C6%A1-b%E1%BA%A3n-v%E1%BB%9Bi-terminal/2024-01-16T14:34:23+07:00weekly0.5https://ubunchuu-truong-us.github.io/docs/day-2-c%E1%BA%A5u-h%C3%ACnh-terminal-emulator/2024-01-01T13:52:22+07:00weekly0.5 \ No newline at end of file diff --git "a/docs/ch\341\273\215n-ra-distro-ph\303\271-h\341\273\243p-nh\341\272\245t-v\341\273\233i-m\303\254nh/index.html" "b/docs/ch\341\273\215n-ra-distro-ph\303\271-h\341\273\243p-nh\341\272\245t-v\341\273\233i-m\303\254nh/index.html" new file mode 100644 index 00000000..f95a6772 --- /dev/null +++ "b/docs/ch\341\273\215n-ra-distro-ph\303\271-h\341\273\243p-nh\341\272\245t-v\341\273\233i-m\303\254nh/index.html" @@ -0,0 +1,35 @@ +Chọn ra Distro phù hợp nhất với mình Ubunchuu Trường Ú

Chọn ra Distro phù hợp nhất với mình

Theo số liệu thống kê từ trang truelist.co (số liệu thống kê tính tới ngày 02/02/2023), hiện nay số lượng các distros Linux đang hoạt động vào khoảng hơn 600 distros. +Một số distros được sử dụng phổ biến nhất hiện nay là Debian, Ubuntu, Manjaro, Arch Linux, Kali Linux, và còn nhiều hơn thế nữa. +Tuy nhiên, để chọn ra được một distro phù hợp với tính chất công việc, nhu cầu sử dụng của bạn thì có lẽ là một việc không hề dễ dàng và tốn nhiều thời gian trải nghiệm.

Ubunchuu sẽ cố gắng hết sức để giúp các bạn có thể chọn được một distro phù hợp với bản thân của các bạn. +Có một câu nói đùa khá là “viral” trong cộng đồng Li-nú:

“Chọn distro cũng giống như cách mà các bạn chọn mẫu người yêu lí tưởng cho bản thân, không cần là người tốt nhất, chỉ cần là người phù hợp nhất. +Tuy nhiên có được cả hai thì lại là một điều quá đỗi tuyệt vời”.

Ở bài viết này, Ubunchuu sẽ phân loại distro theo đối tượng người dùng cũng như tính chất công việc, nhu cầu giải trí của họ.

1. Đối với người dùng đã quen thuộc với giao diện của hệ điều hành Windows

Với những người dùng đã thân thuộc với giao diện của hệ điều hành Windows và không có nhu cầu khám phá nhiều về tính cá nhân hóa của Linux, Ubunchuu đề xuất cho các bạn những distro sau:

  • Linux Mint: Đây là một trong những bản phân phối Linux khá nhẹ và có phần khá giống với Windows về hình thức bên ngoài. +Một trong những ứng dụng độc đáo mà Linux Mint có là Warpinator: một công cụ dựa trên Giver giúp dễ dàng chia sẻ tệp với những người dùng khác trên mạng cục bộ.

  • OpenSuse: Với giao diện mang phong cách thân thiện với người dùng Windows, OpenSuse sẽ là distro phù hợp với những người dùng thành thạo với Linux. +Một trong những điểm đặc biệt là OpenSuse được lựa chọn đa phần với những người làm IT, quản trị hệ thống và những con dân Coder, Dev, …

  • Kubuntu: Sở hữu một cái tên nghe khá tương đồng với Ubuntu, Kubuntu là sự hợp nhất hợp nhất Ubuntu với KDE và giao diện desktop Plasma tuyệt vời. +Distro này đến cho bạn một bộ ứng dụng đầy đủ. +Bản cài đặt bao gồm các ứng dụng năng suất, văn phòng, email, âm nhạc sẵn sàng sử dụng khi khởi động. +Konsole của Kubuntu được coi là một trong những Terminal tốt nhất trong cộng đồng Li-nú.

2. Đối với người dùng đã quen thuộc với giao diện của hệ điều hành MacOS

Đối với quan điểm cá nhân của người viết bài viết này, giao diện đồ họa người dùng của MacOS thực sự là một trong những giao diện đẹp, thân thiện với người dùng. +Nếu các bạn yêu thích một giao diện mới mẻ, không thiên hướng Windows, Ubunchuu sẽ đề xuất một vài distro sau:

  • Ubuntu: Ubuntu là một trong những bản phân phối Linux linh hoạt nhất với một cộng đồng lớn và hỗ trợ lâu dài. +Distro này được người dùng mới tiếp cận và người dùng đã có kinh nghiệm ưa thích, đặc biệt là do số lượng lớn các tiện ích phần mềm có sẵn. +Ubuntu nổi tiếng với sức mạnh của Terminal - một text-based interface cho phép người dùng truy cập trực tiếp vào hệ thống UNIX. +Trong những bản cập nhật gần đây, giao diện đồ họa người dùng của Ubuntu được đánh giá là có sự tương đồng với giao diện của MacOS.

  • Elementary OS: Được đánh giá là trong những distro Linux đẹp nhất, ElementaryOS có giao diện thân thiện với những người dùng MacOS và những người dùng thích khám phá sự cá nhân hóa mà Linux mang lại. +Elementary OS có thanh Dock khá đep cũng như những hiệu ứng chuyển tab mượt mà. +Distro này dựa trên Ubuntu và yêu cầu laptop có tài nguyên phù hợp để hoạt động mượt mà.

  • Garuda Linux: Một trong những distro “cool, ngầu” nhất, Garuda Linux là một bản phân phối Linux dựa trên Arch Linux. +Giao diện của Garuda Linux khá bắt mắt chính vì vậy một số lượng tài nguyên nhất định sẽ được yêu cầu trước khi cài đặt distro này.

3. Distros phù hợp với nhu cầu sử dụng máy tính cấu hình thấp

Kết luận: Như Ubunchuu đã đề cập ở trên - Hãy chọn cho mình distro hợp với tính chất công việc, nhu cầu giải trí của mình để các bạn có thể truy cập, sử dụng được tính năng mà bản thân mong muốn. +Ubunchuu sẽ gợi ý một vài các yếu tố sau để giúp bạn có cái nhìn dễ dàng hơn:

  • Mục đích sử dụng: Có rất nhiều distro với nhiều tính năng riêng biệt. +Hãy chọn distro mà có lợi nhất cho bản thân cũng như nhu cầu của bạn. +Lựa chọn sai distro có thể khiến bạn tốn nhiều thời gian để làm quen, điều chỉnh, …

  • Yêu cầu phần cứng: Ubunchuu khuyến khích các bạn không nên bỏ qua bước này bởi vì sự tương thích phần cứng sẽ là yếu tố quyết định đến trải nghiệm của bạn.

  • Trình độ hiểu biết: Một số distro không dành cho những người mới tiếp xúc với Linux như Arch Linux, Slackware, Gentoo Linux, và Kali Linux. +Chắc hẳn các bạn cũng không muốn minh có một trải nghiệm “ác mộng” với những câu lệnh, packages và nhiều thứ khác.

  • Cộng đồng hỗ trợ: Ubunchuu khuyến khích các bạn chọn một distro sở hữu một cộng đồng hỗ trợ, đóng góp lớn. +Mọi lỗi xảy ra trong quá trình bạn trải nghiệm có thể tìm thấy cách khắc phục trong cộng đồng và cũng có thể là một đóng góp nhỏ để phát triển cộng đồng từng ngày.

  • Hướng dẫn và tài liệu: Đúng! Luôn phải có sự hiểu biết nhất định về distro mà bạn sắp sử dụng, từ cách cài đặt, cách sử dụng packages manager đến cách cài đặt những phần mềm của distro đó. +Các bạn sẽ không muốn trải nghiệm lần mò những câu lệnh để sử dụng, cài đặt.

+ + + + +
Top
\ No newline at end of file diff --git "a/docs/c\303\240i-\304\221\341\272\267t-ubuntu-cho-ng\306\260\341\273\235i-d\303\271ng-song-song-v\341\273\233i-windows/index.html" "b/docs/c\303\240i-\304\221\341\272\267t-ubuntu-cho-ng\306\260\341\273\235i-d\303\271ng-song-song-v\341\273\233i-windows/index.html" new file mode 100644 index 00000000..5f71ea67 --- /dev/null +++ "b/docs/c\303\240i-\304\221\341\272\267t-ubuntu-cho-ng\306\260\341\273\235i-d\303\271ng-song-song-v\341\273\233i-windows/index.html" @@ -0,0 +1,29 @@ +Cài đặt Ubuntu cho người dùng song song với Windows Ubunchuu Trường Ú

Cài đặt Ubuntu cho người dùng song song với Windows

1. Giới thiệu về Ubuntu

Ubuntu hoàn toàn miễn phí và có thể dễ dàng cài đặt trên mọi cấu hình:

Khác với Windows và MacOS, Ubuntu không yêu cầu một khoản phí bất kỳ nào để có thể cài đặt và sử dụng hệ điều hành.

Việc cài đặt Ubuntu theo tụi mình đánh giá là đơn giản hơn việc cài đặt hệ điều hành Windows khá nhiều. Các bạn chỉ cần có vốn tiếng anh nhất định và sự hiểu biết đơn giản về máy tính.

Ubuntu đáp ứng nhu cầu về cá nhân hóa:

Ubuntu có tính cá nhân hóa cao hơn khi so sánh với bất kỳ hệ điều hành phổ biến hiện nay (Windows, MacOS). Bạn có thể tùy chỉnh ở nhiều khía cạnh liên quan đến UI để phục vụ cho nhu cầu cá nhân hóa của bản thân.

Nếu giao diện mặc định của Ubuntu đã quá nhàm chán, Ubunchuu khuyến khích các bạn tìm hiểu về chủ đề này. UI Customization ở Linux thường không quá ảnh hưởng quá nhiều đến hiệu năng của máy (như ngốn RAM, ăn CPU, ..) +Trong tương lai, Ubunchuu sẽ dành một bài viết riêng về chủ đề này. Tuy nhiên, nếu các bạn muốn tìm hiểu trước, tụi mình sẽ để đường link tham khảo: LinuxScoop - một trong những kênh youtube nổi tiếng về Linux UI Customization.

Một lựa chọn tốt cho việc lập trình:

Nếu bạn là một dân IT hoặc là một người yêu thích việc gõ code, hoặc cho dù là không đi nữa. Nếu công việc của bạn có liên quan đến việc lập trình, Ubuntu chính là một lựa chọn tốt bởi Ubuntu cung cấp cho bạn một Terminal với sức mạnh “tuyệt đối”. Đối với nhiều lập trình viên, việc thao tác với chuột thường khá ít và thao tác dòng lệnh (command line) trên Linux phải gọi là rất “đã” và tốt hơn Windows rất nhiều. Hơn nữa, hầu hết các ngôn ngữ lập trình đều hỗ trợ CLI (Command Line Interface) điều này là cần thiết với các lập trình viên.

Ubuntu có tính bảo mật cao:

Nghe có vẻ phi lý khi mà Ubuntu là một hệ điều hành miễn phí, mã nguồn mở nhưng lại có tính bảo mật cao? Ubuntu nói riêng và Linux nói chung đều sở hữu quyền “root”, điều này cho phép bạn thao tác với hệ thống ở quyền hạn cao nhất (tương đương với Administrator bên Windows). Tuy nhiên, mặc định người dùng hệ thống không được cấp quyền này và nếu có cuộc tấn công nào vào máy tính nhưng lại không có quyền “root” thì cũng phải là 1 điều gì đó quan ngại.

Nếu Ubuntu chưa phải là sự lựa chọn phù hợp của bạn, hãy tham khảo những Distro khác mà tụi mình đã lên bài ở đây nhé: Tìm hiểu chung về Linux Distro

2. Các bước chuẩn bị

Ubuntu yêu cầu thiết bị của bạn đáp ứng những yêu cầu sau:

  • 2 GHz dual-core processor hoặc hơn.
  • Tối thiếu 4 GB RAM (Ubunchu khuyến khích thiết bị của các bạn nên có ít nhất 8 GB RAM để mọi tác vụ của hệ thống trở nên mượt mà).
  • Tối thiểu 25 GB dung lượng ổ đĩa.
  • Một kết nối Internet xuyên suốt quá trình cài đặt để hệ thống có thể cập nhật và tải những tài nguyên cần thiết.
  • USB Boot chứa bộ cài Ubuntu.

Backup dữ liệu

Việc Backup tất cả dữ liệu trong máy của bạn trước khi cài đặt Ubuntu là một điều hết sức cần thiết vì trong quá trình cài đặt luôn có xác suất rất nhỏ xảy ra những lỗi liên quan đến hệ điều hành và phần cứng. +Ubunchuu khuyến khích các bạn nên Backup dữ liệu của mình sang một nơi an toàn như Google Drive, OneDrive, Dropbox, .. để đề phòng trường hợp mất mát dữ liệu khi cài đặt nhé.

Ghi lại các ứng dụng cần dùng

Trước khi cài đặt Ubuntu, các bạn nên có một cái nhìn tổng quát lại nhu cầu và mục đích của các bạn khi sử dụng Ubuntu. Và hãy đảm bảo rằng nếu các bạn cần làm việc trên một phần mềm nào, phần mềm đó cần có tính tương thích và sẵn sàng để dùng.

Tìm hiểu chung về Linux Distro

Lưu lại tài khoản, mật khẩu, cài đặt riêng của ứng dụng

Tất nhiên là chúng ta sẽ không muốn mất thời gian để thực hiện công việc “Quên mật khẩu” đâu nhỉ ? Hãy ghi nhớ những tài khoản cần thiết cho ứng dụng bạn làm việc để cho việc cài đặt, trải nghiệm tốt nhất có thể.

Chuẩn bị USB Boot

Dung lượng của một Linux Distro sẽ dao động trong khoảng từ dưới 1 GB cho đến trên 10 GB. Tuy vậy, một distro thông thường với hầu hết các tính năng có sẵn sẽ có dung lượng dao động từ 3 GB đến 5 GB. Ubunchuu khuyến khích các bạn nên chuẩn bị một USB có dung lượng từ 8 GB trở lên để việc tạo USB boot, cài đặt trở nên mượt mà.

Bước 1: Các bạn cần tải phần mềm để thực hiện công việc tạo USB boot cho việc cài đặt. Ở đây, Ubunchuu đề xuất phần mềm Rufus - một phần mềm dễ sử dụng nhất để tạo USB khởi động trên máy tính và được đánh giá là một trong những công cụ tốt nhất.

Bước 2: Sau khi tải về, các bạn mở file .exe lên. Rufus không yêu cầu quá trình cài đặt nên các bạn chỉ cần tải về và sử dụng luôn.

Bước 3: Ở mục đầu tiên (Device), các bạn cần chọn USB được dùng trong việc cài đặt. Thông thường, nếu thiết bị của bạn chỉ cắm duy nhất 1 chiếc USB, tên của USB sẽ hiện ra trong ô này.

Bước 4: Ở phần Boot selection, các bạn ấn vào “Select” và tiến hành chọn file ISO Ubuntu đã tải về.

Tùy thuộc vào phiên bản sẽ có tên khác nhau, của tụi mìn ở đây là “ubuntu-22.04.2-desktop-amd64.iso”

Bước 5: Những tùy chọn khác, Ubunchuu khuyến khích các bạn để mặc định. Sau đó, ấn “Start”. Một hộp thoại mới hiện lên, các bạn chọn dòng “Write in ISO Image mode (Recommended)”.

Bước 6: Rufus sẽ hỏi lại về việc xóa hết tất cả dữ liệu trong USB để chuẩn bị cho việc tạo USB boot. Nếu các bạn có dữ liệu gì quan trọng, vui lòng chọn “Cancel” và di chuyển những dữ liệu ra ngoài USB. Nếu không, hãy chọn “OK”. Các bạn cần đợi một khoảng thời gian ngắn để Rufus thực hiện quá trình của mình.

3. Chia phân vùng trên Windows để cài đặt Ubuntu

Note: Nếu máy tính bạn đủ khả năng để phân vùng (cho phép khả năng partition tối đa) thì trước hết ta hãy sử dụng công cụ có sẵn trong máy tính là Disk Management để đạt hiệu quả và độ an toàn nhé.

1. Kiểm tra dung lượng máy tính và nhu cầu của mình

Với người mới bắt đầu hoặc muốn trải nghiệm Ubuntu song song với hệ điều hành Windows, Ubunchuu khuyến khích các bạn nên chia phân vùng tầm 60 đến 100GB cho Ubuntu và thực hiện Dual-boot. Điều này giúp cho Ubuntu có đủ dung lượng hệ thống để thực hiện các tác vụ, giúp các bạn có thể sử dụng Ubuntu một cách thoải mái nhất.

Tuy nhiên nếu bạn chỉ muốn cài đặt để trải nghiệm và không thường xuyên sử dụng trong tương lai, các bạn có thể để tầm 25 GB dung lượng trống như Ubunchu đã đề cập ở phần chuẩn bị ở trên.

2. Tiến hành chia phân vùng trên máy tính (partition)

Ubunchuu sẽ đưa ra hai cách trong việc chia phân vùng trên máy tính. Cách thứ nhất, Ubunchuu sẽ hướng dẫn các bạn sử dụng công cụ có sẵn trên Windows là Disk Management. Cách thứ hai, Ubunchuu sẽ nhờ sự trợ giúp của phần mềm MiniTool Partition Wizard - một trong nhưng phần mềm miễn phí tốt nhất trong việc hỗ trợ phân vùng ổ đĩa.

Cách 1: Phân vùng ổ đĩa với Disk Management

Bước 1: Nhấn tổ hợp phím Windows + X và chọn Disk Management để mở cửa sổ Disk Management (hoặc chuột phải vào This PC trong File Explorer và chọn Disk Management).


Giao diện của Disk Management hiện ra với trung tâm chính giữa là danh sách các phân vùng ổ đĩa có sẵn trong máy. Tùy vào từng thiết bị mà danh sách các phân vùng.

Bước 2: Các bạn cần xác định ổ đĩa cần phân vùng. Ở đây, tụi mình sẽ chọn ổ đĩa C với dung lượng 352.26 GB để phân vùng ra một phân vùng mới dung để cài đặt. Chuột phải vào ổ đĩa cần chia nhỏ ra và chọn Shrink Volume. Sau đó, máy tính của bạn cần một khoảng thời gian nhỏ để tính toán khả năng chia phân vùng.


Một số máy tính sẽ ngăn cản bãn truy cập vào chức năng này vì một số lý do hệ thống (chi tiết vui lòng truy cập: How to Fix Can’t Shrink Volume in Windows 11/10/8/7). Lúc này, Ubunchuu cần bạn di chuyển đến cách thứ 2 Phân vùng ổ đĩa với MiniTool Partition Wizard

Bước 3: Nhập dung lượng bạn dành cho hệ điều hành Ubuntu vào ô “Enter the amount of space to shrink in MB”. Ví dụ nếu bạn muốn dành 50GB cho Ubuntu thì sẽ để là 50 x 1024 = 51200MB

Lưu ý: Hãy chọn dung lượng phù hợp cho Ubuntu nhé, đừng chia phân vùng quá lớn (nếu không cần thiết) hoặc quá nhỏ và trên hết là phải nằm trong khả năng cho phép của ổ đĩa.

Bước 4: Nhấn Shrink và khởi động lại máy tính để PC của bạn hoàn tất tiến trình phân vùng nhé.


Tuy nhiên, nếu trong trường hợp máy tính của các bạn không đủ khả năng cho phép phân vùng nhiều (Dung lượng vượt quá mức dung lượng cho phép chia nhỏ vì bị giới hạn bởi vùng sao lưu an toàn - Recovery Parition) thì sẽ hiện như hình sau: (Total Size sau khi phân vùng sẽ là 0MB)

Lúc này, các bạn nên sử dụng các phần mềm rời bên thứ 3 để thực hiện công việc phân vùng. Ubunchuu sẽ hướng dẫn các bạn chia phân vùng bằng một công cụ mã nguồn mở có độ tin cậy cao và bảo mật nhất, đó chính là MiniTool Partition Wizard.

Bước 5: Nếu các bạn đã thành công ở bước 4 (nếu không, Ubunchuu sẽ cần bạn qua cách làm khác là: Phân vùng ổ đĩa với MiniTool Partition Wizard, một phân vùng trống sẽ hiện ra trong danh sách các phân vùng. Lúc này, các bạn ấn chuột phải vào phân vùng mới đó, chọn “New Simple Volume” và thực hiện điền các bước sau:

  • Các bạn chọn “Next” ở cửa sổ đầu tiên.
  • Chọn dung lượng cần để tạo phân vùng mới. Ở bước này các bạn chỉ cần ấn “Next” mà không cần chỉnh sửa gì hết.
  • Chọn ký tự cho phân vùng mới. Chọn “Next”.
  • Ở bước này, hệ thống sẽ hỏi bạn có muốn format cho phân vùng mới này không ? Ubunchuu cần bạn chọn vào lựa chọn “Format this volume with the following settings”. Lưu ý, hãy nhớ chọn FAT32 ở phần “File system”. +Chọn “Next”“Finish” để tiến hành phân vùng ổ cứng

Note: Một số máy sẽ không có tùy chọn FAT32 ở phần “File system”, lúc này hãy chuyển sang phần Phân vùng ổ đĩa với MiniTool Partition Wizard.

Cách 2: Phân vùng ổ đĩa với MiniTool Partition Wizard.

Bước 1: Truy cập trang web chính chủ của MiniTool Partition Wizard và tiến hành tải xuống phiên bản miễn phí (Free Edition) của phần mềm về, sau đó tiến hành setup đơn giản.

Note: Phần này dành cho những bạn không biết setup, những bạn biết rồi có thể bỏ qua:

  • Bước 1: Nhấn vào nút Local Download, file cài đặt sẽ được tải về máy, mở file này lên bằng cách nhấn đúp chuột:

  • Bước 2: Chọn ngôn ngữ là English và nhấn “OK” ở cửa sổ hiện lên đầu tiên. Sau đó chọn “Continue installing free edition” và nhấn Next. (vì bản free đã thực hiện tốt chức năng phân vùng rồi)

  • Bước 3: Bỏ chọn công cụ ShadowMaker vì ở MiniTool Partition Wizard chúng ta đã có chức năng Backup dữ liệu rồi.


  • Bước 4: Chọn đường dẫn cần cài đặt phần mềm và nhấn “Next”.
  • Bước 5: Nhấn “Finish” để kết thúc cài đặt.

Bước 2: Mở MiniTool Parition Wizard lên, giao diện của phần mềm khá tương đồng với công cụ Disk Management của hệ thống. Nhấn chuột phải vào ổ đĩa cần chia nhỏ phân vùng và nhấn vào tùy chọn Split.


Bước 3: Nhập dung lượng bạn dành cho Ubuntu vào phần “New Partition Size” hoặc kéo phần Slide bên trên cho vừa với dung lượng bạn cần (Tụi mình sẽ phân vùng cho Ubuntu với dung lượng vào khoảng 50GB), sau đó nhấn “OK”.


Bước 4: Lúc này, các bạn sẽ thấy một phân vùng trống (Unallocated) có dung lượng 50 GB (Tùy vào dung lượng phân chia của các bạn). Ấn chuột phải vào phân vùng trống này, chọn “Create”. Một hộp thoại sẽ hiện lên, các bạn lần lượt nhập các thông tin sau:

  • Partition Label: Tên của phân vùng.
  • File System: FAT32 (Điều này là cần thiết để bộ cài Ubuntu nhận diện được phân vùng để cài đặt).
  • Drive Letter: Kí tự của phân vùng (Có thể để mặc định theo phần mềm).
  • Kiểm tra lại dung lượng một lần cuối trong phần “Size and Location”.

Nhấn “Ok”"

Bước 5: Nhấn “Apply” ở bên trái dưới cùng của ứng dụng để tiến hành công việc phân vùng ổ cứng. Sau đó, các bạn hãy khởi động lại máy tính, đợi boot tầm 5-10p để máy tính tiến hành phân vùng nhé.


Sau khi khởi động lại máy tính, khi vào Disk Management kiểm tra lại bạn sẽ thấy có một phân vùng mới với dung lượng bằng chính dung lượng mà bạn đã chia nhỏ (như mình thì là 50GB).

4. Tiến hành cài đặt Ubuntu

Sau khi đã hoàn thành xong việc tạo USB boot chứa bộ cài Ubuntu, Ubunchuu sẽ đưa các bạn đến với những bước cài đặt chính.

Bước 1: Khởi động lại thiết bị, cắm USB và tiến hành truy cập vào Menu Boot.

Tùy thuộc vào từng hãng thiết bị mà sẽ có những phím tắt khác nhau để truy cập vào Menu Boot (các phím tắt có thể là F1 -> F12, ESC, DEL, …). Chi tiết, các bạn truy cập vào link này hoặc thử các phím tắt theo hình bên dưới:


Bước 2: Một màn hình đen với các dòng chữ trắng sẽ hiện lên (đối với phiên bản Ubuntu 22.04 LTS trở lên). Các bạn chọn dòng đầu tiên “Try or Install Ubuntu”. Lúc này, các bạn cần chờ một khoảng thời gian để bộ cài từ USB được chuẩn bị. +

Bước 3: Ubunchuu nhận thấy hầu hết các distro sẽ hỗ trợ tính năng thử nghiệm để mọi người có thể làm quen cũng như khám phá những tính năng của distro đó để đưa ra sự lựa chọn cài đặt hoặc hủy bỏ. Nếu các bạn cảm thấy hài lòng với Ubuntu, hãy chọn “Install Ubuntu”. +

Bước 4: Ubuntu sẽ yêu cầu chọn ngôn ngữ bàn phím, các bạn nên chọn “English (US)”. Chọn “Next”. +

Bước 5: Ở bước này, Ubuntu sẽ hỏi rằng bạn muốn cài đặt một phiên bản đầy đủ trình duyệt web, các tiện ích, phần mềm ứng dụng cần thiết (“Normal installation”) hay là phiên bản rút gọn với những tiện ích cần thiết (“Minimal installation”). Ubunchuu khuyến khích các bạn cài đặt phiên bản đầy đủ (“Normal installation”). Ở các lựa chọn sau, các bạn nên tích hết để trong quá trình cài đặt, các bản cập nhật và một số phần mềm bổ sung từ bên thứ 3 sẽ được sẽ được tải xuống. Chọn “Continue”. +

Tuy nhiên, các bạn không cần thiết phải chọn hết các tùy chọn để quá trình cài đặt được diễn ra nhanh hơn.

Bước 6: Đây là bước quan trọng trong quá trình cài đặt Ubuntu. Chúng ta sẽ có các lựa chọn như sau: +

  • Install Ubuntu alongside Windows Boot Manager: Nếu các bạn muốn cài song song Ubuntu và Windows, đây là lựa chọn phù hợp cho bạn. Ubuntu sẽ tự động nhận diện và cài đặt song song với Windows vào phân vùng trống trên ổ cứng.

Not Recommended. Ubunchuu khuyên bạn sử dụng cài đặt Something else để tự tùy biến theo nhu cầu của bạn với các phân vùng mà bạn cần sử dụng.

  • Erase disk and install Ubuntu: Toàn bộ ổ cứng sẽ được xóa và quá trình cài mới Ubuntu sẽ diễn ra. Lúc này, Windows sẽ không còn tồn tại nữa.

Các bạn nên cẩn thận khi chọn tùy chọn này.

  • Something else: Tùy chọn cài đặt một cách thủ công. +Ở đây, vì đã phân chia phân vùng cho Ubuntu ở Mục 3, Ubunchu cần các bạn chọn vào mục “Something else”. Chọn “Continue”.

Bước 7: Danh sách các phân vùng có sẵn trong máy sẽ được liệt kê trong cửa số mới xuất hiện. Các bạn cần tìm đúng phân vùng đã chia ở Mục 3.

Lưu ý: Các phân vùng sẽ khá khó để nhận diện vì tên của chúng lúc này được đặt theo cấu trúc của Linux. Cách dễ dàng nhất để nhận diện phân vùng cần tìm là dựa vào dung lượng chúng ta đã chia cho nó.

Đầu tiên, ta cần nhấn đúp chuột vào “free space” (tức là phần phân vùng mà bạn đã chia ở Mục 3) và lần lượt tạo các phân vùng cho máy tính của bạn:

  1. Đầu tiên chúng mình sẽ phải tạo phân vùng EFI (EFI System Partition) để máy boot vào, phân vùng này chúng ta nên để khoảng 500MB, hoặc nếu bạn thích dư dả tránh trường hợp boot không lên hay crash thì ta cũng có thể để 1000MB. Chọn loại phân vùng “Use as: EFI System Partition”: +
  2. Chọn phần “free space” còn lại và thực hiện các thao tác tương tự để tạo lần lượt các phân vùng sau:
  • /efi: 500MB-1GB (đã tạo bên trên)
  • /swap: 2GB (Chọn Use as: “swap”, Mount point: không có)
  • / (root): phần còn lại (Chọn Use as: “ext4”, Mount point: "/")

/home (Optional - không bắt buộc): từ phiên bản Ubuntu 20.04 trở đi, kể cả bạn chỉ chọn mỗi “/” thì Ubuntu vẫn sẽ tự động tạo thêm thư mục “/home/username” bên trong nên điều này là không cần thiết. Tuy nhiên, nếu bạn muốn tùy chọn dung lượng cho thư mục home (dùng để chứa tài liệu, file cá nhân,…) thì có thể tạo thêm và chọn Use as: “ext4”, Mount point: "/home". +/boot (Optional - không bắt buộc): có thể tạo thư mục chứa file để boot, không cần thiết nhưng có thể tạo để đề phòng khi cần thiết. +

  1. Chọn phân vùng EFI cần boot ngay tại mục “Device for boot loader installation”.

Như hình trên, phân vùng cần boot của mình là /dev/sda1 vì ở trong bảng các phân vùng, device “/dev/sda1” của mình có type là “efi” như mình đã tạo.

  1. Chọn “Install now”.

Bước 8: Thiết lập vị trí và múi giờ ở nơi chúng ta đang sinh sống. Chọn “Continue”. +

Bước 9: Ubuntu yêu cầu bạn nhập các thông tin cần thiết. Hãy luôn nhớ password vì điều này là cần thiết trong quá trình sử dụng.

Nếu cần thiết, hãy take-note password mà bạn vừa tạo đi.

Các bạn có thể chọn “Log in automatically” việc nhập password là quá phiền phức mỗi khi khởi động máy, hoặc chọn “Require my password to log in” để tăng tính bảo mật cho thiết bị. Chọn “Continue”.

Bước 10: Quá trình cài đặt sẽ được thực hiện. Thiết bị của bạn sẽ khởi động lại một vài lần, chính vì thế hãy chờ đợi cho đến khi mọi thứ hoàn thành xong. +

Cuối cùng, sau khi quá trình cài đặt đã hoàn tất, hãy khởi động lại máy tính, sau đó rút USB boot ra và nhấn Enter khi nhìn thấy tùy chọn “Please remove the installation medium then press enter”.

💯 Lời kết

Hãy trải nghiệm và tận hưởng những tính năng độc đáo của Ubuntu các bạn nhé :3

+ + + + +
Top
\ No newline at end of file diff --git "a/docs/c\303\240i-\304\221\341\272\267t-ubuntu-clean-install/index.html" "b/docs/c\303\240i-\304\221\341\272\267t-ubuntu-clean-install/index.html" new file mode 100644 index 00000000..c83f2ece --- /dev/null +++ "b/docs/c\303\240i-\304\221\341\272\267t-ubuntu-clean-install/index.html" @@ -0,0 +1,24 @@ +Cài đặt Ubuntu (clean install) Ubunchuu Trường Ú

Cài đặt Ubuntu (clean install)

1. Giới thiệu về Ubuntu

Ubuntu hoàn toàn miễn phí và có thể dễ dàng cài đặt trên mọi cấu hình:

Khác với Windows và MacOS, Ubuntu không yêu cầu một khoản phí bất kỳ nào để có thể cài đặt và sử dụng hệ điều hành.

Việc cài đặt Ubuntu theo tụi mình đánh giá là đơn giản hơn việc cài đặt hệ điều hành Windows khá nhiều. Các bạn chỉ cần có vốn tiếng anh nhất định và sự hiểu biết đơn giản về máy tính.

Ubuntu đáp ứng nhu cầu về cá nhân hóa:

Ubuntu có tính cá nhân hóa cao hơn khi so sánh với bất kỳ hệ điều hành phổ biến hiện nay (Windows, MacOS). Bạn có thể tùy chỉnh ở nhiều khía cạnh liên quan đến UI để phục vụ cho nhu cầu cá nhân hóa của bản thân.

Nếu giao diện mặc định của Ubuntu đã quá nhàm chán, Ubunchuu khuyến khích các bạn tìm hiểu về chủ đề này. UI Customization ở Linux thường không quá ảnh hưởng quá nhiều đến hiệu năng của máy (như ngốn RAM, ăn CPU, ..) +Trong tương lai, Ubunchuu sẽ dành một bài viết riêng về chủ đề này. Tuy nhiên, nếu các bạn muốn tìm hiểu trước, tụi mình sẽ để đường link tham khảo: LinuxScoop - một trong những kênh youtube nổi tiếng về Linux UI Customization.

Một lựa chọn tốt cho việc lập trình:

Nếu bạn là một dân IT hoặc là một người yêu thích việc gõ code, hoặc cho dù là không đi nữa. Nếu công việc của bạn có liên quan đến việc lập trình, Ubuntu chính là một lựa chọn tốt bởi Ubuntu cung cấp cho bạn một Terminal với sức mạnh “tuyệt đối”. Đối với nhiều lập trình viên, việc thao tác với chuột thường khá ít và thao tác dòng lệnh (command line) trên Linux phải gọi là rất “đã” và tốt hơn Windows rất nhiều. Hơn nữa, hầu hết các ngôn ngữ lập trình đều hỗ trợ CLI (Command Line Interface) điều này là cần thiết với các lập trình viên.

Ubuntu có tính bảo mật cao:

Nghe có vẻ phi lý khi mà Ubuntu là một hệ điều hành miễn phí, mã nguồn mở nhưng lại có tính bảo mật cao? Ubuntu nói riêng và Linux nói chung đều sở hữu quyền “root”, điều này cho phép bạn thao tác với hệ thống ở quyền hạn cao nhất (tương đương với Administrator bên Windows). Tuy nhiên, mặc định người dùng hệ thống không được cấp quyền này và nếu có cuộc tấn công nào vào máy tính nhưng lại không có quyền “root” thì cũng phải là 1 điều gì đó quan ngại.

Nếu Ubuntu chưa phải là sự lựa chọn phù hợp của bạn, hãy tham khảo những Distro khác mà tụi mình đã lên bài ở đây nhé: Tìm hiểu chung về Linux Distro

2. Các bước chuẩn bị

Ubuntu yêu cầu thiết bị của bạn đáp ứng những yêu cầu sau:

  • 2 GHz dual-core processor hoặc hơn.
  • Tối thiếu 4 GB RAM (Ubunchu khuyến khích thiết bị của các bạn nên có ít nhất 8 GB RAM để mọi tác vụ của hệ thống trở nên mượt mà).
  • Tối thiểu 25 GB dung lượng ổ đĩa.
  • Một kết nối Internet xuyên suốt quá trình cài đặt để hệ thống có thể cập nhật và tải những tài nguyên cần thiết.
  • USB Boot chứa bộ cài Ubuntu.

Backup dữ liệu

Việc Backup tất cả dữ liệu trong máy của bạn trước khi cài đặt Ubuntu là một điều hết sức cần thiết vì trong quá trình cài đặt luôn có xác suất rất nhỏ xảy ra những lỗi liên quan đến hệ điều hành và phần cứng. +Ubunchuu khuyến khích các bạn nên Backup dữ liệu của mình sang một nơi an toàn như Google Drive, OneDrive, Dropbox, .. để đề phòng trường hợp mất mát dữ liệu khi cài đặt nhé.

Ghi lại các ứng dụng cần dùng

Trước khi cài đặt Ubuntu, các bạn nên có một cái nhìn tổng quát lại nhu cầu và mục đích của các bạn khi sử dụng Ubuntu. Và hãy đảm bảo rằng nếu các bạn cần làm việc trên một phần mềm nào, phần mềm đó cần có tính tương thích và sẵn sàng để dùng.

Tìm hiểu chung về Linux Distro

Lưu lại tài khoản, mật khẩu, cài đặt riêng của ứng dụng

Tất nhiên là chúng ta sẽ không muốn mất thời gian để thực hiện công việc “Quên mật khẩu” đâu nhỉ ? Hãy ghi nhớ những tài khoản cần thiết cho ứng dụng bạn làm việc để cho việc cài đặt, trải nghiệm tốt nhất có thể.

Chuẩn bị USB Boot

Dung lượng của một Linux Distro sẽ dao động trong khoảng từ dưới 1 GB cho đến trên 10 GB. Tuy vậy, một distro thông thường với hầu hết các tính năng có sẵn sẽ có dung lượng dao động từ 3 GB đến 5 GB. Ubunchuu khuyến khích các bạn nên chuẩn bị một USB có dung lượng từ 8 GB trở lên để việc tạo USB boot, cài đặt trở nên mượt mà.

Bước 1: Các bạn cần tải phần mềm để thực hiện công việc tạo USB boot cho việc cài đặt. Ở đây, Ubunchuu đề xuất phần mềm Rufus - một phần mềm dễ sử dụng nhất để tạo USB khởi động trên máy tính và được đánh giá là một trong những công cụ tốt nhất.

Bước 2: Sau khi tải về, các bạn mở file .exe lên. Rufus không yêu cầu quá trình cài đặt nên các bạn chỉ cần tải về và sử dụng luôn.

Bước 3: Ở mục đầu tiên (Device), các bạn cần chọn USB được dùng trong việc cài đặt. Thông thường, nếu thiết bị của bạn chỉ cắm duy nhất 1 chiếc USB, tên của USB sẽ hiện ra trong ô này.

Bước 4: Ở phần Boot selection, các bạn ấn vào “Select” và tiến hành chọn file ISO Ubuntu đã tải về.

Tùy thuộc vào phiên bản sẽ có tên khác nhau, của tụi mìn ở đây là “ubuntu-22.04.2-desktop-amd64.iso”

Bước 5: Những tùy chọn khác, Ubunchuu khuyến khích các bạn để mặc định. Sau đó, ấn “Start”. Một hộp thoại mới hiện lên, các bạn chọn dòng “Write in ISO Image mode (Recommended)”.

Bước 6: Rufus sẽ hỏi lại về việc xóa hết tất cả dữ liệu trong USB để chuẩn bị cho việc tạo USB boot. Nếu các bạn có dữ liệu gì quan trọng, vui lòng chọn “Cancel” và di chuyển những dữ liệu ra ngoài USB. Nếu không, hãy chọn “OK”. Các bạn cần đợi một khoảng thời gian ngắn để Rufus thực hiện quá trình của mình.

3. Tiến hành cài đặt Ubuntu

Sau khi đã hoàn thành xong việc tạo USB boot chứa bộ cài Ubuntu, Ubunchuu sẽ đưa các bạn đến với những bước cài đặt chính.

Bước 1: Khởi động lại thiết bị, cắm USB và tiến hành truy cập vào Menu Boot.

Tùy thuộc vào từng hãng thiết bị mà sẽ có những phím tắt khác nhau để truy cập vào Menu Boot (các phím tắt có thể là F1 -> F12, ESC, DEL, …). Chi tiết, các bạn truy cập vào link này hoặc thử các phím tắt theo hình bên dưới:


Bước 2: Một màn hình đen với các dòng chữ trắng sẽ hiện lên (đối với phiên bản Ubuntu 22.04 LTS trở lên). Các bạn chọn dòng đầu tiên “Try or Install Ubuntu”. Lúc này, các bạn cần chờ một khoảng thời gian để bộ cài từ USB được chuẩn bị. +

Bước 3: Ubunchuu nhận thấy hầu hết các distro sẽ hỗ trợ tính năng thử nghiệm để mọi người có thể làm quen cũng như khám phá những tính năng của distro đó để đưa ra sự lựa chọn cài đặt hoặc hủy bỏ. Nếu các bạn cảm thấy hài lòng với Ubuntu, hãy chọn “Install Ubuntu”. +

Bước 4: Ubuntu sẽ yêu cầu chọn ngôn ngữ bàn phím, các bạn nên chọn “English (US)”. Chọn “Next”. +

Bước 5: Ở bước này, Ubuntu sẽ hỏi rằng bạn muốn cài đặt một phiên bản đầy đủ trình duyệt web, các tiện ích, phần mềm ứng dụng cần thiết (“Normal installation”) hay là phiên bản rút gọn với những tiện ích cần thiết (“Minimal installation”). Ubunchuu khuyến khích các bạn cài đặt phiên bản đầy đủ (“Normal installation”). Ở các lựa chọn sau, các bạn nên tích hết để trong quá trình cài đặt, các bản cập nhật và một số phần mềm bổ sung từ bên thứ 3 sẽ được sẽ được tải xuống. Chọn “Continue”. +

Tuy nhiên, các bạn không cần thiết phải chọn hết các tùy chọn để quá trình cài đặt được diễn ra nhanh hơn.

Bước 6: Đây là bước quan trọng trong quá trình cài đặt Ubuntu. Chúng ta sẽ có các lựa chọn như sau: +

  • Install Ubuntu alongside Windows Boot Manager: Nếu các bạn muốn cài song song Ubuntu và Windows, đây là lựa chọn phù hợp cho bạn. Ubuntu sẽ tự động nhận diện và cài đặt song song với Windows vào phân vùng trống trên ổ cứng.
  • Erase disk and install Ubuntu: Toàn bộ ổ cứng sẽ được xóa và quá trình cài mới Ubuntu sẽ diễn ra. Lúc này, Windows sẽ không còn tồn tại nữa.
  • Something else: Tùy chọn cài đặt một cách thủ công.

Ubunchu cần các bạn chọn vào mục “Erase disk and install Ubuntu”. Chọn “Install now”. Hoặc nếu các bạn cần tùy chọn nâng cao cho các phân vùng của Ubuntu, xin hãy chọn “Something else” và xem qua bước 7.

Bước 7: (Optional - chỉ dành cho những bạn chọn “Something else”)

Xin mời skip bước này và xem đến bước 8 nếu bạn không muốn chia phân vùng tùy thích theo yêu cầu.

Các bạn xem qua hưỡng dẫn chi tiết chia các phân vùng con cho riêng Ubuntu ở bước 7 - phần 4 của bài viết sau: Bước 7 - Phần 4 của Post: Cài đặt Ubuntu Dual-boot

Bước 8: Thiết lập vị trí và múi giờ ở nơi chúng ta đang sinh sống. Chọn “Continue”. +

Bước 9: Ubuntu yêu cầu bạn nhập các thông tin cần thiết. Hãy luôn nhớ password vì điều này là cần thiết trong quá trình sử dụng.

Nếu cần thiết, hãy take-note password mà bạn vừa tạo đi.

Các bạn có thể chọn “Log in automatically” việc nhập password là quá phiền phức mỗi khi khởi động máy, hoặc chọn “Require my password to log in” để tăng tính bảo mật cho thiết bị. Chọn “Continue”.

Bước 10: Quá trình cài đặt sẽ được thực hiện. Thiết bị của bạn sẽ khởi động lại một vài lần, chính vì thế hãy chờ đợi cho đến khi mọi thứ hoàn thành xong. +

Cuối cùng, sau khi quá trình cài đặt đã hoàn tất, hãy khởi động lại máy tính, sau đó rút USB boot ra và nhấn Enter khi nhìn thấy tùy chọn “Please remove the installation medium then press enter”.

💯 Lời kết

Hãy trải nghiệm và tận hưởng những tính năng độc đáo của Ubuntu các bạn nhé :3

+ + + + +
Top
\ No newline at end of file diff --git "a/docs/c\303\240i-\304\221\341\272\267t-v\303\240-\304\221\341\273\223ng-b\341\273\231-onedrive-cho-linux/index.html" "b/docs/c\303\240i-\304\221\341\272\267t-v\303\240-\304\221\341\273\223ng-b\341\273\231-onedrive-cho-linux/index.html" new file mode 100644 index 00000000..7df48fe6 --- /dev/null +++ "b/docs/c\303\240i-\304\221\341\272\267t-v\303\240-\304\221\341\273\223ng-b\341\273\231-onedrive-cho-linux/index.html" @@ -0,0 +1,33 @@ +Cài đặt và đồng bộ Onedrive cho Linux Ubunchuu Trường Ú

Cài đặt và đồng bộ Onedrive cho Linux

tags: onedrive,file-syncing-with-onedrive

📝 Onedrive là gì ? Tìm hiểu chung về công dụng của Onedrive

OneDrive là dịch vụ đám mây của Microsoft được sử dụng để lưu trữ dữ liệu của người dùng. Dịch vụ cho phép người dùng kết nối với dữ liệu của họ thông qua việc lưu trữ và bảo vệ dữ liệu. Người dùng có thể chia sẻ dữ liệu với những người khác và truy cập đến chúng từ mọi nơi trên tất cả các thiết bị của họ. Đây được coi là một trong những thế mạnh của dịch vụ lưu trữ đám mây.

Khi người dùng sử dụng OneDrive bằng tài khoản do công ty hoặc trường học của họ cung cấp, tài khoản đó đôi khi được gọi là “OneDrive for work or school.” (OneDrive dành cho cơ quan hoặc trường học). Vì từng được gọi là “OneDrive for Business” nên đôi khi người dùng vẫn có thể thấy nó được gọi như vậy ở nhiều nơi.

Tại sao Ubunchuu lại khuyến khích các bạn sử dụng OneDrive ? Một câu trả lời đơn giản thôi: Chúng ta luôn muốn dữ liệu của bạn thân được lưu trữ, đồng bộ hóa và luôn hiện hữu trên thiết bị mà chúng ta đang làm việc.

OneDrive thể hiện ưu thế qua những công dụng sau:

  • Lưu trữ tài liệu trực tuyến: OneDrive luôn sẵn sàng hoạt động và người dùng có thể truy cập nội dung lưu trữ ở mọi lúc mọi nơi với thời gian khả dụng lên đến 99,97% (dựa trên số liệu của Microsoft).
  • Chỉnh sửa dữ liệu và đồng bộ hóa sự thay đổi trên các thiết bị: Mỗi khi người dùng có sự thay đổi ở dữ liệu được lưu trữ tren OneDrive, sự thay đổi đó cũng được thể hiện ở các thiết bị có đăng nhập tài khoản OneDrive. Nói một cách dễ hiểu hơn là khi người dùng thêm hoặc xóa dữ liệu trong OneDrive ở một thiết bị nào đó, họ cũng sẽ thấy sự thay đổi đó ở một thiết bị khác có đăng nhập tài khoản OneDrive đó.
  • Giữ cho các dữ liệu của người dùng được bảo vệ trên điện toán đám mây: Tính bảo mật chính là một điểm cộng lớn của OneDrive. Việc cung cấp nhiều lựa chọn chia sẻ nội dung sẽ đi kèm với những rủi ro về việc rò rỉ thông tin bảo mật cao của cá nhân hoặc tổ chức. Đây là một lợi thế với các doanh nghiệp vì sẽ có các cấp độ chia sẻ khác nhau với các quyền khác nhau, điều này đảm bảo là dữ liệu sẽ bị giới hạn quyền thao tác khi cần thiết.
  • Khả năng chia sẻ tuyệt vời: Tính năng chia sẻ mở rộng (Extended Sharing) hỗ trợ trên cả phiên bản online và thư viện tệp tập trung là một trong tính năng vô cùng tiện ích của dịch vụ OneDrive. Điều này cho phép người dùng chia sẻ dữ liệu dưới dạng tệp với mọi người xung quanh hoặc những người cụ thể, và thậm chí những người dùng ẩn danh chỉ bằng những thao tác đơn giản.

Hiện tại OneDrive đang cung cấp 2 loại dịch vụ đám mây với những loại người dùng và nhóm tiện ích khác nhau:

  • Cho gia đình:
    • Microsoft 365 Family: Dành cho một đến sáu người dùng với tối đa năm thiết bị cùng sử dụng một lúc. Dung lượng tối đa 6 TB dung lượng lưu trữ đám mây (1 TB cho mỗi người).
    • Microsoft 365 Personal: Dành cho một người với dung lượng lưu trữ đám mây 1 TB.
  • Cho doanh nghiệp:
    • Microsoft 365 Business Basic
    • Ứng dụng Microsoft 365 dành cho doanh nghiệp
    • Microsoft 365 Business Standard: Mọi tính năng trong Business Basic, cộng thêm nhiều tính năng riêng khác.
    • Microsoft 365 Business Premium

Tùy vào từng loại dịch vụ sẽ có mưc giá khác nhau và phương thức thanh toán khác nhau (Thanh toán hàng năm / Thanh toán hàng tháng)

Có thể nói từ khi biết đến OneDrive, bản thân mình cảm thấy việc sao lưu, đồng bộ hóa cũng như chỉnh sửa dữ liệu vô cùng dễ dàng, đặc biệt là khi dùng tài khoản do trường hoặc cơ quan cung cấp.

Cài đặt và đồng bộ hóa OneDrive trên Ubuntu

Để cài đặt OneDrive, trước tiên, cần cài đặt một số dependency. Các bạn hãy ấn phím tắt Ctrl + Alt + T hoặc mở Terminal một cách thủ công và thực hiện các bước sau:

Nếu thiết bị của bạn đã cài đặt trước OneDrive với bất kỳ PPA repository, Ubunchuu khuyến khích các bạn nên xóa hết và cài đặt mới lại từ đầu để đảm bảo các bạn được trải nghiệm phiên bản mới nhất của OneDrive

Debian repository là một tập hợp các gói Debian được tổ chức trong một cây thư mục đặc biệt, được sử dụng để lưu trữ các chương trình cài đặt. Các thiết bị có thể kết nối đến repository để tải xuống và cài đặt các gói bằng công cụ Quản lý gói (PackageManagement) dựa trên Apt.

Xóa OneDrive đã có sẵn trên thiết bị

Nếu thiết bị của bạn chưa cài đặt OneDrive, bạn có thể bỏ qua bước này và tiếp tục ở bước Cài đặt OneDrive +Đầu tiên, hãy thực hiện việc xóa OneDrive (nếu đã có sẵn trong OS).

sudo apt remove onedrive
+sudo apt autoremove
+

Hãy chạy lệnh apt update để thực hiện việc cập nhật danh sách các packages của hệ thống và lệnh này sẽ không thực hiện nâng cấp bất kỳ package nào của hệ thống cả.

sudo apt update
+

Cài đặt OneDrive

Thao tác cài đặt OneDrive sẽ được thực hiện qua câu lệnh sau:

sudo apt-get install onedrive
+

Quá trình cài đặt sẽ không tốn nhiều thời gian, để kiểm tra xem OneDrive đã cài đặt thành công hay chưa, các bạn có thể nhập lệnh sau:

onedrive --version
+

Terminal sẽ hiển thị kết quả là phiên bản mới nhất của OneDrive được cài đặt trong máy.

Để bắt đầu sử dụng OneDrive, hãy nhập onedrive vào Terminal và ấn Enter.

onedrive
+

Kết quả trả về là một đường link đăng nhập của OneDrive. Các bạn hãy copy đường link đó vào trình duyệt và tiến hành đăng nhập như thông thường. Sau khi đăng nhập, các bạn sẽ được trình duyệt chuyển đến một trang trống, hãy copy đường link của trang đó và paste vào Terminal nhé.

Lưu ý: Để paste vào Terminal, các bạn có thể chuột phải chọn Paste hoặc ấn tổ hợp phím tắt Ctrl + Shift + V (thêm phím tắt Shift so với thông thường).

Sau khi thao tác, các bạn sẽ thầy dòng thông báo biểu thị việc đăng nhập thành công.

Application has been successfully authorised, however no additional command switches were provided

Lúc này, các bạn có thể sử dụng lệnh sau đề đồng bộ hóa tất cả dữ liệu trên OneDrive xuống máy của các bạn:

onedrive --synchronize
+

Để biết thêm nhiều tùy chọn khác của OneDrive như loggout, …, vui lòng nhập lệnh sau:

onedrive --help
+

Cách config OneDrive

Khi thực hiện việc đồng bộ hóa dữ liệu theo mặc định, OneDrive sẽ tự tạo một folder có tên “OneDrive” ở đường dẫn /home/user_name/. Tuy nhiên, nếu không muốn lúc nào cũng phải truy cập ở đường dẫn này, các bạn có thể thay đổi đường dẫn cho OneDrive để nó đồng bộ hóa vô một thư mục với đường dẫn nhất định.

Ở đây, tụi mình muốn OneDrive sẽ đồng bộ hóa dữ liệu vào thư mục Documents trong hệ thống. Cách cài đặt sẽ được thực hiện như sau:

Đầu tiên hãy tạo file config của OneDrive trong hệ thống.

mkdir -p ~/.config/onedrive
+cd ~/.config/onedrive
+sudo touch config.txt
+

Tiếp theo, chúng ta sẽ mở file config.txt lên và tiến hành cấu hình. Có hai tùy chọn cấu hình là: “sync_dir”“skip_files”.

  • sync_dir: Vị trí lưu trữ các file OneDrive. Tất cả các file trên đám mây sẽ được đồng bộ vào trong thưc mục này. Mọi thao tác với dữ liệu trong thư mục này cũng sẽ được đồng bộ ngược lại lên OneDrive.
  • skip_files: Loại file (hoặc mẫu file) không được đồng bộ. Tuy nhiên, nếu bạn muốn đồng bộ hóa hết tất cả dữ liệu thì bạn không cần quan tâm tới cấu hình này.

Để mở file config.txt, các bạn thực hiện câu lệnh sau:

sudo nano config.txt
+

Các bạn hãy thêm vào file dòng sau:

sync_dir = "~/Documents"
+

Đây là thao tác đồng bộ hóa dữ liệu trên OneDrive vào thư mục Documents với cấu hình là tất cả các định dạng của dữ liệu. Chẳng hạn, nếu các bạn không muốn đồng bộ hóa các file có đuôi .bat, hãy thêm vào bước trên dòng lệnh sau nhé:

skip_file = ".bat"
+

Sau đó hãy ấn Ctrl + X và chọn Y để lưu lại file cấu hình này. +Cuối cùng, hãy nhập lệnh để OneDrive tiến hành đồng bộ hóa dữ liệu nha.

onedrive --synchronize
+

Kết quả cuối cùng là thư mục chúng ta mong muốn đã được đồng bộ hóa dữ liệu.

Khởi động OneDrive khi đăng nhập

Thông thường, OneDrive không tự khởi động khi đăng nhập. Tuy nhiên, Ubunchuu có cách để giúp các bạn khắc phục việc này.

Hãy nhập dòng lệnh sau để OneDrive luôn khởi động cùng thiết bị nha.

systemctl --user enable onedrive
+systemctl --user start onedrive
+

Lời kết

Như vậy, Ubunchuu đã dành ra một bài viết nhỏ để giúp các bạn có thể làm việc với OneDrive trên Linux. Điều này giúp cho học tập, công việc của chúng ta trở nên thuận tiện hơn bao giờ hết vì dữ liệu luôn sẵn sàng mọi lúc, mọi nơi. +Nếu các bạn gặp lỗi trong quá trình cài đặt, các bạn vui lòng liên hệ với tụi mình để tụi mình có thể giúp các bạn khắc phục lỗi giúp các bạn sớm nhất có thể nha. Chúc các bạn thành công :3

+ + + + +
Top
\ No newline at end of file diff --git "a/docs/day-0-ch\303\240o-m\341\273\253ng-\304\221\341\272\277n-v\341\273\233i-linux/index.html" "b/docs/day-0-ch\303\240o-m\341\273\253ng-\304\221\341\272\277n-v\341\273\233i-linux/index.html" new file mode 100644 index 00000000..df0f9ece --- /dev/null +++ "b/docs/day-0-ch\303\240o-m\341\273\253ng-\304\221\341\272\277n-v\341\273\233i-linux/index.html" @@ -0,0 +1,38 @@ +Day 0: Chào mừng đến với Linux Ubunchuu Trường Ú

Day 0: Chào mừng đến với Linux

Xin chào, lại là Tux đây! Sau khi cài đặt thành công Ubuntu, bước tiếp theo chúng ta cần làm là thiết lập Ubuntu để có thể sử dụng. Cùng mình đi tiếp những bước cài đặt nhé!

1. Làm quen với môi trường dòng lệnh (CLI)

Nhìn chung, các hệ máy UNIX như Linux, MacOS đều cung cấp một giao diện làm việc với dòng lệnh (Command Line Interface), hay gọi dân dã là Terminal. Bạn có thể mở terminal bằng icon này hoặc ấn tổ hợp Crtrl + Alt + T.

Check package update

sudo apt-get update
+sudo apt-get dist-upgrade
+

ℹ️ Nhớ dùng mật khẩu đã nhập ở khâu cài đặt nhé!

Cài đặt các thư viện cần thiết

sudo apt-get install software-properties-common build-essential openssl-dev dirmngr gnupg apt-transport-https ca-certificates -y
+sudo apt-get install curl wget -y
+

Note: Thêm tag -y vào giúp bạn không cần chọn yes/no trong quá trình cài đặt

Cài bộ gõ tiếng Việt

Có một vài bộ gõ tiếng Việt trên mạng như IBus Unikey, IBus Bamboo, IBus Teni, … nhưng ở đây Tux sẽ hướng dẫn bạn cài IBus Bamboo, hiện tại là phiên bản hoàn thiện nhất để gõ tiếng Việt trên Linux.

Trang chủ của IBus Bamboo.

Chạy từng dòng một như dưới đây nhé:

sudo add-apt-repository ppa:bamboo-engine/ibus-bamboo
+sudo apt-get update
+sudo apt-get install ibus ibus-bamboo --install-recommends
+ibus restart
+env DCONF_PROFILE=ibus dconf write /desktop/ibus/general/preload-engines "['BambooUs', 'Bamboo']" && gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us'), ('ibus', 'Bamboo')]"
+

Sau khi chạy xong, bạn Log Out lại máy để IBus được khởi động.

(Cần có máy để viết chính xác)

2. Cài đặt ứng dụng cơ bản

Htop và neofetch - kiểm tra tình trạng của máy

Htop giúp bạn kiểm tra tài nguyên hiện tại của máy như CPU, RAM, swap, … Bạn cũng có thể tìm kiếm, filter, sắp xếp các process đang chạy.

Kiểm tra htop đã được cài hay chưa:

htop --version
+# Nếu chưa được cài
+sudo apt install htop
+

Bên cạnh htop, neofetch cho bạn cái nhìn tổng quan về hiện trạng của Linux với một giao diện đẹp:

Kiểm tra neofetch đã được cài hay chưa:

neofetch
+# Nếu chưa được cài
+sudo apt install neofetch
+

Flameshot - chụp màn hình

Tiếp theo là ứng dụng để chụp màn hình, ở đây Tux dùng flameshot vì độ nhẹ và dễ chỉnh sửa:

sudo apt-get install flameshot -y
+

ℹ️ Thêm tag -y để tự động chọn yes khi cài đặt

(config flameshot vào autostart, bind phím tắt nhưng mà để có máy rồi làm)

Zoom

Zoom là ứng dụng không thể thiếu sau thời đại dịch Covid-19. Hiện tại Zoom đã release phiên bản .deb cho các hệ Debian. Truy cập trang download của Zoom: https://zoom.us/download?os=linux

Chọn như trong hình:

Sau khi download về, bạn có thể vào thư mục Downloads và click vào link để chạy gói cài đặt, y như Windows vậy :D

VLC

VLC là ứng dụng mã nguồn mở để xem video phổ biến trên Linux.

# Kiểm tra VLC đã cài trong máy
+vlc --version
+# Cài đặt VLC
+sudo apt-get install vlc -y
+

Visual Studio Code

Tương tự như Zoom, Visual Studio Code cũng cung cấp bộ cài cho bạn. Truy cập trang download của VSCode: https://code.visualstudio.com/download

Chọn file .deb, sau đó tải về và cài đặt như bình thường. +

Tới đây chắc bạn cũng hình dung được cách cài đặt ứng dụng trên Linux rồi đúng không nào. Tux sẽ tổng hợp lại giúp các bạn.

Giả sử bạn cần cài ứng dụng tên là ubunchuu:

  • Cài đặt bằng terminal
sudo apt update
+sudo apt install ubunchuu
+
  • Cài đặt bằng gói deb

    • Search trên mạng: download ubunchuu for ubuntu
    • Tìm kiếm file .deb phù hợp với phiên bản của mình (22.04)
    • Tải về và cài đặt
  • Ngoài 2 cách phổ biến trên, với một số ứng dụng sẽ có câu lệnh chuyên dụng để cài đặt, ví dụ như để cài Fig Terminal, bạn chỉ cần copy và chạy câu lệnh này:

R và R Studio

Truy cập trang download của R Studio và follow theo hướng dẫn trên trang: https://posit.co/download/rstudio-desktop/

Challenge: Cài đặt browser ưa thích của bạn

E.g: edge/chrome/brave/opera

Dựa theo kiến thức ở trên, hãy thử tự cài browser ưa thích của bạn vào máy nhé! Nếu gặp bất cứ khó khăn nào, hãy liên hệ với Ubunchuu qua messenger.

3. Những ứng dụng non-native trên Linux và cách khắc phục

Microsoft Office

Để thay thế Microsoft Office, bạn có thể dùng ứng dụng cài sẵn như Libre Office. Hoặc WPS Office cho UI đẹp hơn và chức năng tốt hơn. Nhưng cũng trade-off vì WPS sẽ nặng hơn và cần config để Linux mở mặc định bằng WPS.

Link download WPS: https://www.wps.com/office/linux/

Matlab, R Studio

Matlab không hỗ trợ Linux, nhưng bạn có thể sử dụng online ở nlink sau:

Maple

Hiện tại có phiên bản Maple cho Linux, nhưng khá nặng và việc cài đặt rườm rà nên Tux không viết vào. Bạn có thể xem hướng dẫn ở đây nhé.

Visual Studio

Hiện tại không có phiên bản cho Linux/Ubuntu. Nhưng bạn có thể sử dụng VSCode thay thế, bằng việc cài plugin liên quan.

Zalo

Hiện tại không có phiên bản Zalo cho Linux, bạn có thể dùng Zalo web để thay thế.

+ + + + +
Top
\ No newline at end of file diff --git "a/docs/day-1-c\303\242u-l\341\273\207nh-c\306\241-b\341\272\243n-v\341\273\233i-terminal/index.html" "b/docs/day-1-c\303\242u-l\341\273\207nh-c\306\241-b\341\272\243n-v\341\273\233i-terminal/index.html" new file mode 100644 index 00000000..681a0999 --- /dev/null +++ "b/docs/day-1-c\303\242u-l\341\273\207nh-c\306\241-b\341\272\243n-v\341\273\233i-terminal/index.html" @@ -0,0 +1,35 @@ +Day 1: Câu lệnh cơ bản với terminal Ubunchuu Trường Ú

Day 1: Câu lệnh cơ bản với terminal

Để làm việc với file trên Linux (hay trên Linux server), các bạn không thể sử dụng các thao tác bằng đồ họa (kéo thả như trên Windows) mà phải thao tác qua cửa sổ dòng lệnh (command-line). Điều này gây khó khăn cho những người không quen thuộc với việc sử dụng console.

Thông qua bài viết này, Tux sẽ giúp mọi người làm quen với một số lệnh cơ bản để quản lý file trên hệ thống Linux. Chúng ta sẽ bắt đầu với các lệnh này cơ bản, đơn giản và dễ nhớ, giúp cho việc quản lý file trên Linux trở nên dễ dàng hơn.

💡 Hãy nhớ nút mở Terminal mặc định trên Linux là Ctrl+Alt+T nhé!

Các lệnh cơ bản

Dưới đây là một số lệnh cơ bản để quản lý file trên Linux: +Các lệnh đều tuần theo syntax như sau: [command] [option] (option là các tags)

1. pwd

Lệnh pwd (print working directory) dùng để hiển thị đường dẫn thư mục hiện tại. Mặc định khi chưa thực hiện thao tác “đổi thư mục” thì khi chúng ta mới mở Terminal lên, chúng ta sẽ đang ở thư mục /home/username. +Lệnh có 2 tags chính: -L (Logical), -P (Physical)

Ví dụ:

pwd #Output: /home/ubunchuu nếu username là ubunchuu
+

2. cd

Lệnh cd (change directory) dùng để di chuyển đến thư mục khác.

Ví dụ:

cd /home/ubunchuu/oop-project
+

Lúc này khi lệnh cd đã được thực thi, chúng ta sẽ có output của lệnh pwd bên trên là: /home/ubunchuu/oop-project

Mẹo riêng dành cho lệnh cd:

  • cd: gõ chỉ mình lệnh cd giúp ta chuyển nhanh đến thư mục /home/username hiện tại mà không cần phải ghi địa chỉ ra.
  • cd ..: giúp ta đi đến thư mục mẹ của thư mục hiện tại.
  • cd ~[username]: giúp ta đi đến user khác nằm trong máy tính Linux.
  • cd -: đi đến thư mục trước đó.

3. ls

Lệnh ls (list) dùng để liệt kê nội dung của thư mục hiện tại. +Các tags của lệnh list:

  • ls -R: liệt kê tất cả files bên trong mọi thư mục con.
  • ls -a: hiện ra tất cả files kể cả files đang bị ẩn (hidden).
  • ls -lh: hiên ra files kèm kích thước của files ví dụ như ubunchuu 2022MB.

Ví dụ:

ls -a #list ra tất cả file, kể cả file ẩn trong thư mục hiện tại
+

4. touch

Lệnh touch dùng để tạo ra một file mới tại thư mục hiện tại hoặc theo đường dẫn của file.

Ví dụ:

touch /home/ubunchuu/document/penguin.cpp # tạo file vào đường dẫn này
+touch penguin.cpp # tạo file tại thư mục đang cd vào
+

5. mkdir

Lệnh mkdir (make directory) dùng để tạo ra một thư mục mới tại đường dẫn hiện tại hoặc đường dẫn đầy đủ tự định nghĩa.

Ví dụ:

mkdir ubunchuu-vip #tạo thư mục tên ubunchuu bên trong thư mục hiện tại
+mkdir /home/ubunchuu/document/ubunchuu-vip #tạo thư mục tên ubunchuu bên trong thư mục hiện tại
+

6. cat

Lệnh cat dùng để hiển thị nội dung của một file. +Một số mẹo hay với lệnh cat:

  • cat > filename.txt : in nội dung của file này vào 1 file mới.
  • cat filename1.txt filename2.txt > filename3.txt: lấy ra output của filename1.txtfilename2.txt, nối chúng lại rồi đưa vào một file mới là filename3.txt.
  • tac filename.txt: in nội dung file này theo thứ tự ngược lại.

Ví dụ:

cat cautrucdulieu.txt # In output bên trong file trên Terminal
+

7. cp

Lệnh cp (copy) dùng để sao chép một file hoặc một thư mục tới một địa chỉ. +Một số cách dùng với lệnh cp:

  • cp *.py /python: copy tất cả file có đuôi .py vào thư mục python
  • cp filename1.txt filename2.txt /stored: lưu nhiều files vào 1 địa chỉ, điều kiện là các files phải ở trong cùng thư mục đang cd vào.
  • cp -R /ubunchuu /best-website-to-learn-linux: tag -R giúp ta copy được cả một thư mục vào một địa chỉ xác định.

Ví dụ:

cp hoclinux.txt mybrain/
+

8. mv

Lệnh mv (move) dùng để di chuyển hoặc đổi tên một file hoặc thư mục. +Các cách dùng lệnh mv:

  • mv filename.txt /home/username/Documents: di chuyển file đến địa chỉ thư mục.
  • mv old_filename.txt new_filename.txt: đổi tên một file sang tên khác.

Ví dụ:

mv old-ubunchuu.cpp new-ubunchuu.cpp
+

9. rm

Lệnh rm (remove) dùng để xóa một file hoặc thư mục. +Các tags của lệnh rm:

  • -i : đưa ra thông báo khi xóa.
  • -f : xóa files mà không cần xác nhận từ người dùng.
  • -r : xóa files lẫn thư mục.

Ta cũng có thể sử dụng kết hợp các tags với nhau như : -rf

Ví dụ:

rm -rf windows # xóa tất cả file và thư mục con của thư mục windows
+

10. grep

Lệnh grep dùng để tìm kiếm và hiển thị các dòng trong file phù hợp với một mẫu (pattern) cụ thể.

Ví dụ:

grep "pattern" filename.txt
+grep linux ubunchuu.txt # hiển thị ra những dòng có linux trong file.
+

Ngoài các lệnh dùng thường xuyên trên, Ubunchuu khuyến khích các bạn nên học thêm nhiều lệnh hay khác, Ubunchuu recommend cách học nhanh qua cheatsheet như: https://www.guru99.com/linux-commands-cheat-sheet.html

Bài tập luyện tập: Ngày 1

Học phải đi đôi với hành, Ubunchuu cung cấp cho các bạn một bài tập điều khiển thao tác với files và thư mục (làm quen với Terminal) của Ngày 1 trong hệ thống bài học “15 Days Flying With Tux” như sau:

Bài tập sử dụng các lệnh điều khiển Linux

Hãy thực hiện các tác vụ sau đây bằng cách sử dụng các lệnh điều khiển Linux đã học:

  1. Tạo một thư mục có tên là “linux_learning”.
  2. Di chuyển vào thư mục “linux_learning”.
  3. Tạo một file có tên là “my_file.txt” trong thư mục “linux_learning”.
  4. Mở trình soạn thảo văn bản lên, nhập “hello world”, lưu và đóng nó lại.
  5. Hiển thị các files có trong thư mục “linux_learning”.
  6. Sao chép file “my_file.txt” vào một thư mục khác có tên là “backup”.
  7. Đổi tên file “my_file.txt” thành “new_file.txt”.
  8. Di chuyển vào thư mục “backup”.
  9. Xóa thư mục “linux_learning” và tất cả nội dung bên trong.
  10. Tìm kiếm các dòng trong file “new_file.txt” chứa từ “hello” và hiển thị kết quả.

Hãy take note lại các lệnh bạn sử dụng để thực hiện từng tác vụ trên và kết quả sau khi thực hiện vào ứng dụng take note (ví dụ: Notion) của các bạn nhé.

+ + + + +
Top
\ No newline at end of file diff --git "a/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/index.html" "b/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/index.html" new file mode 100644 index 00000000..5685867a --- /dev/null +++ "b/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/index.html" @@ -0,0 +1,141 @@ +Day 2: Cấu hình Terminal Emulator Ubunchuu Trường Ú

Day 2: Cấu hình Terminal Emulator

Trong bài viết này, chúng ta sẽ học cách cài đặt và tùy chỉnh terminal trên Ubuntu. Terminal là một phần quan trọng trong quá trình làm việc với Linux. Chúng ta sẽ sử dụng Alacritty làm terminal emulator.

Alacritty là gì? Vì sao rất nên dùng làm Terminal Emulator?

Alacritty là một terminal emulator nhanh và nhẹ, có tích hợp GPU. Nó được viết bằng Rust và có thể chạy trên nhiều hệ điều hành khác nhau như Linux, macOS, Windows.

Ghé thăm trang chủ của Alacritty ở đây nhé: https://alacritty.org

Lý do nên yêu ngay Alacritty:

  • Giao diện rất modern và đẹp (ngay cả khi để default): Alacritty được thiết kế để trông đẹp mắt ngay cả khi bạn không tùy chỉnh gì cả. Em nó có một giao diện tối giản, nhưng rất thẩm mỹ.

  • Khả năng customizing cao: Alacritty cho phép ta tùy chỉnh mọi thứ, từ font chữ, màu sắc, đến các phím tắt. Nếu cánh cụt là một ubunchuu-er thì chắc chắn sẽ thích vọc vạch cả ngày với Alacritty.

  • Hiệu năng cao: Alacritty được viết bằng Rust, một ngôn ngữ lập trình rất nổi tiếng về hiệu năng. Alacritty có thể chạy rất nhanh và nhẹ nhàng, đặc biệt là khi ta sử dụng nó để làm việc với các tools khác như vim, tmux, …

Cài đặt Alacritty

Cài các packages dependencies

sudo apt-get install cmake pkg-config libfreetype6-dev libfontconfig1-dev libxcb-xfixes0-dev libxkbcommon-dev python3 git-core -y
+

Thêm PPA repository và cài đặt thôi

sudo add-apt-repository ppa:aslatter/ppa -y
+sudo apt-get update
+sudo apt-get install alacritty -y
+

Mở Alacritty bằng cách search trong danh sách App thôi 🎉

Welcome to Alacritty

Lúc này, Alacritty cơ bản đã được cài đặt thành công vào máy của bạn. Tuy nhiên, Alacritty vẫn sử dụng các config default và những thứ này hoàn toàn có thể customize lại được tùy ý theo ý thích của mình.

Tùy chỉnh Alacritty

Những config của Alacritty thường nằm trong một file YAML. Bạn có thể tìm default config tại ~/.config/alacritty/alacritty.yml và chỉnh sửa theo ý muốn.

Nếu không thấy file default, hãy clone ở đây về: +https://github.com/tmcdonell/config-alacritty/blob/master/alacritty.yml

Một số field cần lưu ý khi config Alacritty:

  • font: cho phép bạn chọn font chữ mặc định.
  • colors: Bạn có thể tùy chỉnh màu sắc của terminal.
  • key_bindings: cho phép bạn định nghĩa các phím tắt tùy chỉnh.

Hãy xem qua cấu trúc của file config YAML của Alacritty:

env:
+  TERM: xterm-256color
+
+window:
+  padding:
+    x: 6
+    y: 6
+
+scrolling:
+  history: 5000
+
+font:
+  normal:
+    family: JetBrainsMono Nerd Font Mono
+    style: Regular
+  bold:
+    family: JetBrainsMono Nerd Font Mono
+    style: Bold
+  italic:
+    family: JetBrainsMono Nerd Font Mono
+    style: Italic
+  bold_italic:
+    family: JetBrainsMono Nerd Font Mono
+    style: Bold Italic
+  size: 14.0 # Kích thước font chữ
+  offset:
+    x: 1
+    y: 1
+
+colors:
+  # Chỗ này dùng để config theme cho terminal
+  # Cánh cụt nhà mình có thể tham khảo thêm tại:
+  # https://github.com/alacritty/alacritty-theme
+background_opacity: 0.95 # Độ trong suốt của background
+
+key_bindings:
+  # Đây là phần config các shortcut, tùy chỉnh theo ý thích của mình thôi nhé
+  # Xem syntax mẫu dưới đây nhé
+  - { key: Home, mods: Shift, action: ScrollToTop, mode: ~Alt }
+

Cài Alacritty làm terminal mặc định

sudo update-alternatives --install /usr/bin/x-terminal-emulator x-terminal-emulator $(which alacritty) 10
+sudo update-alternatives --config x-terminal-emulator
+

Cài đặt Nerd Font

Một list các nerd fonts mà nhà cánh cụt recommend:

https://github.com/ryanoasis/nerd-fonts
+

Có nhiều nerd fonts cho bạn lựa chọn, nhưng ở đây recommend JetBrains Mono Nerd Font Mono. +Link download:

https://github.com/ryanoasis/nerd-fonts/releases/download/v3.1.1/JetBrainsMono.zip
+
  1. Download file zip trên về bằng lệnh wget hoặc curl.
# Dùng wget để download
+wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.1.1/JetBrainsMono.zip
+
+# Dùng curl để download
+curl -L https://github.com/ryanoasis/nerd-fonts/releases/download/v3.1.1/JetBrainsMono.zip -O  JetBrainsMono.zip
+
  1. Extract file zip vừa download về
unzip JetBrainsMono.zip
+
  1. Place them into ~/.fonts
mkdir -p ~/.fonts
+cp JetBrainsMono/*.ttf ~/.fonts
+
  1. Refresh font cache
fc-cache -f -v
+

Config của Tux (bằng Toml)

Link: https://github.com/ubunchuu-truong-us/dotfiles/blob/main/alacritty.toml

Hoặc các cánh cụt cũng có thể copy trực tiếp từ đây và paste vào file config của mình: (nhớ đổi đuôi file thành .toml nhé)

live_config_reload = true
+
+[colors]
+draw_bold_text_with_bright_colors = true
+
+[colors.bright]
+black = "#565656"
+blue = "#49a4f8"
+cyan = "#99faf2"
+green = "#c0e17d"
+magenta = "#a47de9"
+red = "#ec5357"
+white = "#ffffff"
+yellow = "#f9da6a"
+
+[colors.normal]
+black = "#2e2e2e"
+blue = "#47a0f3"
+cyan = "#64dbed"
+green = "#abe047"
+magenta = "#7b5cb0"
+red = "#eb4129"
+white = "#e5e9f0"
+yellow = "#f6c744"
+
+[colors.primary]
+background = "#101421"
+foreground = "#fffbf6"
+
+[cursor]
+style = "Block"
+
+[env]
+TERM = "alacritty"
+
+[font]
+size = 13
+
+[font.normal]
+family = "JetBrainsMono Nerd Font Mono"
+
+[scrolling]
+history = 10000
+multiplier = 3
+
+[selection]
+save_to_clipboard = true
+semantic_escape_chars = ",│`|:\"' ()[]{}<>\t"
+
+[window]
+decorations = "Full"
+dynamic_padding = false
+opacity = 0.95
+startup_mode = "Windowed"
+title = "Alacritty"
+
+[window.class]
+general = "Alacritty"
+instance = "Alacritty"
+
+[window.dimensions]
+columns = 160
+lines = 45
+
+[window.padding]
+x = 5
+y = 0
+

Uninstall alacritty

Nếu không thích emulator này, các bạn có thể bye bye em nó bằng lệnh:

sudo apt-get remove -y alacritty
+

Other options

Về terminal emulator sẽ có rất nhiều option khác cho mọi người lựa chọn, như:

  • Yakuake
  • Terminator
  • Tilda

Tuy nhiên, chúng mình sẽ không bao giờ giới thiệu và guide một cái gì không tốt cho mọi người. Khi mới bắt đầu học Linux và muốn nhập môn với bộ môn custom, tụi mình vẫn khuyên các bạn nên sử dụng Alacritty, đây cũng là cơ hội để chúng mình tập làm quen với việc config những cái cơ bản bằng file YAML (nếu bạn chưa dùng qua YAML bao giờ).

Tin chúng mình đi, sau khi thử qua tất cả Emulator thì chúng mình đã nhận ra, Alacritty là mượt nhất 🌻

+ + + + +
Top
\ No newline at end of file diff --git a/content/en/docs/15DFWT/2-terminal-setup/static/alacritty.png "b/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/alacritty.png" similarity index 100% rename from content/en/docs/15DFWT/2-terminal-setup/static/alacritty.png rename to "docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/alacritty.png" diff --git "a/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/alacritty_hue66cea8f3d018ec09fd5f3b4f2c380c2_976743_1280x0_resize_q100_h2_box_3.webp" "b/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/alacritty_hue66cea8f3d018ec09fd5f3b4f2c380c2_976743_1280x0_resize_q100_h2_box_3.webp" new file mode 100644 index 00000000..b24dc267 Binary files /dev/null and "b/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/alacritty_hue66cea8f3d018ec09fd5f3b4f2c380c2_976743_1280x0_resize_q100_h2_box_3.webp" differ diff --git "a/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/alacritty_hue66cea8f3d018ec09fd5f3b4f2c380c2_976743_1ffb21b89cb883aff9c1f9b0ebc21d9b.webp" "b/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/alacritty_hue66cea8f3d018ec09fd5f3b4f2c380c2_976743_1ffb21b89cb883aff9c1f9b0ebc21d9b.webp" new file mode 100644 index 00000000..b7f860b6 Binary files /dev/null and "b/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/alacritty_hue66cea8f3d018ec09fd5f3b4f2c380c2_976743_1ffb21b89cb883aff9c1f9b0ebc21d9b.webp" differ diff --git "a/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/alacritty_hue66cea8f3d018ec09fd5f3b4f2c380c2_976743_88d86461e689e60aefcd5fc13efd2a07.webp" "b/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/alacritty_hue66cea8f3d018ec09fd5f3b4f2c380c2_976743_88d86461e689e60aefcd5fc13efd2a07.webp" new file mode 100644 index 00000000..63d774bb Binary files /dev/null and "b/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/alacritty_hue66cea8f3d018ec09fd5f3b4f2c380c2_976743_88d86461e689e60aefcd5fc13efd2a07.webp" differ diff --git "a/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/alacritty_hue66cea8f3d018ec09fd5f3b4f2c380c2_976743_9e3f586bc55e1d69b11b2c68314c5d45.webp" "b/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/alacritty_hue66cea8f3d018ec09fd5f3b4f2c380c2_976743_9e3f586bc55e1d69b11b2c68314c5d45.webp" new file mode 100644 index 00000000..91634218 Binary files /dev/null and "b/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/alacritty_hue66cea8f3d018ec09fd5f3b4f2c380c2_976743_9e3f586bc55e1d69b11b2c68314c5d45.webp" differ diff --git "a/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/alacritty_hue66cea8f3d018ec09fd5f3b4f2c380c2_976743_c2bf8aeb51688ab59838461aa9ccb4f9.webp" "b/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/alacritty_hue66cea8f3d018ec09fd5f3b4f2c380c2_976743_c2bf8aeb51688ab59838461aa9ccb4f9.webp" new file mode 100644 index 00000000..857deb59 Binary files /dev/null and "b/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/alacritty_hue66cea8f3d018ec09fd5f3b4f2c380c2_976743_c2bf8aeb51688ab59838461aa9ccb4f9.webp" differ diff --git a/content/en/docs/15DFWT/2-terminal-setup/static/image.png "b/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/image.png" similarity index 100% rename from content/en/docs/15DFWT/2-terminal-setup/static/image.png rename to "docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/image.png" diff --git "a/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/image_hu51dc2d0803116cb433a1a30322dbfee5_273857_1028x0_resize_q100_h2_box_3.webp" "b/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/image_hu51dc2d0803116cb433a1a30322dbfee5_273857_1028x0_resize_q100_h2_box_3.webp" new file mode 100644 index 00000000..06e8885f Binary files /dev/null and "b/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/image_hu51dc2d0803116cb433a1a30322dbfee5_273857_1028x0_resize_q100_h2_box_3.webp" differ diff --git "a/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/image_hu51dc2d0803116cb433a1a30322dbfee5_273857_c29b94a9d4a9396039fbc55585f1fba1.webp" "b/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/image_hu51dc2d0803116cb433a1a30322dbfee5_273857_c29b94a9d4a9396039fbc55585f1fba1.webp" new file mode 100644 index 00000000..99e27186 Binary files /dev/null and "b/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/image_hu51dc2d0803116cb433a1a30322dbfee5_273857_c29b94a9d4a9396039fbc55585f1fba1.webp" differ diff --git "a/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/image_hu51dc2d0803116cb433a1a30322dbfee5_273857_d040ea5ef6f2aa6e50465cdfbbe772f5.webp" "b/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/image_hu51dc2d0803116cb433a1a30322dbfee5_273857_d040ea5ef6f2aa6e50465cdfbbe772f5.webp" new file mode 100644 index 00000000..bedc7abc Binary files /dev/null and "b/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/image_hu51dc2d0803116cb433a1a30322dbfee5_273857_d040ea5ef6f2aa6e50465cdfbbe772f5.webp" differ diff --git a/content/en/docs/15DFWT/2-terminal-setup/static/welcome.png "b/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/welcome.png" old mode 100755 new mode 100644 similarity index 100% rename from content/en/docs/15DFWT/2-terminal-setup/static/welcome.png rename to "docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/welcome.png" diff --git "a/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/welcome_hud339fc1f333038568feefabda4dd4c83_24746_1600x0_resize_q100_h2_box_3.webp" "b/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/welcome_hud339fc1f333038568feefabda4dd4c83_24746_1600x0_resize_q100_h2_box_3.webp" new file mode 100644 index 00000000..27927e01 Binary files /dev/null and "b/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/welcome_hud339fc1f333038568feefabda4dd4c83_24746_1600x0_resize_q100_h2_box_3.webp" differ diff --git "a/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/welcome_hud339fc1f333038568feefabda4dd4c83_24746_2e0ce623b66fe4a3125f23097db02e97.webp" "b/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/welcome_hud339fc1f333038568feefabda4dd4c83_24746_2e0ce623b66fe4a3125f23097db02e97.webp" new file mode 100644 index 00000000..07f88a8d Binary files /dev/null and "b/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/welcome_hud339fc1f333038568feefabda4dd4c83_24746_2e0ce623b66fe4a3125f23097db02e97.webp" differ diff --git "a/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/welcome_hud339fc1f333038568feefabda4dd4c83_24746_438aa5a12182e7535bf2d3fc63713a28.webp" "b/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/welcome_hud339fc1f333038568feefabda4dd4c83_24746_438aa5a12182e7535bf2d3fc63713a28.webp" new file mode 100644 index 00000000..70a7c719 Binary files /dev/null and "b/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/welcome_hud339fc1f333038568feefabda4dd4c83_24746_438aa5a12182e7535bf2d3fc63713a28.webp" differ diff --git "a/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/welcome_hud339fc1f333038568feefabda4dd4c83_24746_4edc9e63caae4132fb598ba974d3f419.webp" "b/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/welcome_hud339fc1f333038568feefabda4dd4c83_24746_4edc9e63caae4132fb598ba974d3f419.webp" new file mode 100644 index 00000000..c900e2e4 Binary files /dev/null and "b/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/welcome_hud339fc1f333038568feefabda4dd4c83_24746_4edc9e63caae4132fb598ba974d3f419.webp" differ diff --git "a/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/welcome_hud339fc1f333038568feefabda4dd4c83_24746_6e98440b0f85f4cb34c6c0978001d4f9.webp" "b/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/welcome_hud339fc1f333038568feefabda4dd4c83_24746_6e98440b0f85f4cb34c6c0978001d4f9.webp" new file mode 100644 index 00000000..feee7775 Binary files /dev/null and "b/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/welcome_hud339fc1f333038568feefabda4dd4c83_24746_6e98440b0f85f4cb34c6c0978001d4f9.webp" differ diff --git "a/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/welcome_hud339fc1f333038568feefabda4dd4c83_24746_eb7351e0005502a53236f7f1a79c7ab2.webp" "b/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/welcome_hud339fc1f333038568feefabda4dd4c83_24746_eb7351e0005502a53236f7f1a79c7ab2.webp" new file mode 100644 index 00000000..91ccd4c1 Binary files /dev/null and "b/docs/day-2-c\341\272\245u-h\303\254nh-terminal-emulator/static/welcome_hud339fc1f333038568feefabda4dd4c83_24746_eb7351e0005502a53236f7f1a79c7ab2.webp" differ diff --git "a/docs/gi\341\273\233i-thi\341\273\207u-v\341\273\201-linux/index.html" "b/docs/gi\341\273\233i-thi\341\273\207u-v\341\273\201-linux/index.html" new file mode 100644 index 00000000..e5729934 --- /dev/null +++ "b/docs/gi\341\273\233i-thi\341\273\207u-v\341\273\201-linux/index.html" @@ -0,0 +1,23 @@ +Giới thiệu về Linux Ubunchuu Trường Ú

Giới thiệu về Linux

Chào mừng bạn đến với bài viết đầu tiên, mở đầu tutorial của chúng mình. +Mình là Tux, người đồng hành cùng bạn trong cuộc hành trình này. +Hãy cùng bắt đầu với một chút flashback về lịch sử đằng sau sự hình thành linux.

1️. Lịch sử hình thành

Năm 1969, Ken Thompson và Dennis Ritchie tại viện nghiên cứu Bell (đại học MIT) đã phát triển hệ điều hành UNIX. +Ban đầu, UNIX được viết bằng assembly. +Sau đó nó đã được viết lại bằng C để ổn định và di động hơn.

Suốt khoảng thời gian đó, rất nhiều hệ điều hành như BSD, MINIX, … được phát triển dựa trên hệ thống UNIX. +Tuy nhiên, chúng đều không quá thành công. +Điểm chung của chúng là đều thiếu một nhân (kernel) thống nhất.

Nhân (kernel) là thành phần quan trọng nhất của một hệ điều hành. Nhân cho phép phần cứng “nói chuyện” được với phần mềm. Ngoài ra, nó còn có thể làm được ti tỉ thứ khác, nhưng chúng ta sẽ tìm hiểu sau. Còn giờ, bạn chỉ cần biết nhân điều khiển hầu như mọi thứ trong hệ thống của bạn.

Vào năm 1991, một thanh niên trẻ tên Linus Torvalds đã bắt đầu phát triển thứ mà chúng ta gọi là nhân linux. +Và rồi… boom!

Linux ra đời!

Linux là hệ điều hành mã nguồn mở (open-source) ra đời từ khoảng 30 năm trở lại đây, được phát triển dựa trên hệ điều hành UNIX và viết bằng ngôn ngữ lập trình C.

Fun fact: Linus Torvalds đã muốn gọi phát minh của mình là Freax, một từ ghép giữa “free”, “freak”, và “x” (như là một ám chỉ đến Unix). +Ông đã từng xem xét cái tên “Linux,” nhưng ban đầu bác bỏ nó do quá tự cao tự đại. +Sau đó thì một trong những admin của máy chủ linux của trường tự đặt tên dự án là “Linux” mà không hỏi ý kiến Torvalds. +Sau cùng, ông cũng đồng ý với cái tên “Linux”.

Linux được xuất bản dưới giấy phép công cộng GNU, giúp hạn chế hoạt động về thương mại. Ông từng tuyên bố, “Phát hành Linux theo GNU chắc chắn là điều tốt nhất tôi từng làm.” Nếu không thì chúng ta đã không có một hệ điều hành tuyệt vời với đông đảo lập trình viên ưa thích như hôm nay.

2️. Tổng quan về Linux

Cấu trúc hệ điều hành Linux tóm gọn lại chỉ gồm 3 phần chính:

  • Kernel: hay được gọi là phần nhân, vì đây là phần quan trọng nhất trong máy tính bởi chứa đựng các module hay các package để quản lý, giao tiếp giữa phần cứng máy tính và ứng dụng.
  • Shell: là phần có chức năng thực thi các lệnh (command) từ người dùng hoặc từ các ứng dụng yêu cầu, chuyển đến cho kernel xử lý. Nói nôm na, shell chính là cầu nối để kernel và ứng dụng nói chuyện với nhau.
  • Application: là phần quen thuộc với chúng ta nhất, phần để người dùng cài đặt và chạy ứng dụng để người dùng có thể phục vụ cho nhu cầu của mình.

💡 Ghi nhớ: Linux là hệ điều hành open-source, đa số các thao tác thực hiện trên linux sẽ thông qua các câu lệnh gọn gàng và nhanh trên terminal.

+ + + + +
Top
\ No newline at end of file diff --git a/content/en/docs/Linux Overview/1-gioi-thieu-linux/static/debian.PNG "b/docs/gi\341\273\233i-thi\341\273\207u-v\341\273\201-linux/static/debian.PNG" similarity index 100% rename from content/en/docs/Linux Overview/1-gioi-thieu-linux/static/debian.PNG rename to "docs/gi\341\273\233i-thi\341\273\207u-v\341\273\201-linux/static/debian.PNG" diff --git "a/docs/gi\341\273\233i-thi\341\273\207u-v\341\273\201-linux/static/debian_huc91ac1cfa4b13675508c7e0e8a7675bd_45455_13e0fb982e76518296677706e4047a55.webp" "b/docs/gi\341\273\233i-thi\341\273\207u-v\341\273\201-linux/static/debian_huc91ac1cfa4b13675508c7e0e8a7675bd_45455_13e0fb982e76518296677706e4047a55.webp" new file mode 100644 index 00000000..7cda4e4e Binary files /dev/null and "b/docs/gi\341\273\233i-thi\341\273\207u-v\341\273\201-linux/static/debian_huc91ac1cfa4b13675508c7e0e8a7675bd_45455_13e0fb982e76518296677706e4047a55.webp" differ diff --git "a/docs/gi\341\273\233i-thi\341\273\207u-v\341\273\201-linux/static/debian_huc91ac1cfa4b13675508c7e0e8a7675bd_45455_602x0_resize_q100_h2_box_3.webp" "b/docs/gi\341\273\233i-thi\341\273\207u-v\341\273\201-linux/static/debian_huc91ac1cfa4b13675508c7e0e8a7675bd_45455_602x0_resize_q100_h2_box_3.webp" new file mode 100644 index 00000000..86342884 Binary files /dev/null and "b/docs/gi\341\273\233i-thi\341\273\207u-v\341\273\201-linux/static/debian_huc91ac1cfa4b13675508c7e0e8a7675bd_45455_602x0_resize_q100_h2_box_3.webp" differ diff --git a/content/en/docs/Linux Overview/1-gioi-thieu-linux/static/pie.png "b/docs/gi\341\273\233i-thi\341\273\207u-v\341\273\201-linux/static/pie.png" similarity index 100% rename from content/en/docs/Linux Overview/1-gioi-thieu-linux/static/pie.png rename to "docs/gi\341\273\233i-thi\341\273\207u-v\341\273\201-linux/static/pie.png" diff --git "a/docs/gi\341\273\233i-thi\341\273\207u-v\341\273\201-linux/static/pie_hu985153c467811208ed816eb6850516f9_33715_515x0_resize_q100_h2_box_3.webp" "b/docs/gi\341\273\233i-thi\341\273\207u-v\341\273\201-linux/static/pie_hu985153c467811208ed816eb6850516f9_33715_515x0_resize_q100_h2_box_3.webp" new file mode 100644 index 00000000..bd6e539a Binary files /dev/null and "b/docs/gi\341\273\233i-thi\341\273\207u-v\341\273\201-linux/static/pie_hu985153c467811208ed816eb6850516f9_33715_515x0_resize_q100_h2_box_3.webp" differ diff --git "a/docs/gi\341\273\233i-thi\341\273\207u-v\341\273\201-linux/static/pie_hu985153c467811208ed816eb6850516f9_33715_e26bd2423dffeb49d6ab0f78e2a9c0f7.webp" "b/docs/gi\341\273\233i-thi\341\273\207u-v\341\273\201-linux/static/pie_hu985153c467811208ed816eb6850516f9_33715_e26bd2423dffeb49d6ab0f78e2a9c0f7.webp" new file mode 100644 index 00000000..e8e9a593 Binary files /dev/null and "b/docs/gi\341\273\233i-thi\341\273\207u-v\341\273\201-linux/static/pie_hu985153c467811208ed816eb6850516f9_33715_e26bd2423dffeb49d6ab0f78e2a9c0f7.webp" differ diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 00000000..ad724d49 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,9 @@ +Docs Ubunchuu Trường Ú
+ + + + +
Top
\ No newline at end of file diff --git a/docs/index.xml b/docs/index.xml new file mode 100644 index 00000000..3bbe66ff --- /dev/null +++ b/docs/index.xml @@ -0,0 +1 @@ +Docs onhttps://ubunchuu-truong-us.github.io/docs/Recent content in Docs onHugo -- gohugo.ioSat, 24 Dec 2022 00:00:00 +0000 \ No newline at end of file diff --git a/docs/installation-guide/index.html b/docs/installation-guide/index.html new file mode 100644 index 00000000..dba54760 --- /dev/null +++ b/docs/installation-guide/index.html @@ -0,0 +1,9 @@ +Installation Guide Ubunchuu Trường Ú

Installation Guide

+ + + + +
Top
\ No newline at end of file diff --git a/docs/installation-guide/index.xml b/docs/installation-guide/index.xml new file mode 100644 index 00000000..5d85e5f7 --- /dev/null +++ b/docs/installation-guide/index.xml @@ -0,0 +1,9 @@ +Installation Guide onhttps://ubunchuu-truong-us.github.io/docs/installation-guide/Recent content in Installation Guide onHugo -- gohugo.ioMon, 06 Mar 2023 00:00:00 +0000Cài đặt Ubuntu (clean install)https://ubunchuu-truong-us.github.io/docs/c%C3%A0i-%C4%91%E1%BA%B7t-ubuntu-clean-install/Sat, 24 Dec 2022 00:00:00 +0000https://ubunchuu-truong-us.github.io/docs/c%C3%A0i-%C4%91%E1%BA%B7t-ubuntu-clean-install/1. Giới thiệu về Ubuntu # +Ubuntu hoàn toàn miễn phí và có thể dễ dàng cài đặt trên mọi cấu hình: # +Khác với Windows và MacOS, Ubuntu không yêu cầu một khoản phí bất kỳ nào để có thể cài đặt và sử dụng hệ điều hành. +Việc cài đặt Ubuntu theo tụi mình đánh giá là đơn giản hơn việc cài đặt hệ điều hành Windows khá nhiều.Cài đặt Ubuntu cho người dùng song song với Windowshttps://ubunchuu-truong-us.github.io/docs/c%C3%A0i-%C4%91%E1%BA%B7t-ubuntu-cho-ng%C6%B0%E1%BB%9Di-d%C3%B9ng-song-song-v%E1%BB%9Bi-windows/Sat, 24 Dec 2022 00:00:00 +0000https://ubunchuu-truong-us.github.io/docs/c%C3%A0i-%C4%91%E1%BA%B7t-ubuntu-cho-ng%C6%B0%E1%BB%9Di-d%C3%B9ng-song-song-v%E1%BB%9Bi-windows/1. Giới thiệu về Ubuntu # +Ubuntu hoàn toàn miễn phí và có thể dễ dàng cài đặt trên mọi cấu hình: # +Khác với Windows và MacOS, Ubuntu không yêu cầu một khoản phí bất kỳ nào để có thể cài đặt và sử dụng hệ điều hành. +Việc cài đặt Ubuntu theo tụi mình đánh giá là đơn giản hơn việc cài đặt hệ điều hành Windows khá nhiều.Cài đặt và đồng bộ Onedrive cho Linuxhttps://ubunchuu-truong-us.github.io/docs/c%C3%A0i-%C4%91%E1%BA%B7t-v%C3%A0-%C4%91%E1%BB%93ng-b%E1%BB%99-onedrive-cho-linux/Sun, 19 Mar 2023 00:00:00 +0000https://ubunchuu-truong-us.github.io/docs/c%C3%A0i-%C4%91%E1%BA%B7t-v%C3%A0-%C4%91%E1%BB%93ng-b%E1%BB%99-onedrive-cho-linux/tags: onedrive,file-syncing-with-onedrive # +📝 Onedrive là gì ? Tìm hiểu chung về công dụng của Onedrive # +OneDrive là dịch vụ đám mây của Microsoft được sử dụng để lưu trữ dữ liệu của người dùng. Dịch vụ cho phép người dùng kết nối với dữ liệu của họ thông qua việc lưu trữ và bảo vệ dữ liệu. Người dùng có thể chia sẻ dữ liệu với những người khác và truy cập đến chúng từ mọi nơi trên tất cả các thiết bị của họ. \ No newline at end of file diff --git a/docs/installation-guide/sitemap.xml b/docs/installation-guide/sitemap.xml new file mode 100644 index 00000000..9f3ce647 --- /dev/null +++ b/docs/installation-guide/sitemap.xml @@ -0,0 +1 @@ +https://ubunchuu-truong-us.github.io/docs/c%C3%A0i-%C4%91%E1%BA%B7t-ubuntu-clean-install/2024-01-01T14:06:03+07:00weekly0.5https://ubunchuu-truong-us.github.io/docs/c%C3%A0i-%C4%91%E1%BA%B7t-ubuntu-cho-ng%C6%B0%E1%BB%9Di-d%C3%B9ng-song-song-v%E1%BB%9Bi-windows/2024-01-01T14:06:03+07:00weekly0.5https://ubunchuu-truong-us.github.io/docs/c%C3%A0i-%C4%91%E1%BA%B7t-v%C3%A0-%C4%91%E1%BB%93ng-b%E1%BB%99-onedrive-cho-linux/2024-01-16T14:34:23+07:00weekly0.5 \ No newline at end of file diff --git a/docs/linux-distribution/index.html b/docs/linux-distribution/index.html new file mode 100644 index 00000000..d0c36ace --- /dev/null +++ b/docs/linux-distribution/index.html @@ -0,0 +1,9 @@ +Linux Distribution Ubunchuu Trường Ú

Linux Distribution

+ + + + +
Top
\ No newline at end of file diff --git a/docs/linux-distribution/index.xml b/docs/linux-distribution/index.xml new file mode 100644 index 00000000..dcae3867 --- /dev/null +++ b/docs/linux-distribution/index.xml @@ -0,0 +1,3 @@ +Linux Distribution onhttps://ubunchuu-truong-us.github.io/docs/linux-distribution/Recent content in Linux Distribution onHugo -- gohugo.ioMon, 06 Feb 2023 00:00:00 +0000Tìm hiểu chung về Linux Distrohttps://ubunchuu-truong-us.github.io/docs/t%C3%ACm-hi%E1%BB%83u-chung-v%E1%BB%81-linux-distro/Mon, 06 Feb 2023 00:00:00 +0000https://ubunchuu-truong-us.github.io/docs/t%C3%ACm-hi%E1%BB%83u-chung-v%E1%BB%81-linux-distro/Distro là từ viết tắt của linux distribution, có tên tiếng việt là phân phối của Linux. +1. Khái niệm Distro # +Một bản phân phối của linux (hay distro) là một hệ điều hành được lập trình từ những tùy biến dựa trên nhân Linux. Những tùy biến này có thể giải thích đơn giản là sự thay đổi trong cách đóng gói packages bên trong hệ điều hành cùng với nhân Linux, cùng các công cụ GNU, thư viện cũng như tiện ích, ứng dụng khác nhau cho phù hợp với nhu cầu người sử dụng.Chọn ra Distro phù hợp nhất với mìnhhttps://ubunchuu-truong-us.github.io/docs/ch%E1%BB%8Dn-ra-distro-ph%C3%B9-h%E1%BB%A3p-nh%E1%BA%A5t-v%E1%BB%9Bi-m%C3%ACnh/Tue, 21 Feb 2023 00:00:00 +0000https://ubunchuu-truong-us.github.io/docs/ch%E1%BB%8Dn-ra-distro-ph%C3%B9-h%E1%BB%A3p-nh%E1%BA%A5t-v%E1%BB%9Bi-m%C3%ACnh/Theo số liệu thống kê từ trang truelist.co (số liệu thống kê tính tới ngày 02/02/2023), hiện nay số lượng các distros Linux đang hoạt động vào khoảng hơn 600 distros. Một số distros được sử dụng phổ biến nhất hiện nay là Debian, Ubuntu, Manjaro, Arch Linux, Kali Linux, và còn nhiều hơn thế nữa. Tuy nhiên, để chọn ra được một distro phù hợp với tính chất công việc, nhu cầu sử dụng của bạn thì có lẽ là một việc không hề dễ dàng và tốn nhiều thời gian trải nghiệm. \ No newline at end of file diff --git a/docs/linux-distribution/sitemap.xml b/docs/linux-distribution/sitemap.xml new file mode 100644 index 00000000..4a2a1a89 --- /dev/null +++ b/docs/linux-distribution/sitemap.xml @@ -0,0 +1 @@ +https://ubunchuu-truong-us.github.io/docs/t%C3%ACm-hi%E1%BB%83u-chung-v%E1%BB%81-linux-distro/2024-01-01T13:52:22+07:00weekly0.5https://ubunchuu-truong-us.github.io/docs/ch%E1%BB%8Dn-ra-distro-ph%C3%B9-h%E1%BB%A3p-nh%E1%BA%A5t-v%E1%BB%9Bi-m%C3%ACnh/2023-06-01T15:39:22+07:00weekly0.5 \ No newline at end of file diff --git a/docs/linux-overview/index.html b/docs/linux-overview/index.html new file mode 100644 index 00000000..d661b035 --- /dev/null +++ b/docs/linux-overview/index.html @@ -0,0 +1,9 @@ +Linux Overview Ubunchuu Trường Ú

Linux Overview

+ + + + +
Top
\ No newline at end of file diff --git a/docs/linux-overview/index.xml b/docs/linux-overview/index.xml new file mode 100644 index 00000000..b3ec6c72 --- /dev/null +++ b/docs/linux-overview/index.xml @@ -0,0 +1,7 @@ +Linux Overview onhttps://ubunchuu-truong-us.github.io/docs/linux-overview/Recent content in Linux Overview onHugo -- gohugo.ioGiới thiệu về Linuxhttps://ubunchuu-truong-us.github.io/docs/gi%E1%BB%9Bi-thi%E1%BB%87u-v%E1%BB%81-linux/Sat, 24 Dec 2022 00:00:00 +0000https://ubunchuu-truong-us.github.io/docs/gi%E1%BB%9Bi-thi%E1%BB%87u-v%E1%BB%81-linux/Chào mừng bạn đến với bài viết đầu tiên, mở đầu tutorial của chúng mình. Mình là Tux, người đồng hành cùng bạn trong cuộc hành trình này. Hãy cùng bắt đầu với một chút flashback về lịch sử đằng sau sự hình thành linux. +1️. Lịch sử hình thành # +Năm 1969, Ken Thompson và Dennis Ritchie tại viện nghiên cứu Bell (đại học MIT) đã phát triển hệ điều hành UNIX.Vì sao nên sử dụng Linuxhttps://ubunchuu-truong-us.github.io/docs/v%C3%AC-sao-n%C3%AAn-s%E1%BB%AD-d%E1%BB%A5ng-linux/Sat, 24 Dec 2022 00:00:00 +0000https://ubunchuu-truong-us.github.io/docs/v%C3%AC-sao-n%C3%AAn-s%E1%BB%AD-d%E1%BB%A5ng-linux/1. Thiên đường mã nguồn mở # +Khi bạn quá mệt với các yêu cầu trả tiền bản quyền các ứng dụng, hay thậm chí là bản quyền cho chính hệ điều hành của bạn? Linux là dành cho bạn, nơi mà mọi người chỉ cần clone về mọi thứ một cách miễn phí. Ngoài ra nó còn có điểm cộng nữa là bạn có thể xem được bên trong source của chúng có những gì, thông qua đó, ta có thể dễ dàng tùy biến chúng.So sánh Linux với các hệ điều hành kháchttps://ubunchuu-truong-us.github.io/docs/so-s%C3%A1nh-linux-v%E1%BB%9Bi-c%C3%A1c-h%E1%BB%87-%C4%91i%E1%BB%81u-h%C3%A0nh-kh%C3%A1c/Wed, 01 Feb 2023 00:00:00 +0000https://ubunchuu-truong-us.github.io/docs/so-s%C3%A1nh-linux-v%E1%BB%9Bi-c%C3%A1c-h%E1%BB%87-%C4%91i%E1%BB%81u-h%C3%A0nh-kh%C3%A1c/Chúng ta hãy cùng so sánh Linux với hai hệ điều hành phổ biến là Windows và MacOS. +https://youtu.be/o14-gCNRwR8 +⚙️ Cài đặt # +Để cài Windows, chỉ cần một USB Boot có chứa Windows là có thể cài được. Windows chạy được với hầu hết các loại phần cứng, nhưng yêu cầu tối thiểu 1 GHz CPU, RAM từ 1-2 Gb và ổ cứng 15 Gb. Sau đó, quy trình cài đặt chỉ cần &ldquo;bấm&rdquo; và &ldquo;chọn&rdquo;. \ No newline at end of file diff --git a/docs/linux-overview/sitemap.xml b/docs/linux-overview/sitemap.xml new file mode 100644 index 00000000..d917a2ca --- /dev/null +++ b/docs/linux-overview/sitemap.xml @@ -0,0 +1 @@ +https://ubunchuu-truong-us.github.io/docs/gi%E1%BB%9Bi-thi%E1%BB%87u-v%E1%BB%81-linux/2024-01-01T13:52:22+07:00weekly0.5https://ubunchuu-truong-us.github.io/docs/v%C3%AC-sao-n%C3%AAn-s%E1%BB%AD-d%E1%BB%A5ng-linux/2024-01-01T13:52:22+07:00weekly0.5https://ubunchuu-truong-us.github.io/docs/so-s%C3%A1nh-linux-v%E1%BB%9Bi-c%C3%A1c-h%E1%BB%87-%C4%91i%E1%BB%81u-h%C3%A0nh-kh%C3%A1c/2024-01-01T13:52:22+07:00weekly0.5 \ No newline at end of file diff --git a/docs/sitemap.xml b/docs/sitemap.xml new file mode 100644 index 00000000..ffb33d4a --- /dev/null +++ b/docs/sitemap.xml @@ -0,0 +1 @@ +https://ubunchuu-truong-us.github.io/docs/linux-overview/2023-06-01T15:39:22+07:00weekly0.5https://ubunchuu-truong-us.github.io/docs/linux-distribution/2023-06-01T15:39:22+07:00weekly0.5https://ubunchuu-truong-us.github.io/docs/installation-guide/2023-06-01T15:39:22+07:00weekly0.5https://ubunchuu-truong-us.github.io/docs/15dfwt/2023-06-01T15:39:22+07:00weekly0.5https://ubunchuu-truong-us.github.io/docs/gi%E1%BB%9Bi-thi%E1%BB%87u-v%E1%BB%81-linux/2024-01-01T13:52:22+07:00weekly0.5https://ubunchuu-truong-us.github.io/docs/v%C3%AC-sao-n%C3%AAn-s%E1%BB%AD-d%E1%BB%A5ng-linux/2024-01-01T13:52:22+07:00weekly0.5https://ubunchuu-truong-us.github.io/docs/so-s%C3%A1nh-linux-v%E1%BB%9Bi-c%C3%A1c-h%E1%BB%87-%C4%91i%E1%BB%81u-h%C3%A0nh-kh%C3%A1c/2024-01-01T13:52:22+07:00weekly0.5https://ubunchuu-truong-us.github.io/docs/t%C3%ACm-hi%E1%BB%83u-chung-v%E1%BB%81-linux-distro/2024-01-01T13:52:22+07:00weekly0.5https://ubunchuu-truong-us.github.io/docs/ch%E1%BB%8Dn-ra-distro-ph%C3%B9-h%E1%BB%A3p-nh%E1%BA%A5t-v%E1%BB%9Bi-m%C3%ACnh/2023-06-01T15:39:22+07:00weekly0.5https://ubunchuu-truong-us.github.io/docs/c%C3%A0i-%C4%91%E1%BA%B7t-ubuntu-clean-install/2024-01-01T14:06:03+07:00weekly0.5https://ubunchuu-truong-us.github.io/docs/c%C3%A0i-%C4%91%E1%BA%B7t-ubuntu-cho-ng%C6%B0%E1%BB%9Di-d%C3%B9ng-song-song-v%E1%BB%9Bi-windows/2024-01-01T14:06:03+07:00weekly0.5https://ubunchuu-truong-us.github.io/docs/c%C3%A0i-%C4%91%E1%BA%B7t-v%C3%A0-%C4%91%E1%BB%93ng-b%E1%BB%99-onedrive-cho-linux/2024-01-16T14:34:23+07:00weekly0.5https://ubunchuu-truong-us.github.io/docs/day-0-ch%C3%A0o-m%E1%BB%ABng-%C4%91%E1%BA%BFn-v%E1%BB%9Bi-linux/2024-01-16T14:34:23+07:00weekly0.5https://ubunchuu-truong-us.github.io/docs/day-1-c%C3%A2u-l%E1%BB%87nh-c%C6%A1-b%E1%BA%A3n-v%E1%BB%9Bi-terminal/2024-01-16T14:34:23+07:00weekly0.5https://ubunchuu-truong-us.github.io/docs/day-2-c%E1%BA%A5u-h%C3%ACnh-terminal-emulator/2024-01-01T13:52:22+07:00weekly0.5 \ No newline at end of file diff --git "a/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/index.html" "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/index.html" new file mode 100644 index 00000000..81651fbf --- /dev/null +++ "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/index.html" @@ -0,0 +1,13 @@ +So sánh Linux với các hệ điều hành khác Ubunchuu Trường Ú

So sánh Linux với các hệ điều hành khác

Chúng ta hãy cùng so sánh Linux với hai hệ điều hành phổ biến là Windows và MacOS.

https://youtu.be/o14-gCNRwR8

⚙️ Cài đặt

Để cài Windows, chỉ cần một USB Boot có chứa Windows là có thể cài được. Windows chạy được với hầu hết các loại phần cứng, nhưng yêu cầu tối thiểu 1 GHz CPU, RAM từ 1-2 Gb và ổ cứng 15 Gb. Sau đó, quy trình cài đặt chỉ cần “bấm” và “chọn”.

Khác với Windows, macOS được cài đặt sẵn trong các máy macbook hoặc iMac. Khi máy về, chỉ cần tùy chỉnh một số chức năng cho phù hợp là được.

Hiện tại, cài đặt Ubuntu đã được tinh gọn, thêm giao diện người dùng (UI). Cũng giống Windows, để cài Ubuntu chỉ cần một USB Boot có chứa Ubuntu theo phiên bản đã chọn. Nhưng so với Windows thì Ubuntu có yêu cầu phần cứng thấp hơn nhiều. Các máy từ đời “Hán” với chip Pentium 10 năm tuổi cũng có thể cài được và sử dụng trơn tru.

Nhưng nếu bạn cài đặt một phiên bản của Linux: Arch thì đó là một câu chuyện khác. Bạn sẽ phải cài đặt lại hết từ đầu những thứ cần có của một hệ điều hành. Từ việc chia phân vùng, kết nối internet, thiết lập đồng hồ, cài đặt packages liên quan, … tất cả thực hiện trên giao diện dòng lệnh terminal (CLI).

Nhưng “thương cho roi cho vọt”, một khi bạn cài được Arch, bạn sẽ học được vô số kiến thức bổ ích về Linux, thứ sẽ giúp bạn rất nhiều sau này.

💯 Độ tương thích phần mềm

Windows là hệ điều hành thông dụng nhất, và nhờ đó hầu hết phần mềm tương thích với nó. Tương tự, macOS cũng có một hệ sinh thái phần mềm riêng. Ví dụ đối với editor, thay vì dùng Adobe Premier (tương thích với Windows và macOS), họ có thể dùng DaVinci Resolve, phần mềm edit video độc quyền của macOS.

Tuy nhiên đối với Linux, một vài phần mềm ở Windows không có phiên bản cho Linux như Zalo, Adobe (Photoshop, Illustrator, Premier, …). Bạn vẫn có thể sử dụng chúng thông qua Wine, nhưng khó để nói chúng chạy mượt mà như trên Windows.

Ngoài ra hầu hết các game trên Windows sử dụng driver của riêng họ là DirectX, vì vậy, nếu bạn dành phần lớn thời gian chơi game thì tốt nhất là dùng Windows.

Tuy nhiên, lợi thế của Linux là các phần mềm cũ từ nhiều năm trước cũng có thể cài đặt được. Ví dụ bạn cần cài đặt phiên bản chục năm trước của một phần mềm để học tập.

🤯 Độ khó sử dụng

Windows và macOS có giao diện rất thân thiện với người dùng. Tuy nhiên, chúng không phải môi trường tốt cho việc coding. MacOS được phát triển từ nhân Linux nên có một số câu lệnh tương tự Linux, nhưng thực tế, không ai chạy và quản lý server bằng macOS cả.

Hiện tại phiên bản Ubuntu 22.10 đã được phát triển rất thân thiện với người dùng, bạn không phải mất quá nhiều thời gian để làm quen với nó.

🔐 Bảo mật và ổn định

Không có gì phải bàn cãi, Linux là hệ điều hành bảo mật và ổn định nhất. Thực tế với mã nguồn được công khai không khiến nó trở nên nguy hiểm như bạn vẫn nghĩ, ngược lại đó là một lợi thế. Mã nguồn mở khiến lỗi được phát hiện và chữa nhanh hơn.

Mặc khác, Windows được coi là hệ điều hành dễ bị lây lan virus nhất. Với lượng người dùng lớn, Windows trở thành mục tiêu cho các phần mềm malware và virus.

📂 Quản lý files

Windows sử dụng “drives”, gọi dân dã là ổ đĩa/phân vùng. Thường là ổ đĩa C hoặc D sẽ chứa files liên quan đến hệ thống. Bạn cũng có thể chia thêm ổ đĩa từ C hoặc D để lưu trữ file cá nhân. Ngoài ra có các ổ đĩa ngoài như CD, USB.

Mặt khác, macOS và Linux có hệ thống quản lý files khá tương đồng vì cùng đến từ UNIX. Chúng không có “drives” như Windows, thay vào đó mọi thứ trong máy tính được coi như 1 file (kể cả ổ cứng ngoài), và tất cả files được tổ chức dưới dạng thư mục, phân chia theo cây với cùng một gốc.

😍 Shells

Một trong những thứ mà Tux thích nhất khi dùng Linux là terminal. Cả Linux và macOS đều đặt bash là shell mặc định. Trong khi đó Windows có hệ thống shell riêng là powershell, với cách dùng và syntax khác biệt.

Là lập trình viên, sử dụng shell để tương tác với kernel là một trong những điều bắt buộc. Lý do vì hầu hết các server hiện nay đều là Linux, kể cả khi bạn muốn thuê một VPS, hay Cloud Compute Engine. Terminal thực sự giúp cuộc sống lập trình viên dễ dàng hơn, hay vì luôn dùng chuột để điều khiển máy tính.

🍀 Cộng đồng hỗ trợ

Mặc dù lượng người dùng không nhiều bằng hai hệ điều hành kia, cộng đồng người dùng Linux là những người yêu phần mềm và đam mê công nghệ. Họ thường trao đổi, chia sẻ, hỗ trợ kiến thức với nhau.

MacOS cũng sở hữu một lượng fan, phần lớn về sáng tạo (thiết kế đồ họa, animation, video, …) và về cách sử dụng những thứ được Apple làm sẵn.

Và cuối cùng, Windows được sử dụng đại trà bởi người dùng phổ thông.

+ + + + +
Top
\ No newline at end of file diff --git a/content/en/docs/Linux Overview/3-so-sanh-linux/static/image1.jpg "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image1.jpg" similarity index 100% rename from content/en/docs/Linux Overview/3-so-sanh-linux/static/image1.jpg rename to "docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image1.jpg" diff --git "a/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image1_hu1679d61f24ba8eaa74ecc6490bccaec2_147863_12fe748641e76f1ea42b510d2df89d05.webp" "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image1_hu1679d61f24ba8eaa74ecc6490bccaec2_147863_12fe748641e76f1ea42b510d2df89d05.webp" new file mode 100644 index 00000000..b1299bf1 Binary files /dev/null and "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image1_hu1679d61f24ba8eaa74ecc6490bccaec2_147863_12fe748641e76f1ea42b510d2df89d05.webp" differ diff --git "a/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image1_hu1679d61f24ba8eaa74ecc6490bccaec2_147863_1344x0_resize_q100_h2_box.webp" "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image1_hu1679d61f24ba8eaa74ecc6490bccaec2_147863_1344x0_resize_q100_h2_box.webp" new file mode 100644 index 00000000..a802b1b4 Binary files /dev/null and "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image1_hu1679d61f24ba8eaa74ecc6490bccaec2_147863_1344x0_resize_q100_h2_box.webp" differ diff --git "a/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image1_hu1679d61f24ba8eaa74ecc6490bccaec2_147863_abc40d40ef76d4885e189e8aa5cda019.webp" "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image1_hu1679d61f24ba8eaa74ecc6490bccaec2_147863_abc40d40ef76d4885e189e8aa5cda019.webp" new file mode 100644 index 00000000..a5293f23 Binary files /dev/null and "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image1_hu1679d61f24ba8eaa74ecc6490bccaec2_147863_abc40d40ef76d4885e189e8aa5cda019.webp" differ diff --git "a/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image1_hu1679d61f24ba8eaa74ecc6490bccaec2_147863_ca8d5ae978629cddedbd082cc55b7a36.webp" "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image1_hu1679d61f24ba8eaa74ecc6490bccaec2_147863_ca8d5ae978629cddedbd082cc55b7a36.webp" new file mode 100644 index 00000000..c4749a52 Binary files /dev/null and "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image1_hu1679d61f24ba8eaa74ecc6490bccaec2_147863_ca8d5ae978629cddedbd082cc55b7a36.webp" differ diff --git "a/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image1_hu1679d61f24ba8eaa74ecc6490bccaec2_147863_ea57382bcea14b7de4f090222ac1848d.webp" "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image1_hu1679d61f24ba8eaa74ecc6490bccaec2_147863_ea57382bcea14b7de4f090222ac1848d.webp" new file mode 100644 index 00000000..0a563156 Binary files /dev/null and "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image1_hu1679d61f24ba8eaa74ecc6490bccaec2_147863_ea57382bcea14b7de4f090222ac1848d.webp" differ diff --git a/content/en/docs/Linux Overview/3-so-sanh-linux/static/image2.jpg "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image2.jpg" similarity index 100% rename from content/en/docs/Linux Overview/3-so-sanh-linux/static/image2.jpg rename to "docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image2.jpg" diff --git "a/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image2_hu029325fb1a801cac62bb619841a34b6e_75206_680x0_resize_q100_h2_box.webp" "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image2_hu029325fb1a801cac62bb619841a34b6e_75206_680x0_resize_q100_h2_box.webp" new file mode 100644 index 00000000..345e4f75 Binary files /dev/null and "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image2_hu029325fb1a801cac62bb619841a34b6e_75206_680x0_resize_q100_h2_box.webp" differ diff --git "a/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image2_hu029325fb1a801cac62bb619841a34b6e_75206_933981ef7c2efa46afa479b5daf4ed8b.webp" "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image2_hu029325fb1a801cac62bb619841a34b6e_75206_933981ef7c2efa46afa479b5daf4ed8b.webp" new file mode 100644 index 00000000..04351cdd Binary files /dev/null and "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image2_hu029325fb1a801cac62bb619841a34b6e_75206_933981ef7c2efa46afa479b5daf4ed8b.webp" differ diff --git a/content/en/docs/Linux Overview/3-so-sanh-linux/static/image3.jpg "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image3.jpg" similarity index 100% rename from content/en/docs/Linux Overview/3-so-sanh-linux/static/image3.jpg rename to "docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image3.jpg" diff --git "a/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image3_hu243436bc4ef23e9eba188946614f2aab_404667_17e47c35ff2e89b16b933c1b19e3f225.webp" "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image3_hu243436bc4ef23e9eba188946614f2aab_404667_17e47c35ff2e89b16b933c1b19e3f225.webp" new file mode 100644 index 00000000..ae619746 Binary files /dev/null and "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image3_hu243436bc4ef23e9eba188946614f2aab_404667_17e47c35ff2e89b16b933c1b19e3f225.webp" differ diff --git "a/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image3_hu243436bc4ef23e9eba188946614f2aab_404667_1949x0_resize_q100_h2_box.webp" "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image3_hu243436bc4ef23e9eba188946614f2aab_404667_1949x0_resize_q100_h2_box.webp" new file mode 100644 index 00000000..8db06086 Binary files /dev/null and "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image3_hu243436bc4ef23e9eba188946614f2aab_404667_1949x0_resize_q100_h2_box.webp" differ diff --git "a/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image3_hu243436bc4ef23e9eba188946614f2aab_404667_5874ca949ce7b253c6898da1cf4c2506.webp" "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image3_hu243436bc4ef23e9eba188946614f2aab_404667_5874ca949ce7b253c6898da1cf4c2506.webp" new file mode 100644 index 00000000..8b5674e3 Binary files /dev/null and "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image3_hu243436bc4ef23e9eba188946614f2aab_404667_5874ca949ce7b253c6898da1cf4c2506.webp" differ diff --git "a/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image3_hu243436bc4ef23e9eba188946614f2aab_404667_6742fb638c2653778214a327445395a2.webp" "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image3_hu243436bc4ef23e9eba188946614f2aab_404667_6742fb638c2653778214a327445395a2.webp" new file mode 100644 index 00000000..d98372d6 Binary files /dev/null and "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image3_hu243436bc4ef23e9eba188946614f2aab_404667_6742fb638c2653778214a327445395a2.webp" differ diff --git "a/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image3_hu243436bc4ef23e9eba188946614f2aab_404667_827dc4107a7486abd864f70461c42db0.webp" "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image3_hu243436bc4ef23e9eba188946614f2aab_404667_827dc4107a7486abd864f70461c42db0.webp" new file mode 100644 index 00000000..1a8e27bb Binary files /dev/null and "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image3_hu243436bc4ef23e9eba188946614f2aab_404667_827dc4107a7486abd864f70461c42db0.webp" differ diff --git "a/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image3_hu243436bc4ef23e9eba188946614f2aab_404667_cd9ef2085e020feb2d5bd4d060b6a40a.webp" "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image3_hu243436bc4ef23e9eba188946614f2aab_404667_cd9ef2085e020feb2d5bd4d060b6a40a.webp" new file mode 100644 index 00000000..6a09acb0 Binary files /dev/null and "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image3_hu243436bc4ef23e9eba188946614f2aab_404667_cd9ef2085e020feb2d5bd4d060b6a40a.webp" differ diff --git a/content/en/docs/Linux Overview/3-so-sanh-linux/static/image4.jpg "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image4.jpg" similarity index 100% rename from content/en/docs/Linux Overview/3-so-sanh-linux/static/image4.jpg rename to "docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image4.jpg" diff --git "a/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image4_hu0c59c27f79fd1d78991d54d29e7a0231_348458_3b0b8131f7bd52b27d77611e7abe2f58.webp" "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image4_hu0c59c27f79fd1d78991d54d29e7a0231_348458_3b0b8131f7bd52b27d77611e7abe2f58.webp" new file mode 100644 index 00000000..395604a2 Binary files /dev/null and "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image4_hu0c59c27f79fd1d78991d54d29e7a0231_348458_3b0b8131f7bd52b27d77611e7abe2f58.webp" differ diff --git "a/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image4_hu0c59c27f79fd1d78991d54d29e7a0231_348458_596x0_resize_q100_h2_box.webp" "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image4_hu0c59c27f79fd1d78991d54d29e7a0231_348458_596x0_resize_q100_h2_box.webp" new file mode 100644 index 00000000..3d138c20 Binary files /dev/null and "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image4_hu0c59c27f79fd1d78991d54d29e7a0231_348458_596x0_resize_q100_h2_box.webp" differ diff --git a/content/en/docs/Linux Overview/3-so-sanh-linux/static/image5.jpg "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image5.jpg" similarity index 100% rename from content/en/docs/Linux Overview/3-so-sanh-linux/static/image5.jpg rename to "docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image5.jpg" diff --git "a/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image5_hu8231bbeb7c1f72c8ba764b406c86c07f_360170_4f48db0612a16e4cb785598e5b67d1eb.webp" "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image5_hu8231bbeb7c1f72c8ba764b406c86c07f_360170_4f48db0612a16e4cb785598e5b67d1eb.webp" new file mode 100644 index 00000000..0a8f1bda Binary files /dev/null and "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image5_hu8231bbeb7c1f72c8ba764b406c86c07f_360170_4f48db0612a16e4cb785598e5b67d1eb.webp" differ diff --git "a/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image5_hu8231bbeb7c1f72c8ba764b406c86c07f_360170_5ad6226ff6510f302bc5ecd79e1a90bb.webp" "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image5_hu8231bbeb7c1f72c8ba764b406c86c07f_360170_5ad6226ff6510f302bc5ecd79e1a90bb.webp" new file mode 100644 index 00000000..deee97d5 Binary files /dev/null and "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image5_hu8231bbeb7c1f72c8ba764b406c86c07f_360170_5ad6226ff6510f302bc5ecd79e1a90bb.webp" differ diff --git "a/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image5_hu8231bbeb7c1f72c8ba764b406c86c07f_360170_750x0_resize_q100_h2_box.webp" "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image5_hu8231bbeb7c1f72c8ba764b406c86c07f_360170_750x0_resize_q100_h2_box.webp" new file mode 100644 index 00000000..a1033353 Binary files /dev/null and "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image5_hu8231bbeb7c1f72c8ba764b406c86c07f_360170_750x0_resize_q100_h2_box.webp" differ diff --git a/content/en/docs/Linux Overview/3-so-sanh-linux/static/image6.jpg "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image6.jpg" similarity index 100% rename from content/en/docs/Linux Overview/3-so-sanh-linux/static/image6.jpg rename to "docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image6.jpg" diff --git a/content/en/docs/Linux Overview/3-so-sanh-linux/static/image7.jpg "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image7.jpg" similarity index 100% rename from content/en/docs/Linux Overview/3-so-sanh-linux/static/image7.jpg rename to "docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image7.jpg" diff --git "a/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image7_hucd6d454e57e1737c7e5b036871976aa4_14547_300x0_resize_q100_h2_box.webp" "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image7_hucd6d454e57e1737c7e5b036871976aa4_14547_300x0_resize_q100_h2_box.webp" new file mode 100644 index 00000000..975c4573 Binary files /dev/null and "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image7_hucd6d454e57e1737c7e5b036871976aa4_14547_300x0_resize_q100_h2_box.webp" differ diff --git a/content/en/docs/Linux Overview/3-so-sanh-linux/static/image8.jpg "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image8.jpg" similarity index 100% rename from content/en/docs/Linux Overview/3-so-sanh-linux/static/image8.jpg rename to "docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image8.jpg" diff --git "a/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image8_hu6b4a4b567fa8036b0e3451ff40cfa338_66530_720x0_resize_q100_h2_box.webp" "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image8_hu6b4a4b567fa8036b0e3451ff40cfa338_66530_720x0_resize_q100_h2_box.webp" new file mode 100644 index 00000000..61a641b8 Binary files /dev/null and "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image8_hu6b4a4b567fa8036b0e3451ff40cfa338_66530_720x0_resize_q100_h2_box.webp" differ diff --git "a/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image8_hu6b4a4b567fa8036b0e3451ff40cfa338_66530_92457942d21db05b45040599ee2b66ef.webp" "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image8_hu6b4a4b567fa8036b0e3451ff40cfa338_66530_92457942d21db05b45040599ee2b66ef.webp" new file mode 100644 index 00000000..9f73c0c2 Binary files /dev/null and "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image8_hu6b4a4b567fa8036b0e3451ff40cfa338_66530_92457942d21db05b45040599ee2b66ef.webp" differ diff --git "a/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image8_hu6b4a4b567fa8036b0e3451ff40cfa338_66530_ae88669d4c9a80570afb8c57811fe725.webp" "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image8_hu6b4a4b567fa8036b0e3451ff40cfa338_66530_ae88669d4c9a80570afb8c57811fe725.webp" new file mode 100644 index 00000000..99ada35e Binary files /dev/null and "b/docs/so-s\303\241nh-linux-v\341\273\233i-c\303\241c-h\341\273\207-\304\221i\341\273\201u-h\303\240nh-kh\303\241c/static/image8_hu6b4a4b567fa8036b0e3451ff40cfa338_66530_ae88669d4c9a80570afb8c57811fe725.webp" differ diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/index.html" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/index.html" new file mode 100644 index 00000000..e9a3e69d --- /dev/null +++ "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/index.html" @@ -0,0 +1,14 @@ +Tìm hiểu chung về Linux Distro Ubunchuu Trường Ú

Tìm hiểu chung về Linux Distro

Distro là từ viết tắt của linux distribution, có tên tiếng việt là phân phối của Linux.

1. Khái niệm Distro

  • Một bản phân phối của linux (hay distro) là một hệ điều hành được lập trình từ những tùy biến dựa trên nhân Linux. Những tùy biến này có thể giải thích đơn giản là sự thay đổi trong cách đóng gói packages bên trong hệ điều hành cùng với nhân Linux, cùng các công cụ GNU, thư viện cũng như tiện ích, ứng dụng khác nhau cho phù hợp với nhu cầu người sử dụng.
  • Bên trong một distro bao gồm:
    • Nhân Linux (kernel)
    • Tổng hợp các ứng dụng và tiện ích đã tùy biến
    • Trình cài đặt và quản lý packages

☘️ Ghi nhớ: Distro đơn giản là một phiên bản “biến hóa” của hệ điều hành dựa trên nhân linux, được tùy biến tùy theo nhu cầu của người sử dụng.

2. Các nhánh của linux và các bản phân phối

Linux được chia làm nhiều nhánh và các distro của nó được phát triển dựa trên từng nhánh riêng biệt này. +Linux hiện đang được chia làm các nhánh chính như sau:

Debian Based Linux Distributions

  • Debian: là nhánh mang hướng phi thương mại và là một trong những nhánh ra đời sớm nhất, được duy trì bởi cộng đồng phát triển mạnh mẽ. Có 3 nhánh chính của Debian được hỗ trợ dài hạn:
    • Nhánh ổn định: Đây là bản phát hành hiện tại, hướng tới độ tối ưu và ổn định một cách tối đa. Các phiên bản ổn định của Debian thường sẽ được phát hành sau một khoảng thời gian phiên bản thử nghiệm đã được nhà phát hành khắc phục gần hết lỗi lớn nhỏ (thường có chữ LTS).
    • Nhánh thử nghiệm: Đây là phiên bản tiếp theo của phiên bản ổn định ở hiện tại. Phiên bản thử nghiệm thường ẩn chứa nhiều lỗi trong hệ thống cùng packages không ổn định. Việc cập nhật lên phiên bản thử nghiệm quá sớm có thể khiến hệ thống của bạn không ổn định. Tuy nhiên đây cũng là lúc mà cộng đồng người dùng có thể đóng góp để giúp nhà phát hành khắc phục lỗi và cho ra thêm nhiều tính năng mới phù hợp với nhu cầu người dùng.
    • Nhánh không ổn định: Đây là nhánh được phát hành mà trong đó những packages chưa được thông qua kiểm tra nên sẽ tiêm ẩn nhiều nguy cơ xảy ra lỗi trong quá trình sử dụng.

Khám phá thêm về Debian tại đây.

  • Ubuntu: Được phát hành vào năm 2004, Ubuntu được dựa trên phiên bản không ổn định của Debian. Với sự phát triển, đóng góp của cộng đồng, Ubuntu đã và đang trở thành một trong những distro được sử dụng nhiều nhất. Ubuntu sử dụng giao diện đồ họa người dùng (GUI) GNOME (GNU Network Object Model Environment) mang đến một giao diện thân thiện với người dùng và chính nhờ vậy, đây là một distro phù hợp cho những người mới tiếp cận đến “Linux”.

Khám phá thêm về Ubuntu tại đây.

  • Linux Mint: Đây là một bản phân phối dựa trên Ubuntu. Linux Mint được đánh giá là có giao diện thân thiện nhất với người dùng Windows. Tương tự như các distro khác, Linux Mint có cộng đồng người dùng lớn, giúp cho distro này ngày càng phát triển mạnh và trở thành lựa chọn thay thế tốt cho Ubuntu.

Khám phá thêm về Linux Mint tại đây.

  • Kali linux: Là một bản phân phối dựa trên Debian, mục tiêu của nó là: tập hợp nhiều công cụ kiểm tra bảo mật và thâm nhập tốt nhất có thể trong một môi trường hệ điều hành. Bạn có thể tìm thấy nhanh gọn nhiều công cụ mã nguồn mở để thực hiện các quy trình kiểm thử (pentest), tấn công, điều tra số, dịch ngược, … Kali Linux là hệ điều hành ưa thích của nhiều hacker trên thế giới.

Khám phá thêm về Kali Linux tại đây.

RPM Based Linux Distributions

  • Fedora: là nhánh được phân phối phi thương mại được phát hành bởi Red Hat, được tạo ra nhằm kiểm thử các công nghệ cho một bản phân phối thương mại khác của Red Hat, nơi mà các phần mềm nguồn mở mới được tạo lập, phát triển và kiểm thử trong phiên bản miễn phí trước khi đưa tính năng ấy chính thức vào Red Hat Enterprise.

Khám phá thêm về Fedora tại đây.

  • OpenSUSE: Đây là một dự án mã nguồn mở với các bản phân phối dựa trên Linux do SUSE - một công ty phần mềm mã nguồn mở, đa quốc gia, có trụ sở tại Đức phát triển và kinh doanh Linux cho các khách hàng doanh nghiệp. OpenSuse được biết đến với cả KDE Desktop và Gnome Desktop mang đến sự đa dạng cho người dùng.

Khám phá thêm về OpenSuse tại đây.

  • CentOS: CentOS là một dự án mã nguồn mở được phát triển bởi Red Hat, Inc. là một công ty phần mềm Mỹ cung cấp sản phẩm phần mềm mã nguồn mở cho cộng đồng doanh nghiệp. CentOS sở hữu hai bản phân phối riêng biệt: CentOS Stream và CentOS Linux. CentOS Stream là nền tảng phát triển cho những bản phân phối Linux trong tương lai của Red Hat® Enterprise.

Khám phá thêm về CentOS tại đây.

Một số bản phân phối khác

  • Slackware: là nhánh đầu tiên được phân phối trên nhân linux. Slackware không có trình quản lý packages và tất cả phần mềm được biên dịch bởi quản trị viên hệ thống hoặc người dùng bình thường của hệ thống.

Khám phá thêm về Slackware tại đây.

  • Arch Linux: một bản phân phối nhắm vào những người dùng Linux có kinh nghiệm và được duy trì bởi một cộng đồng mạnh mẽ trên tinh thần tình nguyện, cung cấp các packages chính thức và một loạt các packages không chính thức do người dùng gửi. Các packages thường được định hình để cài đặt bởi một tệp văn bản gọi là PKGBUILD (Ubunchuu sẽ có một chủ đề riêng tất tần tật về Arch Linux).

Khám phá thêm về Arch Linux tại đây.

💡 Hint: Hãy cân nhắc chọn một Distro phù hợp với mình và có mục đích sử dụng phù hợp với nhu cầu của mình.

Không cần là người tốt nhất, chỉ cần đó là người phù hợp nhất.


+ + + + +
Top
\ No newline at end of file diff --git a/content/en/docs/Linux Distribution/1-gioi-thieu-distro/static/arch.png "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/arch.png" similarity index 100% rename from content/en/docs/Linux Distribution/1-gioi-thieu-distro/static/arch.png rename to "docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/arch.png" diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/arch_hu58acdbde523c2c2a6ad130b6b3040edc_823085_1366x0_resize_q100_h2_box_3.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/arch_hu58acdbde523c2c2a6ad130b6b3040edc_823085_1366x0_resize_q100_h2_box_3.webp" new file mode 100644 index 00000000..e87b41a2 Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/arch_hu58acdbde523c2c2a6ad130b6b3040edc_823085_1366x0_resize_q100_h2_box_3.webp" differ diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/arch_hu58acdbde523c2c2a6ad130b6b3040edc_823085_2435fa195efea4dc95e4c2a40b08bc9a.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/arch_hu58acdbde523c2c2a6ad130b6b3040edc_823085_2435fa195efea4dc95e4c2a40b08bc9a.webp" new file mode 100644 index 00000000..847ad650 Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/arch_hu58acdbde523c2c2a6ad130b6b3040edc_823085_2435fa195efea4dc95e4c2a40b08bc9a.webp" differ diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/arch_hu58acdbde523c2c2a6ad130b6b3040edc_823085_b3d7e390c2d7d9ff101d89e553d63ad5.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/arch_hu58acdbde523c2c2a6ad130b6b3040edc_823085_b3d7e390c2d7d9ff101d89e553d63ad5.webp" new file mode 100644 index 00000000..cb2d9ad9 Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/arch_hu58acdbde523c2c2a6ad130b6b3040edc_823085_b3d7e390c2d7d9ff101d89e553d63ad5.webp" differ diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/arch_hu58acdbde523c2c2a6ad130b6b3040edc_823085_b559a58c8511d2787d9dc2d5d6b07b45.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/arch_hu58acdbde523c2c2a6ad130b6b3040edc_823085_b559a58c8511d2787d9dc2d5d6b07b45.webp" new file mode 100644 index 00000000..0971a67a Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/arch_hu58acdbde523c2c2a6ad130b6b3040edc_823085_b559a58c8511d2787d9dc2d5d6b07b45.webp" differ diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/arch_hu58acdbde523c2c2a6ad130b6b3040edc_823085_d6cd3d3b32695a7ec64091a760c4a86f.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/arch_hu58acdbde523c2c2a6ad130b6b3040edc_823085_d6cd3d3b32695a7ec64091a760c4a86f.webp" new file mode 100644 index 00000000..94c0dd7a Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/arch_hu58acdbde523c2c2a6ad130b6b3040edc_823085_d6cd3d3b32695a7ec64091a760c4a86f.webp" differ diff --git a/content/en/docs/Linux Distribution/1-gioi-thieu-distro/static/branches.png "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/branches.png" similarity index 100% rename from content/en/docs/Linux Distribution/1-gioi-thieu-distro/static/branches.png rename to "docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/branches.png" diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/branches_hu96025411f64969d1de3b9dda6aa712a4_33877_602x0_resize_q100_h2_box_3.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/branches_hu96025411f64969d1de3b9dda6aa712a4_33877_602x0_resize_q100_h2_box_3.webp" new file mode 100644 index 00000000..f3fcb47e Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/branches_hu96025411f64969d1de3b9dda6aa712a4_33877_602x0_resize_q100_h2_box_3.webp" differ diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/branches_hu96025411f64969d1de3b9dda6aa712a4_33877_e931c16619d19ba874a70c40367ba5b2.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/branches_hu96025411f64969d1de3b9dda6aa712a4_33877_e931c16619d19ba874a70c40367ba5b2.webp" new file mode 100644 index 00000000..cc1d15ad Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/branches_hu96025411f64969d1de3b9dda6aa712a4_33877_e931c16619d19ba874a70c40367ba5b2.webp" differ diff --git a/content/en/docs/Linux Distribution/1-gioi-thieu-distro/static/centos.png "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/centos.png" similarity index 100% rename from content/en/docs/Linux Distribution/1-gioi-thieu-distro/static/centos.png rename to "docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/centos.png" diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/centos_hu5ee18ff3dd8c8c0d0c2048b8edd753b7_330972_1400x0_resize_q100_h2_box_3.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/centos_hu5ee18ff3dd8c8c0d0c2048b8edd753b7_330972_1400x0_resize_q100_h2_box_3.webp" new file mode 100644 index 00000000..4eb4b7fd Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/centos_hu5ee18ff3dd8c8c0d0c2048b8edd753b7_330972_1400x0_resize_q100_h2_box_3.webp" differ diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/centos_hu5ee18ff3dd8c8c0d0c2048b8edd753b7_330972_141035f666ef772ad5a3c7fc645fad20.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/centos_hu5ee18ff3dd8c8c0d0c2048b8edd753b7_330972_141035f666ef772ad5a3c7fc645fad20.webp" new file mode 100644 index 00000000..0d4a69dc Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/centos_hu5ee18ff3dd8c8c0d0c2048b8edd753b7_330972_141035f666ef772ad5a3c7fc645fad20.webp" differ diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/centos_hu5ee18ff3dd8c8c0d0c2048b8edd753b7_330972_8552ec06266842e2a799d51eccf191da.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/centos_hu5ee18ff3dd8c8c0d0c2048b8edd753b7_330972_8552ec06266842e2a799d51eccf191da.webp" new file mode 100644 index 00000000..29203f3f Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/centos_hu5ee18ff3dd8c8c0d0c2048b8edd753b7_330972_8552ec06266842e2a799d51eccf191da.webp" differ diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/centos_hu5ee18ff3dd8c8c0d0c2048b8edd753b7_330972_c8e07427e525555e88c957037e7eac14.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/centos_hu5ee18ff3dd8c8c0d0c2048b8edd753b7_330972_c8e07427e525555e88c957037e7eac14.webp" new file mode 100644 index 00000000..f805023e Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/centos_hu5ee18ff3dd8c8c0d0c2048b8edd753b7_330972_c8e07427e525555e88c957037e7eac14.webp" differ diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/centos_hu5ee18ff3dd8c8c0d0c2048b8edd753b7_330972_d7cc8b216b637990c1310bdb7ee7ee61.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/centos_hu5ee18ff3dd8c8c0d0c2048b8edd753b7_330972_d7cc8b216b637990c1310bdb7ee7ee61.webp" new file mode 100644 index 00000000..d2fe0913 Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/centos_hu5ee18ff3dd8c8c0d0c2048b8edd753b7_330972_d7cc8b216b637990c1310bdb7ee7ee61.webp" differ diff --git a/content/en/docs/Linux Distribution/1-gioi-thieu-distro/static/dedian.png "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/dedian.png" similarity index 100% rename from content/en/docs/Linux Distribution/1-gioi-thieu-distro/static/dedian.png rename to "docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/dedian.png" diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/dedian_hufb5a4786d3ea2d32b4bc2229e38c72bf_106559_1216702b4f9a68fe9050c17767dc4fa1.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/dedian_hufb5a4786d3ea2d32b4bc2229e38c72bf_106559_1216702b4f9a68fe9050c17767dc4fa1.webp" new file mode 100644 index 00000000..71629971 Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/dedian_hufb5a4786d3ea2d32b4bc2229e38c72bf_106559_1216702b4f9a68fe9050c17767dc4fa1.webp" differ diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/dedian_hufb5a4786d3ea2d32b4bc2229e38c72bf_106559_1366x0_resize_q100_h2_box_3.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/dedian_hufb5a4786d3ea2d32b4bc2229e38c72bf_106559_1366x0_resize_q100_h2_box_3.webp" new file mode 100644 index 00000000..edaf9d6d Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/dedian_hufb5a4786d3ea2d32b4bc2229e38c72bf_106559_1366x0_resize_q100_h2_box_3.webp" differ diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/dedian_hufb5a4786d3ea2d32b4bc2229e38c72bf_106559_28464cb90149b1b513dc4376d36b07c5.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/dedian_hufb5a4786d3ea2d32b4bc2229e38c72bf_106559_28464cb90149b1b513dc4376d36b07c5.webp" new file mode 100644 index 00000000..7409d46c Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/dedian_hufb5a4786d3ea2d32b4bc2229e38c72bf_106559_28464cb90149b1b513dc4376d36b07c5.webp" differ diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/dedian_hufb5a4786d3ea2d32b4bc2229e38c72bf_106559_8b5ea0c62177d0ea3da3ab675ecb4e50.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/dedian_hufb5a4786d3ea2d32b4bc2229e38c72bf_106559_8b5ea0c62177d0ea3da3ab675ecb4e50.webp" new file mode 100644 index 00000000..e36f312e Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/dedian_hufb5a4786d3ea2d32b4bc2229e38c72bf_106559_8b5ea0c62177d0ea3da3ab675ecb4e50.webp" differ diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/dedian_hufb5a4786d3ea2d32b4bc2229e38c72bf_106559_a8b6d429beb79a4a17922a7d8893ee71.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/dedian_hufb5a4786d3ea2d32b4bc2229e38c72bf_106559_a8b6d429beb79a4a17922a7d8893ee71.webp" new file mode 100644 index 00000000..67de7447 Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/dedian_hufb5a4786d3ea2d32b4bc2229e38c72bf_106559_a8b6d429beb79a4a17922a7d8893ee71.webp" differ diff --git a/content/en/docs/Linux Distribution/1-gioi-thieu-distro/static/fedora.jpg "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/fedora.jpg" similarity index 100% rename from content/en/docs/Linux Distribution/1-gioi-thieu-distro/static/fedora.jpg rename to "docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/fedora.jpg" diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/fedora_huc343134717530fa7a552034567dc4b95_119115_1920x0_resize_q100_h2_box.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/fedora_huc343134717530fa7a552034567dc4b95_119115_1920x0_resize_q100_h2_box.webp" new file mode 100644 index 00000000..3660e6a9 Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/fedora_huc343134717530fa7a552034567dc4b95_119115_1920x0_resize_q100_h2_box.webp" differ diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/fedora_huc343134717530fa7a552034567dc4b95_119115_b06f9c7eecb06ed66d66f4b83311df9e.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/fedora_huc343134717530fa7a552034567dc4b95_119115_b06f9c7eecb06ed66d66f4b83311df9e.webp" new file mode 100644 index 00000000..0b6936a3 Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/fedora_huc343134717530fa7a552034567dc4b95_119115_b06f9c7eecb06ed66d66f4b83311df9e.webp" differ diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/fedora_huc343134717530fa7a552034567dc4b95_119115_b19f3d8fdf866822c2b216adac7d081b.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/fedora_huc343134717530fa7a552034567dc4b95_119115_b19f3d8fdf866822c2b216adac7d081b.webp" new file mode 100644 index 00000000..9ed18c7a Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/fedora_huc343134717530fa7a552034567dc4b95_119115_b19f3d8fdf866822c2b216adac7d081b.webp" differ diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/fedora_huc343134717530fa7a552034567dc4b95_119115_c6f10904883caa6e08ecddfa53805cfc.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/fedora_huc343134717530fa7a552034567dc4b95_119115_c6f10904883caa6e08ecddfa53805cfc.webp" new file mode 100644 index 00000000..008c7338 Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/fedora_huc343134717530fa7a552034567dc4b95_119115_c6f10904883caa6e08ecddfa53805cfc.webp" differ diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/fedora_huc343134717530fa7a552034567dc4b95_119115_da2739639c4e71fed8cf2a1bbb2da85b.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/fedora_huc343134717530fa7a552034567dc4b95_119115_da2739639c4e71fed8cf2a1bbb2da85b.webp" new file mode 100644 index 00000000..d95cbcaa Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/fedora_huc343134717530fa7a552034567dc4b95_119115_da2739639c4e71fed8cf2a1bbb2da85b.webp" differ diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/fedora_huc343134717530fa7a552034567dc4b95_119115_ff780900666ca655a3924e2213f5d3d0.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/fedora_huc343134717530fa7a552034567dc4b95_119115_ff780900666ca655a3924e2213f5d3d0.webp" new file mode 100644 index 00000000..f041483c Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/fedora_huc343134717530fa7a552034567dc4b95_119115_ff780900666ca655a3924e2213f5d3d0.webp" differ diff --git a/content/en/docs/Linux Distribution/1-gioi-thieu-distro/static/kali.png "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/kali.png" similarity index 100% rename from content/en/docs/Linux Distribution/1-gioi-thieu-distro/static/kali.png rename to "docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/kali.png" diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/kali_hu5d5ca29a4f501c6a7d7114de6082ce65_591928_1477x0_resize_q100_h2_box_3.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/kali_hu5d5ca29a4f501c6a7d7114de6082ce65_591928_1477x0_resize_q100_h2_box_3.webp" new file mode 100644 index 00000000..33a42e97 Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/kali_hu5d5ca29a4f501c6a7d7114de6082ce65_591928_1477x0_resize_q100_h2_box_3.webp" differ diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/kali_hu5d5ca29a4f501c6a7d7114de6082ce65_591928_2350f44f36939365d5d3e4b83a35cc88.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/kali_hu5d5ca29a4f501c6a7d7114de6082ce65_591928_2350f44f36939365d5d3e4b83a35cc88.webp" new file mode 100644 index 00000000..5cfde821 Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/kali_hu5d5ca29a4f501c6a7d7114de6082ce65_591928_2350f44f36939365d5d3e4b83a35cc88.webp" differ diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/kali_hu5d5ca29a4f501c6a7d7114de6082ce65_591928_2a8393ebbae35da1c42ccde14bc13895.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/kali_hu5d5ca29a4f501c6a7d7114de6082ce65_591928_2a8393ebbae35da1c42ccde14bc13895.webp" new file mode 100644 index 00000000..f1af7850 Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/kali_hu5d5ca29a4f501c6a7d7114de6082ce65_591928_2a8393ebbae35da1c42ccde14bc13895.webp" differ diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/kali_hu5d5ca29a4f501c6a7d7114de6082ce65_591928_3fefb6138908a0901342b3027af2983e.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/kali_hu5d5ca29a4f501c6a7d7114de6082ce65_591928_3fefb6138908a0901342b3027af2983e.webp" new file mode 100644 index 00000000..625b2544 Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/kali_hu5d5ca29a4f501c6a7d7114de6082ce65_591928_3fefb6138908a0901342b3027af2983e.webp" differ diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/kali_hu5d5ca29a4f501c6a7d7114de6082ce65_591928_c8ec36e03e96042eeae7f41e36b7fe4d.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/kali_hu5d5ca29a4f501c6a7d7114de6082ce65_591928_c8ec36e03e96042eeae7f41e36b7fe4d.webp" new file mode 100644 index 00000000..835c5f40 Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/kali_hu5d5ca29a4f501c6a7d7114de6082ce65_591928_c8ec36e03e96042eeae7f41e36b7fe4d.webp" differ diff --git a/content/en/docs/Linux Distribution/1-gioi-thieu-distro/static/mint.png "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/mint.png" similarity index 100% rename from content/en/docs/Linux Distribution/1-gioi-thieu-distro/static/mint.png rename to "docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/mint.png" diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/mint_hud2b3b49f5fcea28a148f53617a1471c2_81082_1920x0_resize_q100_h2_box_3.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/mint_hud2b3b49f5fcea28a148f53617a1471c2_81082_1920x0_resize_q100_h2_box_3.webp" new file mode 100644 index 00000000..d697b887 Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/mint_hud2b3b49f5fcea28a148f53617a1471c2_81082_1920x0_resize_q100_h2_box_3.webp" differ diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/mint_hud2b3b49f5fcea28a148f53617a1471c2_81082_197aa17ddaa7fc93e90f0d57928c10dc.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/mint_hud2b3b49f5fcea28a148f53617a1471c2_81082_197aa17ddaa7fc93e90f0d57928c10dc.webp" new file mode 100644 index 00000000..82036859 Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/mint_hud2b3b49f5fcea28a148f53617a1471c2_81082_197aa17ddaa7fc93e90f0d57928c10dc.webp" differ diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/mint_hud2b3b49f5fcea28a148f53617a1471c2_81082_3178eab9c344a849913713345a592980.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/mint_hud2b3b49f5fcea28a148f53617a1471c2_81082_3178eab9c344a849913713345a592980.webp" new file mode 100644 index 00000000..3870e327 Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/mint_hud2b3b49f5fcea28a148f53617a1471c2_81082_3178eab9c344a849913713345a592980.webp" differ diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/mint_hud2b3b49f5fcea28a148f53617a1471c2_81082_9a3a886c48e8ddec51d41537c121ad0b.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/mint_hud2b3b49f5fcea28a148f53617a1471c2_81082_9a3a886c48e8ddec51d41537c121ad0b.webp" new file mode 100644 index 00000000..8442fee7 Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/mint_hud2b3b49f5fcea28a148f53617a1471c2_81082_9a3a886c48e8ddec51d41537c121ad0b.webp" differ diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/mint_hud2b3b49f5fcea28a148f53617a1471c2_81082_cfb951cc113ccb3ba9c9d07d54eb25f4.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/mint_hud2b3b49f5fcea28a148f53617a1471c2_81082_cfb951cc113ccb3ba9c9d07d54eb25f4.webp" new file mode 100644 index 00000000..794ce80d Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/mint_hud2b3b49f5fcea28a148f53617a1471c2_81082_cfb951cc113ccb3ba9c9d07d54eb25f4.webp" differ diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/mint_hud2b3b49f5fcea28a148f53617a1471c2_81082_e79f7f577069b025fe7b8353b76ce2a4.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/mint_hud2b3b49f5fcea28a148f53617a1471c2_81082_e79f7f577069b025fe7b8353b76ce2a4.webp" new file mode 100644 index 00000000..e4afe6c1 Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/mint_hud2b3b49f5fcea28a148f53617a1471c2_81082_e79f7f577069b025fe7b8353b76ce2a4.webp" differ diff --git a/content/en/docs/Linux Distribution/1-gioi-thieu-distro/static/opensuse.png "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/opensuse.png" similarity index 100% rename from content/en/docs/Linux Distribution/1-gioi-thieu-distro/static/opensuse.png rename to "docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/opensuse.png" diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/opensuse_hu9ae0b8f4dec3db260b0906946cf05824_418308_0e5218bd51c772ff1601cb6e3adba365.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/opensuse_hu9ae0b8f4dec3db260b0906946cf05824_418308_0e5218bd51c772ff1601cb6e3adba365.webp" new file mode 100644 index 00000000..0a2ea5fa Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/opensuse_hu9ae0b8f4dec3db260b0906946cf05824_418308_0e5218bd51c772ff1601cb6e3adba365.webp" differ diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/opensuse_hu9ae0b8f4dec3db260b0906946cf05824_418308_1280x0_resize_q100_h2_box_3.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/opensuse_hu9ae0b8f4dec3db260b0906946cf05824_418308_1280x0_resize_q100_h2_box_3.webp" new file mode 100644 index 00000000..dd244658 Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/opensuse_hu9ae0b8f4dec3db260b0906946cf05824_418308_1280x0_resize_q100_h2_box_3.webp" differ diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/opensuse_hu9ae0b8f4dec3db260b0906946cf05824_418308_1a23a4b18767c9e1419e0185707edf24.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/opensuse_hu9ae0b8f4dec3db260b0906946cf05824_418308_1a23a4b18767c9e1419e0185707edf24.webp" new file mode 100644 index 00000000..9e807764 Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/opensuse_hu9ae0b8f4dec3db260b0906946cf05824_418308_1a23a4b18767c9e1419e0185707edf24.webp" differ diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/opensuse_hu9ae0b8f4dec3db260b0906946cf05824_418308_748ec0f7a84538f657aa47766a4b96e7.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/opensuse_hu9ae0b8f4dec3db260b0906946cf05824_418308_748ec0f7a84538f657aa47766a4b96e7.webp" new file mode 100644 index 00000000..baea8afa Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/opensuse_hu9ae0b8f4dec3db260b0906946cf05824_418308_748ec0f7a84538f657aa47766a4b96e7.webp" differ diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/opensuse_hu9ae0b8f4dec3db260b0906946cf05824_418308_ae1ec0c396f1050cc9da4da96a15e20d.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/opensuse_hu9ae0b8f4dec3db260b0906946cf05824_418308_ae1ec0c396f1050cc9da4da96a15e20d.webp" new file mode 100644 index 00000000..fc1920de Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/opensuse_hu9ae0b8f4dec3db260b0906946cf05824_418308_ae1ec0c396f1050cc9da4da96a15e20d.webp" differ diff --git a/content/en/docs/Linux Distribution/1-gioi-thieu-distro/static/slackware.png "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/slackware.png" similarity index 100% rename from content/en/docs/Linux Distribution/1-gioi-thieu-distro/static/slackware.png rename to "docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/slackware.png" diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/slackware_hucaa2debfe7f342af66696871d2f1f680_589002_1200x0_resize_q100_h2_box_3.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/slackware_hucaa2debfe7f342af66696871d2f1f680_589002_1200x0_resize_q100_h2_box_3.webp" new file mode 100644 index 00000000..7dca1c56 Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/slackware_hucaa2debfe7f342af66696871d2f1f680_589002_1200x0_resize_q100_h2_box_3.webp" differ diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/slackware_hucaa2debfe7f342af66696871d2f1f680_589002_5fc45deb0e8c6b40eb3983d93d5be958.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/slackware_hucaa2debfe7f342af66696871d2f1f680_589002_5fc45deb0e8c6b40eb3983d93d5be958.webp" new file mode 100644 index 00000000..846c9cbf Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/slackware_hucaa2debfe7f342af66696871d2f1f680_589002_5fc45deb0e8c6b40eb3983d93d5be958.webp" differ diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/slackware_hucaa2debfe7f342af66696871d2f1f680_589002_9c702eb3417ba299c5c2d2bd6857f82f.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/slackware_hucaa2debfe7f342af66696871d2f1f680_589002_9c702eb3417ba299c5c2d2bd6857f82f.webp" new file mode 100644 index 00000000..b089c63e Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/slackware_hucaa2debfe7f342af66696871d2f1f680_589002_9c702eb3417ba299c5c2d2bd6857f82f.webp" differ diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/slackware_hucaa2debfe7f342af66696871d2f1f680_589002_deb86b7db2f291ed54524c45bce15838.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/slackware_hucaa2debfe7f342af66696871d2f1f680_589002_deb86b7db2f291ed54524c45bce15838.webp" new file mode 100644 index 00000000..6bf41fe3 Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/slackware_hucaa2debfe7f342af66696871d2f1f680_589002_deb86b7db2f291ed54524c45bce15838.webp" differ diff --git a/content/en/docs/Linux Distribution/1-gioi-thieu-distro/static/ubuntu.png "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/ubuntu.png" similarity index 100% rename from content/en/docs/Linux Distribution/1-gioi-thieu-distro/static/ubuntu.png rename to "docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/ubuntu.png" diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/ubuntu_hu8231bbeb7c1f72c8ba764b406c86c07f_360170_42fa2adfa43e570209f55dc86166501c.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/ubuntu_hu8231bbeb7c1f72c8ba764b406c86c07f_360170_42fa2adfa43e570209f55dc86166501c.webp" new file mode 100644 index 00000000..0a8f1bda Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/ubuntu_hu8231bbeb7c1f72c8ba764b406c86c07f_360170_42fa2adfa43e570209f55dc86166501c.webp" differ diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/ubuntu_hu8231bbeb7c1f72c8ba764b406c86c07f_360170_750x0_resize_q100_h2_box_3.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/ubuntu_hu8231bbeb7c1f72c8ba764b406c86c07f_360170_750x0_resize_q100_h2_box_3.webp" new file mode 100644 index 00000000..a1033353 Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/ubuntu_hu8231bbeb7c1f72c8ba764b406c86c07f_360170_750x0_resize_q100_h2_box_3.webp" differ diff --git "a/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/ubuntu_hu8231bbeb7c1f72c8ba764b406c86c07f_360170_ac85ef500943835b2adf28b9c61c6a72.webp" "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/ubuntu_hu8231bbeb7c1f72c8ba764b406c86c07f_360170_ac85ef500943835b2adf28b9c61c6a72.webp" new file mode 100644 index 00000000..deee97d5 Binary files /dev/null and "b/docs/t\303\254m-hi\341\273\203u-chung-v\341\273\201-linux-distro/static/ubuntu_hu8231bbeb7c1f72c8ba764b406c86c07f_360170_ac85ef500943835b2adf28b9c61c6a72.webp" differ diff --git "a/docs/v\303\254-sao-n\303\252n-s\341\273\255-d\341\273\245ng-linux/index.html" "b/docs/v\303\254-sao-n\303\252n-s\341\273\255-d\341\273\245ng-linux/index.html" new file mode 100644 index 00000000..ba9af14e --- /dev/null +++ "b/docs/v\303\254-sao-n\303\252n-s\341\273\255-d\341\273\245ng-linux/index.html" @@ -0,0 +1,25 @@ +Vì sao nên sử dụng Linux Ubunchuu Trường Ú

Vì sao nên sử dụng Linux

1. Thiên đường mã nguồn mở

Khi bạn quá mệt với các yêu cầu trả tiền bản quyền các ứng dụng, hay thậm chí là bản quyền cho chính hệ điều hành của bạn? +Linux là dành cho bạn, nơi mà mọi người chỉ cần clone về mọi thứ một cách miễn phí. +Ngoài ra nó còn có điểm cộng nữa là bạn có thể xem được bên trong source của chúng có những gì, thông qua đó, ta có thể dễ dàng tùy biến chúng.

2. Thích hợp cho “dân code” (developers)

Tốc độ compile, debug bằng các ngôn ngữ lập trình trên Linux nhanh hơn nhiều so với các hệ điều hành khác. +Thích hợp hoàn hảo dành cho dân code chính hiệu. +Ảnh dưới so sánh tốc độ compile một file C++ 1000 dòng code, sample size = 1000 lần.

3. Bảo mật an toàn

Điều này dễ hiểu vì khi cài đặt hay thực thi bất cứ thứ gì trong Linux bạn cũng sẽ cần sự cấp phép “superuser", và cũng nhờ cơ chế phân quyền tài khoản, cách linux tổ chức quản lí file trên hệ thống,… +Như chúng ta đã biết, các hệ điều hành khác sẽ dễ bị tấn công bởi các kiểu tấn công khác nhau (hoặc bị khai thác các lỗ hổng zero-day). +Tuy không phải là bất khả xâm phạm nhưng theo những thống kê cho thấy: số lượng các cuộc tấn công hay mã độc chủ yếu xảy ra với các server chạy Windows. +Linux không phải là tượng đài bất khả xâm phạm nhưng chắc chắn nó an toàn hơn windows mặc cho các công nghệ tường lửa trên windows ngày một phát triển (thật ra không ai rảnh mà viết malware hay virus cho linux cả).

4. Cấu hình siêu nhẹ, hiệu suất cao

Cấu hình mà Linux yêu cầu là rất thấp, thấp hơn rất nhiều so với các OS khác như macOS hay Windows. +Thực tế ta thấy nhiều người có máy tính chỉ với 1GB RAM chạy linux trên chip Pentium vẫn ổn định mượt mà, với cấu hình tương tự chúng ta sẽ gặp nhiều khó khăn khi thực hiện các thao tác thông thường trên Windows. +Vì thế, không phải lo về việc Linux chiếm bao nhiêu dung lượng hay đòi hỏi cấu hình ra sao, cho dù máy tính bạn chỉ còn trống vài chục GB và có cấu hình từ đời “tống", thì nó vẫn chạy rất tốt Linux.

Yêu cầu tối thiểu của Linux (Distro: Arch):

  • RAM: 512 MB (recommended 2 GB).
  • Trống ít nhất 1GB ổ đĩa (recommended 20 GB).
  • Có kết nối Internet

5. Khả năng tùy biến cao

Linux mang lại cho người dùng khả năng “thiên biến vạn hóa” trên chính hệ điều hành của mình, từ custom giao diện (hay còn gọi là “RICE”), config terminal, config hệ thống, v.v… +Nhưng sẽ còn tùy thuộc vào thẩm mỹ của người mình (Tux sẽ có thêm chi tiết về custom giao diện Linux chi tiết cho các bạn sau).

6. Cộng đồng hỗ trợ đông đảo

Khi sử dụng Linux, nếu bạn đang có thắc mắc hay chiếc máy tính chạy Linux của bạn không may gặp phải gì đó. +Thay vì phải đem ra tiệm và bị ép cài win lại như máy Win (xong bị thu phí vài trăm ngàn), hoặc bị tư vấn và phải mua hẳn một cái máy mới như macbook, thì ta chỉ cần search google hay tra stackoverflow để biết được mọi giải pháp cho mọi vấn đề fix mọi thứ, các trang cộng đồng linux như ITS-FOSS, hoặc như ở đây, các bạn có UBUNCHUU, mọi người luôn luôn welcome và cởi mở để giúp đỡ nhau. +Chỉ cần với tinh thần ham học hỏi, không việc gì là khó với chúng mình cả.

+ + + + +
Top
\ No newline at end of file diff --git a/content/en/docs/Linux Overview/2-vi-sao-linux/static/compile-time.png "b/docs/v\303\254-sao-n\303\252n-s\341\273\255-d\341\273\245ng-linux/static/compile-time.png" similarity index 100% rename from content/en/docs/Linux Overview/2-vi-sao-linux/static/compile-time.png rename to "docs/v\303\254-sao-n\303\252n-s\341\273\255-d\341\273\245ng-linux/static/compile-time.png" diff --git "a/docs/v\303\254-sao-n\303\252n-s\341\273\255-d\341\273\245ng-linux/static/compile-time_hu19feee880625a037602f235a3db4fee7_18439_10a718f49aa2723d42913290b5586d77.webp" "b/docs/v\303\254-sao-n\303\252n-s\341\273\255-d\341\273\245ng-linux/static/compile-time_hu19feee880625a037602f235a3db4fee7_18439_10a718f49aa2723d42913290b5586d77.webp" new file mode 100644 index 00000000..ad4dbe7e Binary files /dev/null and "b/docs/v\303\254-sao-n\303\252n-s\341\273\255-d\341\273\245ng-linux/static/compile-time_hu19feee880625a037602f235a3db4fee7_18439_10a718f49aa2723d42913290b5586d77.webp" differ diff --git "a/docs/v\303\254-sao-n\303\252n-s\341\273\255-d\341\273\245ng-linux/static/compile-time_hu19feee880625a037602f235a3db4fee7_18439_1132x0_resize_q100_h2_box_3.webp" "b/docs/v\303\254-sao-n\303\252n-s\341\273\255-d\341\273\245ng-linux/static/compile-time_hu19feee880625a037602f235a3db4fee7_18439_1132x0_resize_q100_h2_box_3.webp" new file mode 100644 index 00000000..466e08d5 Binary files /dev/null and "b/docs/v\303\254-sao-n\303\252n-s\341\273\255-d\341\273\245ng-linux/static/compile-time_hu19feee880625a037602f235a3db4fee7_18439_1132x0_resize_q100_h2_box_3.webp" differ diff --git "a/docs/v\303\254-sao-n\303\252n-s\341\273\255-d\341\273\245ng-linux/static/compile-time_hu19feee880625a037602f235a3db4fee7_18439_638331f652a5a90c2505998ee24ec1f5.webp" "b/docs/v\303\254-sao-n\303\252n-s\341\273\255-d\341\273\245ng-linux/static/compile-time_hu19feee880625a037602f235a3db4fee7_18439_638331f652a5a90c2505998ee24ec1f5.webp" new file mode 100644 index 00000000..5ae472ab Binary files /dev/null and "b/docs/v\303\254-sao-n\303\252n-s\341\273\255-d\341\273\245ng-linux/static/compile-time_hu19feee880625a037602f235a3db4fee7_18439_638331f652a5a90c2505998ee24ec1f5.webp" differ diff --git "a/docs/v\303\254-sao-n\303\252n-s\341\273\255-d\341\273\245ng-linux/static/compile-time_hu19feee880625a037602f235a3db4fee7_18439_8ecec6e951c461399f600b28e83b8706.webp" "b/docs/v\303\254-sao-n\303\252n-s\341\273\255-d\341\273\245ng-linux/static/compile-time_hu19feee880625a037602f235a3db4fee7_18439_8ecec6e951c461399f600b28e83b8706.webp" new file mode 100644 index 00000000..208b37dd Binary files /dev/null and "b/docs/v\303\254-sao-n\303\252n-s\341\273\255-d\341\273\245ng-linux/static/compile-time_hu19feee880625a037602f235a3db4fee7_18439_8ecec6e951c461399f600b28e83b8706.webp" differ diff --git a/content/en/docs/Linux Overview/2-vi-sao-linux/static/rice-sample.jpg "b/docs/v\303\254-sao-n\303\252n-s\341\273\255-d\341\273\245ng-linux/static/rice-sample.jpg" similarity index 100% rename from content/en/docs/Linux Overview/2-vi-sao-linux/static/rice-sample.jpg rename to "docs/v\303\254-sao-n\303\252n-s\341\273\255-d\341\273\245ng-linux/static/rice-sample.jpg" diff --git "a/docs/v\303\254-sao-n\303\252n-s\341\273\255-d\341\273\245ng-linux/static/rice-sample_hu958631c4899c9a640f51152e4a678959_124281_1200x0_resize_q100_h2_box.webp" "b/docs/v\303\254-sao-n\303\252n-s\341\273\255-d\341\273\245ng-linux/static/rice-sample_hu958631c4899c9a640f51152e4a678959_124281_1200x0_resize_q100_h2_box.webp" new file mode 100644 index 00000000..abf0d317 Binary files /dev/null and "b/docs/v\303\254-sao-n\303\252n-s\341\273\255-d\341\273\245ng-linux/static/rice-sample_hu958631c4899c9a640f51152e4a678959_124281_1200x0_resize_q100_h2_box.webp" differ diff --git "a/docs/v\303\254-sao-n\303\252n-s\341\273\255-d\341\273\245ng-linux/static/rice-sample_hu958631c4899c9a640f51152e4a678959_124281_6eead5e7fe024ad0d56d45aa0a106b08.webp" "b/docs/v\303\254-sao-n\303\252n-s\341\273\255-d\341\273\245ng-linux/static/rice-sample_hu958631c4899c9a640f51152e4a678959_124281_6eead5e7fe024ad0d56d45aa0a106b08.webp" new file mode 100644 index 00000000..7a100b93 Binary files /dev/null and "b/docs/v\303\254-sao-n\303\252n-s\341\273\255-d\341\273\245ng-linux/static/rice-sample_hu958631c4899c9a640f51152e4a678959_124281_6eead5e7fe024ad0d56d45aa0a106b08.webp" differ diff --git "a/docs/v\303\254-sao-n\303\252n-s\341\273\255-d\341\273\245ng-linux/static/rice-sample_hu958631c4899c9a640f51152e4a678959_124281_8d4e61ae6933d67efdb8459b217fe4bb.webp" "b/docs/v\303\254-sao-n\303\252n-s\341\273\255-d\341\273\245ng-linux/static/rice-sample_hu958631c4899c9a640f51152e4a678959_124281_8d4e61ae6933d67efdb8459b217fe4bb.webp" new file mode 100644 index 00000000..c09f4382 Binary files /dev/null and "b/docs/v\303\254-sao-n\303\252n-s\341\273\255-d\341\273\245ng-linux/static/rice-sample_hu958631c4899c9a640f51152e4a678959_124281_8d4e61ae6933d67efdb8459b217fe4bb.webp" differ diff --git "a/docs/v\303\254-sao-n\303\252n-s\341\273\255-d\341\273\245ng-linux/static/rice-sample_hu958631c4899c9a640f51152e4a678959_124281_f5a17d17e45a49f8a371481359dde871.webp" "b/docs/v\303\254-sao-n\303\252n-s\341\273\255-d\341\273\245ng-linux/static/rice-sample_hu958631c4899c9a640f51152e4a678959_124281_f5a17d17e45a49f8a371481359dde871.webp" new file mode 100644 index 00000000..e15014a8 Binary files /dev/null and "b/docs/v\303\254-sao-n\303\252n-s\341\273\255-d\341\273\245ng-linux/static/rice-sample_hu958631c4899c9a640f51152e4a678959_124281_f5a17d17e45a49f8a371481359dde871.webp" differ diff --git a/doks.png b/doks.png new file mode 100644 index 00000000..70d8c786 Binary files /dev/null and b/doks.png differ diff --git a/doks.svg b/doks.svg new file mode 100644 index 00000000..4631bc53 --- /dev/null +++ b/doks.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/favicon-16x16.png b/favicon-16x16.png new file mode 100644 index 00000000..8fcd4223 Binary files /dev/null and b/favicon-16x16.png differ diff --git a/favicon-32x32.png b/favicon-32x32.png new file mode 100644 index 00000000..21378a4c Binary files /dev/null and b/favicon-32x32.png differ diff --git a/static/favicon.ico b/favicon.ico similarity index 100% rename from static/favicon.ico rename to favicon.ico diff --git a/favicon.svg b/favicon.svg new file mode 100644 index 00000000..4631bc53 --- /dev/null +++ b/favicon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/fonts/KaTeX_AMS-Regular.ttf b/fonts/KaTeX_AMS-Regular.ttf new file mode 100644 index 00000000..737cf8eb Binary files /dev/null and b/fonts/KaTeX_AMS-Regular.ttf differ diff --git a/fonts/KaTeX_AMS-Regular.woff b/fonts/KaTeX_AMS-Regular.woff new file mode 100644 index 00000000..38378bfb Binary files /dev/null and b/fonts/KaTeX_AMS-Regular.woff differ diff --git a/fonts/KaTeX_AMS-Regular.woff2 b/fonts/KaTeX_AMS-Regular.woff2 new file mode 100644 index 00000000..a4d1ba64 Binary files /dev/null and b/fonts/KaTeX_AMS-Regular.woff2 differ diff --git a/fonts/KaTeX_Caligraphic-Bold.ttf b/fonts/KaTeX_Caligraphic-Bold.ttf new file mode 100644 index 00000000..04d28abd Binary files /dev/null and b/fonts/KaTeX_Caligraphic-Bold.ttf differ diff --git a/fonts/KaTeX_Caligraphic-Bold.woff b/fonts/KaTeX_Caligraphic-Bold.woff new file mode 100644 index 00000000..a01ce906 Binary files /dev/null and b/fonts/KaTeX_Caligraphic-Bold.woff differ diff --git a/fonts/KaTeX_Caligraphic-Bold.woff2 b/fonts/KaTeX_Caligraphic-Bold.woff2 new file mode 100644 index 00000000..37927274 Binary files /dev/null and b/fonts/KaTeX_Caligraphic-Bold.woff2 differ diff --git a/fonts/KaTeX_Caligraphic-Regular.ttf b/fonts/KaTeX_Caligraphic-Regular.ttf new file mode 100644 index 00000000..b2ce555f Binary files /dev/null and b/fonts/KaTeX_Caligraphic-Regular.ttf differ diff --git a/fonts/KaTeX_Caligraphic-Regular.woff b/fonts/KaTeX_Caligraphic-Regular.woff new file mode 100644 index 00000000..bc169b7c Binary files /dev/null and b/fonts/KaTeX_Caligraphic-Regular.woff differ diff --git a/fonts/KaTeX_Caligraphic-Regular.woff2 b/fonts/KaTeX_Caligraphic-Regular.woff2 new file mode 100644 index 00000000..f1e38bba Binary files /dev/null and b/fonts/KaTeX_Caligraphic-Regular.woff2 differ diff --git a/fonts/KaTeX_Fraktur-Bold.ttf b/fonts/KaTeX_Fraktur-Bold.ttf new file mode 100644 index 00000000..c42d1691 Binary files /dev/null and b/fonts/KaTeX_Fraktur-Bold.ttf differ diff --git a/fonts/KaTeX_Fraktur-Bold.woff b/fonts/KaTeX_Fraktur-Bold.woff new file mode 100644 index 00000000..f30b54b3 Binary files /dev/null and b/fonts/KaTeX_Fraktur-Bold.woff differ diff --git a/fonts/KaTeX_Fraktur-Bold.woff2 b/fonts/KaTeX_Fraktur-Bold.woff2 new file mode 100644 index 00000000..b7a83593 Binary files /dev/null and b/fonts/KaTeX_Fraktur-Bold.woff2 differ diff --git a/fonts/KaTeX_Fraktur-Regular.ttf b/fonts/KaTeX_Fraktur-Regular.ttf new file mode 100644 index 00000000..41332282 Binary files /dev/null and b/fonts/KaTeX_Fraktur-Regular.ttf differ diff --git a/fonts/KaTeX_Fraktur-Regular.woff b/fonts/KaTeX_Fraktur-Regular.woff new file mode 100644 index 00000000..5af51de9 Binary files /dev/null and b/fonts/KaTeX_Fraktur-Regular.woff differ diff --git a/fonts/KaTeX_Fraktur-Regular.woff2 b/fonts/KaTeX_Fraktur-Regular.woff2 new file mode 100644 index 00000000..3874f93e Binary files /dev/null and b/fonts/KaTeX_Fraktur-Regular.woff2 differ diff --git a/fonts/KaTeX_Main-Bold.ttf b/fonts/KaTeX_Main-Bold.ttf new file mode 100644 index 00000000..14390e01 Binary files /dev/null and b/fonts/KaTeX_Main-Bold.ttf differ diff --git a/fonts/KaTeX_Main-Bold.woff b/fonts/KaTeX_Main-Bold.woff new file mode 100644 index 00000000..33b41998 Binary files /dev/null and b/fonts/KaTeX_Main-Bold.woff differ diff --git a/fonts/KaTeX_Main-Bold.woff2 b/fonts/KaTeX_Main-Bold.woff2 new file mode 100644 index 00000000..f9b71cbe Binary files /dev/null and b/fonts/KaTeX_Main-Bold.woff2 differ diff --git a/fonts/KaTeX_Main-BoldItalic.ttf b/fonts/KaTeX_Main-BoldItalic.ttf new file mode 100644 index 00000000..ad0761f4 Binary files /dev/null and b/fonts/KaTeX_Main-BoldItalic.ttf differ diff --git a/fonts/KaTeX_Main-BoldItalic.woff b/fonts/KaTeX_Main-BoldItalic.woff new file mode 100644 index 00000000..115af4f0 Binary files /dev/null and b/fonts/KaTeX_Main-BoldItalic.woff differ diff --git a/fonts/KaTeX_Main-BoldItalic.woff2 b/fonts/KaTeX_Main-BoldItalic.woff2 new file mode 100644 index 00000000..5c500c28 Binary files /dev/null and b/fonts/KaTeX_Main-BoldItalic.woff2 differ diff --git a/fonts/KaTeX_Main-Italic.ttf b/fonts/KaTeX_Main-Italic.ttf new file mode 100644 index 00000000..fc8625c8 Binary files /dev/null and b/fonts/KaTeX_Main-Italic.ttf differ diff --git a/fonts/KaTeX_Main-Italic.woff b/fonts/KaTeX_Main-Italic.woff new file mode 100644 index 00000000..2d3087ab Binary files /dev/null and b/fonts/KaTeX_Main-Italic.woff differ diff --git a/fonts/KaTeX_Main-Italic.woff2 b/fonts/KaTeX_Main-Italic.woff2 new file mode 100644 index 00000000..08510d85 Binary files /dev/null and b/fonts/KaTeX_Main-Italic.woff2 differ diff --git a/fonts/KaTeX_Main-Regular.ttf b/fonts/KaTeX_Main-Regular.ttf new file mode 100644 index 00000000..5115a044 Binary files /dev/null and b/fonts/KaTeX_Main-Regular.ttf differ diff --git a/fonts/KaTeX_Main-Regular.woff b/fonts/KaTeX_Main-Regular.woff new file mode 100644 index 00000000..42b74ab1 Binary files /dev/null and b/fonts/KaTeX_Main-Regular.woff differ diff --git a/fonts/KaTeX_Main-Regular.woff2 b/fonts/KaTeX_Main-Regular.woff2 new file mode 100644 index 00000000..18647fa6 Binary files /dev/null and b/fonts/KaTeX_Main-Regular.woff2 differ diff --git a/fonts/KaTeX_Math-BoldItalic.ttf b/fonts/KaTeX_Math-BoldItalic.ttf new file mode 100644 index 00000000..326b523b Binary files /dev/null and b/fonts/KaTeX_Math-BoldItalic.ttf differ diff --git a/fonts/KaTeX_Math-BoldItalic.woff b/fonts/KaTeX_Math-BoldItalic.woff new file mode 100644 index 00000000..5b4041aa Binary files /dev/null and b/fonts/KaTeX_Math-BoldItalic.woff differ diff --git a/fonts/KaTeX_Math-BoldItalic.woff2 b/fonts/KaTeX_Math-BoldItalic.woff2 new file mode 100644 index 00000000..ba55276d Binary files /dev/null and b/fonts/KaTeX_Math-BoldItalic.woff2 differ diff --git a/fonts/KaTeX_Math-Italic.ttf b/fonts/KaTeX_Math-Italic.ttf new file mode 100644 index 00000000..f148fcee Binary files /dev/null and b/fonts/KaTeX_Math-Italic.ttf differ diff --git a/fonts/KaTeX_Math-Italic.woff b/fonts/KaTeX_Math-Italic.woff new file mode 100644 index 00000000..31d00384 Binary files /dev/null and b/fonts/KaTeX_Math-Italic.woff differ diff --git a/fonts/KaTeX_Math-Italic.woff2 b/fonts/KaTeX_Math-Italic.woff2 new file mode 100644 index 00000000..9871ab6b Binary files /dev/null and b/fonts/KaTeX_Math-Italic.woff2 differ diff --git a/fonts/KaTeX_SansSerif-Bold.ttf b/fonts/KaTeX_SansSerif-Bold.ttf new file mode 100644 index 00000000..dce35c8f Binary files /dev/null and b/fonts/KaTeX_SansSerif-Bold.ttf differ diff --git a/fonts/KaTeX_SansSerif-Bold.woff b/fonts/KaTeX_SansSerif-Bold.woff new file mode 100644 index 00000000..992cb3d6 Binary files /dev/null and b/fonts/KaTeX_SansSerif-Bold.woff differ diff --git a/fonts/KaTeX_SansSerif-Bold.woff2 b/fonts/KaTeX_SansSerif-Bold.woff2 new file mode 100644 index 00000000..6dd10388 Binary files /dev/null and b/fonts/KaTeX_SansSerif-Bold.woff2 differ diff --git a/fonts/KaTeX_SansSerif-Italic.ttf b/fonts/KaTeX_SansSerif-Italic.ttf new file mode 100644 index 00000000..a3eb86c3 Binary files /dev/null and b/fonts/KaTeX_SansSerif-Italic.ttf differ diff --git a/fonts/KaTeX_SansSerif-Italic.woff b/fonts/KaTeX_SansSerif-Italic.woff new file mode 100644 index 00000000..f4fa252a Binary files /dev/null and b/fonts/KaTeX_SansSerif-Italic.woff differ diff --git a/fonts/KaTeX_SansSerif-Italic.woff2 b/fonts/KaTeX_SansSerif-Italic.woff2 new file mode 100644 index 00000000..9f2501a3 Binary files /dev/null and b/fonts/KaTeX_SansSerif-Italic.woff2 differ diff --git a/fonts/KaTeX_SansSerif-Regular.ttf b/fonts/KaTeX_SansSerif-Regular.ttf new file mode 100644 index 00000000..3be73ce1 Binary files /dev/null and b/fonts/KaTeX_SansSerif-Regular.ttf differ diff --git a/fonts/KaTeX_SansSerif-Regular.woff b/fonts/KaTeX_SansSerif-Regular.woff new file mode 100644 index 00000000..ec283f41 Binary files /dev/null and b/fonts/KaTeX_SansSerif-Regular.woff differ diff --git a/fonts/KaTeX_SansSerif-Regular.woff2 b/fonts/KaTeX_SansSerif-Regular.woff2 new file mode 100644 index 00000000..e46094fb Binary files /dev/null and b/fonts/KaTeX_SansSerif-Regular.woff2 differ diff --git a/fonts/KaTeX_Script-Regular.ttf b/fonts/KaTeX_Script-Regular.ttf new file mode 100644 index 00000000..40c8a997 Binary files /dev/null and b/fonts/KaTeX_Script-Regular.ttf differ diff --git a/fonts/KaTeX_Script-Regular.woff b/fonts/KaTeX_Script-Regular.woff new file mode 100644 index 00000000..4eafae75 Binary files /dev/null and b/fonts/KaTeX_Script-Regular.woff differ diff --git a/fonts/KaTeX_Script-Regular.woff2 b/fonts/KaTeX_Script-Regular.woff2 new file mode 100644 index 00000000..69b1754d Binary files /dev/null and b/fonts/KaTeX_Script-Regular.woff2 differ diff --git a/fonts/KaTeX_Size1-Regular.ttf b/fonts/KaTeX_Size1-Regular.ttf new file mode 100644 index 00000000..f0aff83e Binary files /dev/null and b/fonts/KaTeX_Size1-Regular.ttf differ diff --git a/fonts/KaTeX_Size1-Regular.woff b/fonts/KaTeX_Size1-Regular.woff new file mode 100644 index 00000000..0358ee4a Binary files /dev/null and b/fonts/KaTeX_Size1-Regular.woff differ diff --git a/fonts/KaTeX_Size1-Regular.woff2 b/fonts/KaTeX_Size1-Regular.woff2 new file mode 100644 index 00000000..f951ed01 Binary files /dev/null and b/fonts/KaTeX_Size1-Regular.woff2 differ diff --git a/fonts/KaTeX_Size2-Regular.ttf b/fonts/KaTeX_Size2-Regular.ttf new file mode 100644 index 00000000..4f72f167 Binary files /dev/null and b/fonts/KaTeX_Size2-Regular.ttf differ diff --git a/fonts/KaTeX_Size2-Regular.woff b/fonts/KaTeX_Size2-Regular.woff new file mode 100644 index 00000000..8a053d23 Binary files /dev/null and b/fonts/KaTeX_Size2-Regular.woff differ diff --git a/fonts/KaTeX_Size2-Regular.woff2 b/fonts/KaTeX_Size2-Regular.woff2 new file mode 100644 index 00000000..181d9625 Binary files /dev/null and b/fonts/KaTeX_Size2-Regular.woff2 differ diff --git a/fonts/KaTeX_Size3-Regular.ttf b/fonts/KaTeX_Size3-Regular.ttf new file mode 100644 index 00000000..56d2dc6c Binary files /dev/null and b/fonts/KaTeX_Size3-Regular.ttf differ diff --git a/fonts/KaTeX_Size3-Regular.woff b/fonts/KaTeX_Size3-Regular.woff new file mode 100644 index 00000000..0ec99ad1 Binary files /dev/null and b/fonts/KaTeX_Size3-Regular.woff differ diff --git a/fonts/KaTeX_Size3-Regular.woff2 b/fonts/KaTeX_Size3-Regular.woff2 new file mode 100644 index 00000000..c2985cd3 Binary files /dev/null and b/fonts/KaTeX_Size3-Regular.woff2 differ diff --git a/fonts/KaTeX_Size4-Regular.ttf b/fonts/KaTeX_Size4-Regular.ttf new file mode 100644 index 00000000..baf02091 Binary files /dev/null and b/fonts/KaTeX_Size4-Regular.ttf differ diff --git a/fonts/KaTeX_Size4-Regular.woff b/fonts/KaTeX_Size4-Regular.woff new file mode 100644 index 00000000..ff673197 Binary files /dev/null and b/fonts/KaTeX_Size4-Regular.woff differ diff --git a/fonts/KaTeX_Size4-Regular.woff2 b/fonts/KaTeX_Size4-Regular.woff2 new file mode 100644 index 00000000..a4e810da Binary files /dev/null and b/fonts/KaTeX_Size4-Regular.woff2 differ diff --git a/fonts/KaTeX_Typewriter-Regular.ttf b/fonts/KaTeX_Typewriter-Regular.ttf new file mode 100644 index 00000000..e66c218d Binary files /dev/null and b/fonts/KaTeX_Typewriter-Regular.ttf differ diff --git a/fonts/KaTeX_Typewriter-Regular.woff b/fonts/KaTeX_Typewriter-Regular.woff new file mode 100644 index 00000000..c66d149d Binary files /dev/null and b/fonts/KaTeX_Typewriter-Regular.woff differ diff --git a/fonts/KaTeX_Typewriter-Regular.woff2 b/fonts/KaTeX_Typewriter-Regular.woff2 new file mode 100644 index 00000000..e5bf2ce1 Binary files /dev/null and b/fonts/KaTeX_Typewriter-Regular.woff2 differ diff --git a/functions/hi-from-lambda.js b/functions/hi-from-lambda.js deleted file mode 100644 index 88e4fa00..00000000 --- a/functions/hi-from-lambda.js +++ /dev/null @@ -1,11 +0,0 @@ -exports.handler = (event, context, callback) => { - callback (null, { - statusCode: 200, - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify({ - message: 'Hi from Lambda.', - }), - }); -} diff --git a/i18n/de.yaml b/i18n/de.yaml deleted file mode 100644 index d1f125ee..00000000 --- a/i18n/de.yaml +++ /dev/null @@ -1,5 +0,0 @@ -- id: get-started - translation: "Loslegen" - -- id: on-this-page - translation: "Auf dieser Seite" diff --git a/i18n/en.yaml b/i18n/en.yaml deleted file mode 100644 index 05ff248f..00000000 --- a/i18n/en.yaml +++ /dev/null @@ -1,17 +0,0 @@ -- id: get-started - translation: "Get Started" - -- id: on-this-page - translation: "On this page" - -- id: search-text - translation: "Search docs..." - -- id: 404-title - translation: "Page not found :(" - -- id: 404-text - translation: "The page you are looking for doesn't exist or has been moved." - -- id: browse - translation: "Browse" diff --git a/i18n/nl.yaml b/i18n/nl.yaml deleted file mode 100644 index 2899edae..00000000 --- a/i18n/nl.yaml +++ /dev/null @@ -1,17 +0,0 @@ -- id: get-started - translation: "Aan de slag" - -- id: on-this-page - translation: "Op deze pagina" - -- id: search-text - translation: "Zoeken..." - -- id: 404-title - translation: "Pagina niet gevonden :(" - -- id: 404-text - translation: "De gezochte pagina bestaat niet of deze is verplaatst." - -- id: browse - translation: "Browse" diff --git a/images/coming-soon_huf78c4a4c2d29ec2c598add8379a97386_267606_1270x740_resize_q100_h2_box.webp b/images/coming-soon_huf78c4a4c2d29ec2c598add8379a97386_267606_1270x740_resize_q100_h2_box.webp new file mode 100644 index 00000000..f51dae0d Binary files /dev/null and b/images/coming-soon_huf78c4a4c2d29ec2c598add8379a97386_267606_1270x740_resize_q100_h2_box.webp differ diff --git a/images/coming-soon_huf78c4a4c2d29ec2c598add8379a97386_267606_a16118fab114e6e5a9bc6484a71ed979.webp b/images/coming-soon_huf78c4a4c2d29ec2c598add8379a97386_267606_a16118fab114e6e5a9bc6484a71ed979.webp new file mode 100644 index 00000000..072653f3 Binary files /dev/null and b/images/coming-soon_huf78c4a4c2d29ec2c598add8379a97386_267606_a16118fab114e6e5a9bc6484a71ed979.webp differ diff --git a/images/doks.png b/images/doks.png deleted file mode 100644 index 1f5d0800..00000000 Binary files a/images/doks.png and /dev/null differ diff --git a/images/linux-transparent.png b/images/linux-transparent.png deleted file mode 100644 index 6e5e7111..00000000 Binary files a/images/linux-transparent.png and /dev/null differ diff --git a/images/screenshot.png b/images/screenshot.png deleted file mode 100644 index 072753bb..00000000 Binary files a/images/screenshot.png and /dev/null differ diff --git a/images/tn.png b/images/tn.png deleted file mode 100644 index ff29c682..00000000 Binary files a/images/tn.png and /dev/null differ diff --git a/index.html b/index.html new file mode 100644 index 00000000..36a123de --- /dev/null +++ b/index.html @@ -0,0 +1,16 @@ +Ubunchuu Trường Ú Linux made easy.

Ubunchuu Trường Ú

Một project 'Lai nú' giấu tên tại trường Ú hứa hẹn giúp mọi người bước đầu tiếp cận với Linux, đặc biệt là Ubuntu cùng cách thiết lập chúng như một pro developer.

Get Started +Or click here to visit our fanpage 📟

Hiệu quả 🍀

Ubunchuu Trường Ú cung cấp cho bạn hệ thống tutorial được đầy đủ, +chuẩn hóa và đồng bộ để bạn có thể cài đặt và sử dụng.

Cài đặt mượt mà ✨

Bằng việc follow hướng dẫn của chúng mình, bạn sẽ có thể cài đặt và sử +dụng ubuntu một cách dễ dàng.

Hỗ trợ ngay và luôn 💯

Chúng mình có team hỗ trợ (gần như) 24/7, sẵn sàng giúp đỡ khi bạn gặp +lỗi. Hãy liên hệ với chúng mình qua email hoặc facebook.

Đa dạng 🎉

Có nhiều dự án để bạn khám phá như "15 Days Fly With Tux", manga +"Ubunchuu", config giao diện, terminal, etc.

Tìm kiếm 🔎

Tìm kiếm từ khóa dễ dàng với công cụ tìm kiếm được build sẵn trong +trang.

Dark mode 🌗

Bạn có thể đổi light/dark mode bằng cách nhấn vào biểu tượng mặt trăng +ở góc trên bên phải.

+ + + + +
Top
\ No newline at end of file diff --git a/index.min.63e2b87ec96ee967d06b7dece7511380c54d5f89a24ef33502ce66189048550fdba7d1877181e974c0811d52b4b35899fefbb2481017a9f865daee90aca56559.js b/index.min.63e2b87ec96ee967d06b7dece7511380c54d5f89a24ef33502ce66189048550fdba7d1877181e974c0811d52b4b35899fefbb2481017a9f865daee90aca56559.js new file mode 100644 index 00000000..bff3541e --- /dev/null +++ b/index.min.63e2b87ec96ee967d06b7dece7511380c54d5f89a24ef33502ce66189048550fdba7d1877181e974c0811d52b4b35899fefbb2481017a9f865daee90aca56559.js @@ -0,0 +1,292 @@ +var suggestions=document.getElementById("suggestions"),search=document.getElementById("search");search!==null&&document.addEventListener("keydown",inputFocus);function inputFocus(e){e.ctrlKey&&e.key==="/"&&(e.preventDefault(),search.focus()),e.key==="Escape"&&(search.blur(),suggestions.classList.add("d-none"))}document.addEventListener("click",function(e){var t=suggestions.contains(e.target);t||suggestions.classList.add("d-none")}),document.addEventListener("keydown",suggestionFocus);function suggestionFocus(e){const s=suggestions.classList.contains("d-none");if(s)return;const t=[...suggestions.querySelectorAll("a")];if(t.length===0)return;const n=t.indexOf(document.activeElement);if(e.key==="ArrowUp"){e.preventDefault();const s=n>0?n-1:0;t[s].focus()}else if(e.key==="ArrowDown"){e.preventDefault();const s=n+1e.result)){if(t.has(e.doc.href))continue;t.set(e.doc.href,e.doc)}if(suggestions.innerHTML="",suggestions.classList.remove("d-none"),t.size===0&&n){const e=document.createElement("div");e.innerHTML=`No results for "${n}"`,e.classList.add("suggestion__no-results"),suggestions.appendChild(e);return}for(const[r,a]of t){const n=document.createElement("div");suggestions.appendChild(n);const e=document.createElement("a");e.href=r,n.appendChild(e);const o=document.createElement("span");o.textContent=a.title,o.classList.add("suggestion__title"),e.appendChild(o);const i=document.createElement("span");if(i.textContent=a.description,i.classList.add("suggestion__description"),e.appendChild(i),suggestions.appendChild(n),suggestions.childElementCount==s)break}}})() \ No newline at end of file diff --git a/index.xml b/index.xml new file mode 100644 index 00000000..6ec7820c --- /dev/null +++ b/index.xml @@ -0,0 +1 @@ +Ubunchuu Trường Ú onhttps://ubunchuu-truong-us.github.io/Recent content in Ubunchuu Trường Ú onHugo -- gohugo.ioen-USCopyright © 2023 Ubunchuu Trường ÚSat, 24 Dec 2022 00:00:00 +0000Docshttps://ubunchuu-truong-us.github.io/docs/Sat, 24 Dec 2022 00:00:00 +0000https://ubunchuu-truong-us.github.io/docs/ \ No newline at end of file diff --git a/js/bootstrap.min.87685cf4e6585276ff9e7b5d0b97e792615af6921e77821315d1ca7c5511ac2f30667e16c0d031e680ca8b57f63f6c0f6c4a232da777cce474b501ed81e090a9.js b/js/bootstrap.min.87685cf4e6585276ff9e7b5d0b97e792615af6921e77821315d1ca7c5511ac2f30667e16c0d031e680ca8b57f63f6c0f6c4a232da777cce474b501ed81e090a9.js new file mode 100644 index 00000000..e5ab3b04 --- /dev/null +++ b/js/bootstrap.min.87685cf4e6585276ff9e7b5d0b97e792615af6921e77821315d1ca7c5511ac2f30667e16c0d031e680ca8b57f63f6c0f6c4a232da777cce474b501ed81e090a9.js @@ -0,0 +1 @@ +(()=>{var n=Object.create,e=Object.defineProperty,s=Object.getOwnPropertyDescriptor,t=Object.getOwnPropertyNames,o=Object.getPrototypeOf,i=Object.prototype.hasOwnProperty,a=(e,n)=>function(){return n||(0,e[t(e)[0]])((n={exports:{}}).exports,n),n.exports},r=(n,o,a,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let c of t(o))!i.call(n,c)&&c!==a&&e(n,c,{get:()=>o[c],enumerable:!(r=s(o,c))||r.enumerable});return n},c=(t,s,i)=>(i=t!=null?n(o(t)):{},r(s||!t||!t.__esModule?e(i,"default",{value:t,enumerable:!0}):i,t)),l=a({"node_modules/bootstrap/dist/js/bootstrap.bundle.min.js"(e,t){!function(n,s){typeof e=="object"&&typeof t!="undefined"?t.exports=s():typeof define=="function"&&define.amd?define(s):(n=typeof globalThis!="undefined"?globalThis:n||self).bootstrap=s()}(e,function(){"use strict";const Ce="transitionend",At=e=>{let t=e.getAttribute("data-bs-target");if(!t||t==="#"){let n=e.getAttribute("href");if(!n||!n.includes("#")&&!n.startsWith("."))return null;n.includes("#")&&!n.startsWith("#")&&(n=`#${n.split("#")[1]}`),t=n&&n!=="#"?n.trim():null}return t},Ge=e=>{const t=At(e);return t&&document.querySelector(t)?t:null},b=e=>{const t=At(e);return t?document.querySelector(t):null},Dt=e=>{e.dispatchEvent(new Event(Ce))},C=e=>!!e&&typeof e=="object"&&(e.jquery!==void 0&&(e=e[0]),e.nodeType!==void 0),w=e=>C(e)?e.jquery?e[0]:e:typeof e=="string"&&e.length>0?document.querySelector(e):null,p=(e,t,n)=>{Object.keys(n).forEach(s=>{const a=n[s],o=t[s],r=o&&C(o)?"element":(i=o)==null?`${i}`:{}.toString.call(i).match(/\s([a-z]+)/i)[1].toLowerCase();var i;if(!new RegExp(a).test(r))throw new TypeError(`${e.toUpperCase()}: Option "${s}" provided type "${r}" but expected type "${a}".`)})},X=e=>!!C(e)&&e.getClientRects().length!==0&&getComputedStyle(e).getPropertyValue("visibility")==="visible",E=e=>!e||e.nodeType!==Node.ELEMENT_NODE||!!e.classList.contains("disabled")||(e.disabled!==void 0?e.disabled:e.hasAttribute("disabled")&&e.getAttribute("disabled")!=="false"),Bt=e=>{if(!document.documentElement.attachShadow)return null;if(typeof e.getRootNode=="function"){const t=e.getRootNode();return t instanceof ShadowRoot?t:null}return e instanceof ShadowRoot?e:e.parentNode?Bt(e.parentNode):null},ye=()=>{},R=e=>{e.offsetHeight},nn=()=>{const{jQuery:e}=window;return e&&!document.body.hasAttribute("data-bs-no-jquery")?e:null},$e=[],o=()=>document.documentElement.dir==="rtl",d=e=>{var t=()=>{const t=nn();if(t){const n=e.NAME,s=t.fn[n];t.fn[n]=e.jQueryInterface,t.fn[n].Constructor=e,t.fn[n].noConflict=()=>(t.fn[n]=s,e.jQueryInterface)}};document.readyState==="loading"?($e.length||document.addEventListener("DOMContentLoaded",()=>{$e.forEach(e=>e())}),$e.push(t)):t()},O=e=>{typeof e=="function"&&e()},sn=(e,t,n=!0)=>{if(!n)return void O(e);const i=(e=>{if(!e)return 0;let{transitionDuration:t,transitionDelay:n}=window.getComputedStyle(e);const s=Number.parseFloat(t),o=Number.parseFloat(n);return s||o?(t=t.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(t)+Number.parseFloat(n))):0})(t)+5;let s=!1;const o=({target:n})=>{n===t&&(s=!0,t.removeEventListener(Ce,o),O(e))};t.addEventListener(Ce,o),setTimeout(()=>{s||Dt(t)},i)},an=(e,t,n,s)=>{let o=e.indexOf(t);if(o===-1)return e[!n&&s?e.length-1:0];const i=e.length;return o+=n?1:-1,s&&(o=(o+i)%i),e[Math.max(0,Math.min(o,i-1))]},_s=/[^.]*(?=\..*)\.|.*/,vs=/\..*/,ms=/::\d+$/,He={};let dn=1;const rs={mouseenter:"mouseover",mouseleave:"mouseout"},is=/^(mouseenter|mouseleave)/i,_n=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function An(e,t){return t&&`${t}::${dn++}`||e.uidEvent||dn++}function Un(e){const t=An(e);return e.uidEvent=t,He[t]=He[t]||{},He[t]}function Pn(e,t,n=null){const s=Object.keys(e);for(let o=0,a=s.length;ofunction(t){if(!t.relatedTarget||t.relatedTarget!==t.delegateTarget&&!t.delegateTarget.contains(t.relatedTarget))return e.call(this,t)};o?o=e(o):s=e(s)}const[r,d,c]=kt(n,s,o),u=Un(t),h=u[c]||(u[c]={}),l=Pn(h,d,r?s:null);if(l)return void(l.oneOff=l.oneOff&&i);const m=An(d,n.replace(_s,"")),a=r?function(t,n,s){return function o(i){const a=t.querySelectorAll(n);for(let{target:r}=i;r&&r!==this;r=r.parentNode)for(let c=a.length;c--;)if(a[c]===r)return i.delegateTarget=r,o.oneOff&&e.off(t,i.type,n,s),s.apply(r,[i]);return null}}(t,s,o):function(t,n){return function s(o){return o.delegateTarget=t,s.oneOff&&e.off(t,o.type,n),n.apply(t,[o])}}(t,s);a.delegationSelector=r?s:null,a.originalHandler=d,a.oneOff=i,a.uidEvent=m,h[m]=a,t.addEventListener(c,a,r)}function ke(e,t,n,s,o){const i=Pn(t[n],s,o);i&&(e.removeEventListener(n,i,Boolean(o)),delete t[n][i.uidEvent])}function fn(e){return e=e.replace(vs,""),rs[e]||e}const e={on(e,t,n,s){Rn(e,t,n,s,!1)},one(e,t,n,s){Rn(e,t,n,s,!0)},off(e,t,n,s){if(typeof t!="string"||!e)return;const[d,r,i]=kt(t,n,s),c=i!==t,o=Un(e),l=t.startsWith(".");if(r!==void 0){if(!o||!o[i])return;return void ke(e,o,i,r,d?n:null)}l&&Object.keys(o).forEach(n=>{!function(e,t,n,s){const o=t[n]||{};Object.keys(o).forEach(i=>{if(i.includes(s)){const s=o[i];ke(e,t,n,s.originalHandler,s.delegationSelector)}})}(e,o,n,t.slice(1))});const a=o[i]||{};Object.keys(a).forEach(n=>{const s=n.replace(ms,"");if(!c||t.includes(s)){const t=a[n];ke(e,o,i,t.originalHandler,t.delegationSelector)}})},trigger(e,t,n){if(typeof t!="string"||!e)return null;const i=nn(),a=fn(t),u=t!==a,d=_n.has(a);let o,r=!0,c=!0,l=!1,s=null;return u&&i&&(o=i.Event(t,n),i(e).trigger(o),r=!o.isPropagationStopped(),c=!o.isImmediatePropagationStopped(),l=o.isDefaultPrevented()),d?(s=document.createEvent("HTMLEvents"),s.initEvent(a,r,!0)):s=new CustomEvent(t,{bubbles:r,cancelable:!0}),n!==void 0&&Object.keys(n).forEach(e=>{Object.defineProperty(s,e,{get:()=>n[e]})}),l&&s.preventDefault(),c&&e.dispatchEvent(s),s.defaultPrevented&&o!==void 0&&o.preventDefault(),s}},j=new Map,K={set(e,t,n){j.has(e)||j.set(e,new Map);const s=j.get(e);s.has(t)||s.size===0?s.set(t,n):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(s.keys())[0]}.`)},get:(e,t)=>j.has(e)&&j.get(e).get(t)||null,remove(e,t){if(!j.has(e))return;const n=j.get(e);n.delete(t),n.size===0&&j.delete(e)}};class u{constructor(e){(e=w(e))&&(this._element=e,K.set(this._element,this.constructor.DATA_KEY,this))}dispose(){K.remove(this._element,this.constructor.DATA_KEY),e.off(this._element,this.constructor.EVENT_KEY),Object.getOwnPropertyNames(this).forEach(e=>{this[e]=null})}_queueCallback(e,t,n=!0){sn(e,t,n)}static getInstance(e){return K.get(w(e),this.DATA_KEY)}static getOrCreateInstance(e,t={}){return this.getInstance(e)||new this(e,typeof t=="object"?t:null)}static get VERSION(){return"5.1.3"}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}}const ve=(t,n="hide")=>{const o=`click.dismiss${t.EVENT_KEY}`,s=t.NAME;e.on(document,o,`[data-bs-dismiss="${s}"]`,function(e){if(["A","AREA"].includes(this.tagName)&&e.preventDefault(),E(this))return;const o=b(this)||this.closest(`.${s}`);t.getOrCreateInstance(o)[n]()})};class he extends u{static get NAME(){return"alert"}close(){if(e.trigger(this._element,"close.bs.alert").defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback(()=>this._destroyElement(),this._element,t)}_destroyElement(){this._element.remove(),e.trigger(this._element,"closed.bs.alert"),this.dispose()}static jQueryInterface(e){return this.each(function(){const t=he.getOrCreateInstance(this);if(typeof e=="string"){if(t[e]===void 0||e.startsWith("_")||e==="constructor")throw new TypeError(`No method named "${e}"`);t[e](this)}})}}ve(he,"close"),d(he);const un='[data-bs-toggle="button"]';class ge extends u{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(e){return this.each(function(){const t=ge.getOrCreateInstance(this);e==="toggle"&&t[e]()})}}function tn(e){return e==="true"||e!=="false"&&(e===Number(e).toString()?Number(e):e===""||e==="null"?null:e)}function Le(e){return e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}e.on(document,"click.bs.button.data-api",un,e=>{e.preventDefault();const t=e.target.closest(un);ge.getOrCreateInstance(t).toggle()}),d(ge);const n={setDataAttribute(e,t,n){e.setAttribute(`data-bs-${Le(t)}`,n)},removeDataAttribute(e,t){e.removeAttribute(`data-bs-${Le(t)}`)},getDataAttributes(e){if(!e)return{};const t={};return Object.keys(e.dataset).filter(e=>e.startsWith("bs")).forEach(n=>{let s=n.replace(/^bs/,"");s=s.charAt(0).toLowerCase()+s.slice(1,s.length),t[s]=tn(e.dataset[n])}),t},getDataAttribute:(e,t)=>tn(e.getAttribute(`data-bs-${Le(t)}`)),offset(e){const t=e.getBoundingClientRect();return{top:t.top+window.pageYOffset,left:t.left+window.pageXOffset}},position:e=>({top:e.offsetTop,left:e.offsetLeft})},t={find:(e,t=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(t,e)),findOne:(e,t=document.documentElement)=>Element.prototype.querySelector.call(t,e),children:(e,t)=>[].concat(...e.children).filter(e=>e.matches(t)),parents(e,t){const s=[];let n=e.parentNode;for(;n&&n.nodeType===Node.ELEMENT_NODE&&n.nodeType!==3;)n.matches(t)&&s.push(n),n=n.parentNode;return s},prev(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return[n];n=n.previousElementSibling}return[]},next(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return[n];n=n.nextElementSibling}return[]},focusableChildren(e){const t=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map(e=>`${e}:not([tabindex^="-"])`).join(", ");return this.find(t,e).filter(e=>!E(e)&&X(e))}},en="carousel",Jt={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},ks={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},k="next",x="prev",A="left",W="right",As={ArrowLeft:W,ArrowRight:A},$t="slid.bs.carousel",F="active",re=".active.carousel-item";class v extends u{constructor(e,n){super(e),this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(n),this._indicatorsElement=t.findOne(".carousel-indicators",this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent),this._addEventListeners()}static get Default(){return Jt}static get NAME(){return en}next(){this._slide(k)}nextWhenVisible(){!document.hidden&&X(this._element)&&this.next()}prev(){this._slide(x)}pause(e){e||(this._isPaused=!0),t.findOne(".carousel-item-next, .carousel-item-prev",this._element)&&(Dt(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null}cycle(e){e||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))}to(n){this._activeElement=t.findOne(re,this._element);const s=this._getItemIndex(this._activeElement);if(n>this._items.length-1||n<0)return;if(this._isSliding)return void e.one(this._element,$t,()=>this.to(n));if(s===n)return this.pause(),void this.cycle();const o=n>s?k:x;this._slide(o,this._items[n])}_getConfig(e){return e={...Jt,...n.getDataAttributes(this._element),...typeof e=="object"?e:{}},p(en,e,ks),e}_handleSwipe(){const e=Math.abs(this.touchDeltaX);if(e<=40)return;const t=e/this.touchDeltaX;this.touchDeltaX=0,t&&this._slide(t>0?W:A)}_addEventListeners(){this._config.keyboard&&e.on(this._element,"keydown.bs.carousel",e=>this._keydown(e)),this._config.pause==="hover"&&(e.on(this._element,"mouseenter.bs.carousel",e=>this.pause(e)),e.on(this._element,"mouseleave.bs.carousel",e=>this.cycle(e))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()}_addTouchEventListeners(){const n=e=>this._pointerEvent&&(e.pointerType==="pen"||e.pointerType==="touch"),s=e=>{n(e)?this.touchStartX=e.clientX:this._pointerEvent||(this.touchStartX=e.touches[0].clientX)},i=e=>{this.touchDeltaX=e.touches&&e.touches.length>1?0:e.touches[0].clientX-this.touchStartX},o=e=>{n(e)&&(this.touchDeltaX=e.clientX-this.touchStartX),this._handleSwipe(),this._config.pause==="hover"&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(e=>this.cycle(e),500+this._config.interval))};t.find(".carousel-item img",this._element).forEach(t=>{e.on(t,"dragstart.bs.carousel",e=>e.preventDefault())}),this._pointerEvent?(e.on(this._element,"pointerdown.bs.carousel",e=>s(e)),e.on(this._element,"pointerup.bs.carousel",e=>o(e)),this._element.classList.add("pointer-event")):(e.on(this._element,"touchstart.bs.carousel",e=>s(e)),e.on(this._element,"touchmove.bs.carousel",e=>i(e)),e.on(this._element,"touchend.bs.carousel",e=>o(e)))}_keydown(e){if(/input|textarea/i.test(e.target.tagName))return;const t=As[e.key];t&&(e.preventDefault(),this._slide(t))}_getItemIndex(e){return this._items=e&&e.parentNode?t.find(".carousel-item",e.parentNode):[],this._items.indexOf(e)}_getItemByOrder(e,t){const n=e===k;return an(this._items,t,n,this._config.wrap)}_triggerSlideEvent(n,s){const o=this._getItemIndex(n),i=this._getItemIndex(t.findOne(re,this._element));return e.trigger(this._element,"slide.bs.carousel",{relatedTarget:n,direction:s,from:i,to:o})}_setActiveIndicatorElement(e){if(this._indicatorsElement){const s=t.findOne(".active",this._indicatorsElement);s.classList.remove(F),s.removeAttribute("aria-current");const n=t.find("[data-bs-target]",this._indicatorsElement);for(let t=0;t{e.trigger(this._element,$t,{relatedTarget:o,direction:h,from:m,to:f})};if(this._element.classList.contains("slide")){o.classList.add(c),R(o),i.classList.add(a),o.classList.add(a);const e=()=>{o.classList.remove(a,c),o.classList.add(F),i.classList.remove(F,c,a),this._isSliding=!1,setTimeout(l,0)};this._queueCallback(e,i,!0)}else i.classList.remove(F),o.classList.add(F),this._isSliding=!1,l();d&&this.cycle()}_directionToOrder(e){return[W,A].includes(e)?o()?e===A?x:k:e===A?k:x:e}_orderToDirection(e){return[k,x].includes(e)?o()?e===x?A:W:e===x?W:A:e}static carouselInterface(e,t){const n=v.getOrCreateInstance(e,t);let{_config:s}=n;typeof t=="object"&&(s={...s,...t});const o=typeof t=="string"?t:s.slide;if(typeof t=="number")n.to(t);else if(typeof o=="string"){if(n[o]===void 0)throw new TypeError(`No method named "${o}"`);n[o]()}else s.interval&&s.ride&&(n.pause(),n.cycle())}static jQueryInterface(e){return this.each(function(){v.carouselInterface(this,e)})}static dataApiClickHandler(e){const t=b(this);if(!t||!t.classList.contains("carousel"))return;const o={...n.getDataAttributes(t),...n.getDataAttributes(this)},s=this.getAttribute("data-bs-slide-to");s&&(o.interval=!1),v.carouselInterface(t,o),s&&v.getInstance(t).to(s),e.preventDefault()}}e.on(document,"click.bs.carousel.data-api","[data-bs-slide], [data-bs-slide-to]",v.dataApiClickHandler),e.on(window,"load.bs.carousel.data-api",()=>{const e=t.find('[data-bs-ride="carousel"]');for(let t=0,n=e.length;te===this._element);n!==null&&a.length&&(this._selector=n,this._triggerArray.push(o))}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return Pt}static get NAME(){return It}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let s,o=[];if(this._config.parent){const e=t.find(Ot,this._config.parent);o=t.find(".collapse.show, .collapse.collapsing",this._config.parent).filter(t=>!e.includes(t))}const i=t.findOne(this._selector);if(o.length){const e=o.find(e=>i!==e);if(s=e?I.getInstance(e):null,s&&s._isTransitioning)return}if(e.trigger(this._element,"show.bs.collapse").defaultPrevented)return;o.forEach(e=>{i!==e&&I.getOrCreateInstance(e,{toggle:!1}).hide(),s||K.set(e,"bs.collapse",null)});const n=this._getDimension();this._element.classList.remove(le),this._element.classList.add(de),this._element.style[n]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const a=`scroll${n[0].toUpperCase()+n.slice(1)}`;this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove(de),this._element.classList.add(le,Je),this._element.style[n]="",e.trigger(this._element,"shown.bs.collapse")},this._element,!0),this._element.style[n]=`${this._element[a]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(e.trigger(this._element,"hide.bs.collapse").defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,R(this._element),this._element.classList.add(de),this._element.classList.remove(le,Je);const n=this._triggerArray.length;for(let e=0;e{this._isTransitioning=!1,this._element.classList.remove(de),this._element.classList.add(le),e.trigger(this._element,"hidden.bs.collapse")},this._element,!0)}_isShown(e=this._element){return e.classList.contains(Je)}_getConfig(e){return(e={...Pt,...n.getDataAttributes(this._element),...e}).toggle=Boolean(e.toggle),e.parent=w(e.parent),p(It,e,zs),e}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const e=t.find(Ot,this._config.parent);t.find(Re,this._config.parent).filter(t=>!e.includes(t)).forEach(e=>{const t=b(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))})}_addAriaAndCollapsedClass(e,t){e.length&&e.forEach(e=>{t?e.classList.remove(xt):e.classList.add(xt),e.setAttribute("aria-expanded",t)})}static jQueryInterface(e){return this.each(function(){const t={};typeof e=="string"&&/show|hide/.test(e)&&(t.toggle=!1);const n=I.getOrCreateInstance(this,t);if(typeof e=="string"){if(n[e]===void 0)throw new TypeError(`No method named "${e}"`);n[e]()}})}}e.on(document,"click.bs.collapse.data-api",Re,function(e){(e.target.tagName==="A"||e.delegateTarget&&e.delegateTarget.tagName==="A")&&e.preventDefault();const n=Ge(this);t.find(n).forEach(e=>{I.getOrCreateInstance(e,{toggle:!1}).toggle()})}),d(I);var Y,s="top",a="bottom",r="right",i="left",je="auto",$=[s,a,r,i],M="start",T="end",_t="clippingParents",xe="viewport",z="popper",yt="reference",ze=$.reduce(function(e,t){return e.concat([t+"-"+M,t+"-"+T])},[]),Ae=[].concat($,[je]).reduce(function(e,t){return e.concat([t,t+"-"+M,t+"-"+T])},[]),jt="beforeRead",bt="read",gt="afterRead",ft="beforeMain",mt="main",ht="afterMain",lt="beforeWrite",it="write",ot="afterWrite",st=[jt,bt,gt,ft,mt,ht,lt,it,ot],dt,pt,vt,Ke;function f(e){return e?(e.nodeName||"").toLowerCase():null}function h(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function ee(e){return e instanceof h(e).Element||e instanceof Element}function l(e){return e instanceof h(e).HTMLElement||e instanceof HTMLElement}function nt(e){return typeof ShadowRoot!="undefined"&&(e instanceof h(e).ShadowRoot||e instanceof ShadowRoot)}const We={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach(function(e){var o=t.styles[e]||{},s=t.attributes[e]||{},n=t.elements[e];l(n)&&f(n)&&(Object.assign(n.style,o),Object.keys(s).forEach(function(e){var t=s[e];t===!1?n.removeAttribute(e):n.setAttribute(e,t===!0?"":t)}))})},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(e){var s=t.elements[e],o=t.attributes[e]||{},i=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce(function(e,t){return e[t]="",e},{});l(s)&&f(s)&&(Object.assign(s.style,i),Object.keys(o).forEach(function(e){s.removeAttribute(e)}))})}},requires:["computeStyles"]};function m(e){return e.split("-")[0]}function L(e){var n=e.getBoundingClientRect();return{width:n.width/1,height:n.height/1,top:n.top/1,right:n.right/1,bottom:n.bottom/1,left:n.left/1,x:n.left/1,y:n.top/1}}function qe(e){var t=L(e),n=e.offsetWidth,s=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-s)<=1&&(s=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:s}}function tt(e,t){var n,s=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(s&&nt(s)){n=t;do{if(n&&e.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function g(e){return h(e).getComputedStyle(e)}function Ls(e){return["table","td","th"].indexOf(f(e))>=0}function y(e){return((ee(e)?e.ownerDocument:e.document)||window.document).documentElement}function _e(e){return f(e)==="html"?e:e.assignedSlot||e.parentNode||(nt(e)?e.host:null)||y(e)}function Kn(e){return l(e)&&g(e).position!=="fixed"?e.offsetParent:null}function Z(e){for(var n=h(e),t=Kn(e);t&&Ls(t)&&g(t).position==="static";)t=Kn(t);return t&&(f(t)==="html"||f(t)==="body"&&g(t).position==="static")?n:t||function(e){var t,n,s=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1;if(navigator.userAgent.indexOf("Trident")!==-1&&l(e)&&g(e).position==="fixed")return null;for(n=_e(e);l(n)&&["html","body"].indexOf(f(n))<0;){if(t=g(n),t.transform!=="none"||t.perspective!=="none"||t.contain==="paint"||["transform","perspective"].indexOf(t.willChange)!==-1||s&&t.willChange==="filter"||s&&t.filter&&t.filter!=="none")return n;n=n.parentNode}return null}(e)||n}function Ye(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}var _=Math.max,G=Math.min,me=Math.round;function fe(e,t,n){return _(e,G(t,n))}function at(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function rt(e,t){return t.reduce(function(t,n){return t[n]=e,t},{})}const ct={name:"arrow",enabled:!0,phase:"main",fn:function(e){var c,t=e.state,k=e.name,E=e.options,l=t.elements.arrow,d=t.modifiersData.popperOffsets,h=m(t.placement),n=Ye(h),o=[i,r].indexOf(h)>=0?"height":"width";if(l&&d){var p=function(e,t){return at(typeof(e=typeof e=="function"?e(Object.assign({},t.rects,{placement:t.placement})):e)!="number"?e:rt(e,$))}(E.padding,t),g=qe(l),j=n==="y"?s:i,w=n==="y"?a:r,_=t.rects.reference[o]+t.rects.reference[n]-d[n]-t.rects.popper[o],y=d[n]-t.rects.reference[n],u=Z(l),b=u?n==="y"?u.clientHeight||0:u.clientWidth||0:0,O=_/2-y/2,x=p[j],C=b-g[o]-p[w],f=b/2-g[o]/2+O,v=fe(x,f,C),A=n;t.modifiersData[k]=((c={})[A]=v,c.centerOffset=v-f,c)}},effect:function(e){var n=e.state,s=e.options.element,t=s===void 0?"[data-popper-arrow]":s;t!=null&&(typeof t!="string"||(t=n.elements.popper.querySelector(t)))&&tt(n.elements.popper,t)&&(n.elements.arrow=t)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function P(e){return e.split("-")[1]}dt={top:"auto",right:"auto",bottom:"auto",left:"auto"};function ut(e){var d,u,j,f=e.popper,k=e.popperRect,n=e.placement,w=e.variation,l=e.offsets,x=e.position,m=e.gpuAcceleration,M=e.adaptive,p=e.roundOffsets,E=p===!0?function(e){var n=e.x,s=e.y,t=window.devicePixelRatio||1;return{x:me(me(n*t)/t)||0,y:me(me(s*t)/t)||0}}(l):typeof p=="function"?p(l):l,C=E.x,o=C===void 0?0:C,_=E.y,c=_===void 0?0:_,O=l.hasOwnProperty("x"),F=l.hasOwnProperty("y"),b=i,v=s,z=window;if(M){var t=Z(f),A="clientHeight",S="clientWidth";t===h(f)&&g(t=y(f)).position!=="static"&&x==="absolute"&&(A="scrollHeight",S="scrollWidth"),t=t,n!==s&&(n!==i&&n!==r||w!==T)||(v=a,c-=t[A]-k.height,c*=m?1:-1),n!==i&&(n!==s&&n!==a||w!==T)||(b=r,o-=t[S]-k.width,o*=m?1:-1)}return j=Object.assign({position:x},M&&dt),m?Object.assign({},j,((d={})[v]=F?"0":"",d[b]=O?"0":"",d.transform=(z.devicePixelRatio||1)<=1?"translate("+o+"px, "+c+"px)":"translate3d("+o+"px, "+c+"px, 0)",d)):Object.assign({},j,((u={})[v]=F?c+"px":"",u[b]=O?o+"px":"",u.transform="",u))}const De={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,s=n.gpuAcceleration,c=s===void 0||s,o=n.adaptive,l=o===void 0||o,i=n.roundOffsets,a=i===void 0||i,r={placement:m(t.placement),variation:P(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:c};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,ut(Object.assign({},r,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:l,roundOffsets:a})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,ut(Object.assign({},r,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:a})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}};Y={passive:!0};const Te={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var n=e.state,t=e.instance,s=e.options,o=s.scroll,i=o===void 0||o,a=s.resize,r=a===void 0||a,c=h(n.elements.popper),l=[].concat(n.scrollParents.reference,n.scrollParents.popper);return i&&l.forEach(function(e){e.addEventListener("scroll",t.update,Y)}),r&&c.addEventListener("resize",t.update,Y),function(){i&&l.forEach(function(e){e.removeEventListener("scroll",t.update,Y)}),r&&c.removeEventListener("resize",t.update,Y)}},data:{}};pt={left:"right",right:"left",bottom:"top",top:"bottom"};function pe(e){return e.replace(/left|right|bottom|top/g,function(e){return pt[e]})}vt={start:"end",end:"start"};function Gt(e){return e.replace(/start|end/g,function(e){return vt[e]})}function Se(e){var t=h(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Ee(e){return L(y(e)).left+Se(e).scrollLeft}function Oe(e){var t=g(e),n=t.overflow,s=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+s)}function wt(e){return["html","body","#document"].indexOf(f(e))>=0?e.ownerDocument.body:l(e)&&Oe(e)?e:wt(_e(e))}function te(e,t){t===void 0&&(t=[]);var s,n=wt(e),o=n===((s=e.ownerDocument)==null?void 0:s.body),i=h(n),a=o?[i].concat(i.visualViewport||[],Oe(n)?n:[]):n,r=t.concat(a);return o?r:r.concat(te(_e(a)))}function Pe(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function Ct(e,t){return t===xe?Pe(function(e){var r=h(e),s=y(e),t=r.visualViewport,o=s.clientWidth,i=s.clientHeight,a=0,n=0;return t&&(o=t.width,i=t.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(a=t.offsetLeft,n=t.offsetTop)),{width:o,height:i,x:a+Ee(e),y:n}}(e)):l(t)?function(e){var t=L(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(t):Pe(function(e){var s,n=y(e),o=Se(e),t=(s=e.ownerDocument)==null?void 0:s.body,i=_(n.scrollWidth,n.clientWidth,t?t.scrollWidth:0,t?t.clientWidth:0),r=_(n.scrollHeight,n.clientHeight,t?t.scrollHeight:0,t?t.clientHeight:0),a=-o.scrollLeft+Ee(e),c=-o.scrollTop;return g(t||n).direction==="rtl"&&(a+=_(n.clientWidth,t?t.clientWidth:0)-i),{width:i,height:r,x:a,y:c}}(y(e)))}function Et(e){var n,o,l,t=e.reference,c=e.element,d=e.placement,u=d?m(d):null,p=d?P(d):null,h=t.x+t.width/2-c.width/2,f=t.y+t.height/2-c.height/2;switch(u){case s:n={x:h,y:t.y-c.height};break;case a:n={x:h,y:t.y+t.height};break;case r:n={x:t.x+t.width,y:f};break;case i:n={x:t.x-c.width,y:f};break;default:n={x:t.x,y:t.y}}if(o=u?Ye(u):null,o!=null)switch(l=o==="y"?"height":"width",p){case M:n[o]=n[o]-(t[l]/2-c[l]/2);break;case T:n[o]=n[o]+(t[l]/2-c[l]/2)}return n}function N(e,t){t===void 0&&(t={});var A,n=t,w=n.placement,x=w===void 0?e.placement:w,k=n.boundary,N=k===void 0?_t:k,O=n.rootBoundary,T=O===void 0?xe:O,E=n.elementContext,d=E===void 0?z:E,v=n.altBoundary,D=v!==void 0&&v,j=n.padding,m=j===void 0?0:j,c=at(typeof m!="number"?m:rt(m,$)),F=d===z?yt:z,C=e.rects.popper,h=e.elements[D?F:d],i=function(e,t,n){var i=t==="clippingParents"?function(e){var n=te(_e(e)),t=["absolute","fixed"].indexOf(g(e).position)>=0&&l(e)?Z(e):e;return ee(t)?n.filter(function(e){return ee(e)&&tt(e,t)&&f(e)!=="body"}):[]}(e):[].concat(t),o=[].concat(i,[n]),a=o[0],s=o.reduce(function(t,n){var s=Ct(e,n);return t.top=_(s.top,t.top),t.right=G(s.right,t.right),t.bottom=G(s.bottom,t.bottom),t.left=_(s.left,t.left),t},Ct(e,a));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}(ee(h)?h:h.contextElement||y(e.elements.popper),N,T),p=L(e.elements.reference),S=Et({reference:p,element:C,strategy:"absolute",placement:x}),M=Pe(Object.assign({},C,S)),o=d===z?M:p,u={top:i.top-o.top+c.top,bottom:o.bottom-i.bottom+c.bottom,left:i.left-o.left+c.left,right:o.right-i.right+c.right},b=e.modifiersData.offset;return d===z&&b&&(A=b[x],Object.keys(u).forEach(function(e){var t=[r,a].indexOf(e)>=0?1:-1,n=[s,a].indexOf(e)>=0?"y":"x";u[e]+=A[n]*t})),u}function Ds(e,t){t===void 0&&(t={});var s,n=t,c=n.placement,d=n.boundary,u=n.rootBoundary,h=n.padding,f=n.flipVariations,r=n.allowedAutoPlacements,l=r===void 0?Ae:r,i=P(c),a=i?f?ze:ze.filter(function(e){return P(e)===i}):$,o=a.filter(function(e){return l.indexOf(e)>=0});return o.length===0&&(o=a),s=o.reduce(function(t,n){return t[n]=N(e,{placement:n,boundary:d,rootBoundary:u,padding:h})[m(n)],t},{}),Object.keys(s).sort(function(e,t){return s[e]-s[t]})}const St={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,y=e.name;if(!t.modifiersData[y]._skip){for(var o,f,_,w,b=n.mainAxis,D=b===void 0||b,S=n.altAxis,W=S===void 0||S,B=n.fallbackPlacements,z=n.padding,A=n.boundary,O=n.rootBoundary,$=n.altBoundary,j=n.flipVariations,p=j===void 0||j,V=n.allowedAutoPlacements,l=t.options.placement,I=m(l),H=B||(I!==l&&p?function(e){if(m(e)===je)return[];var t=pe(e);return[Gt(e),t,Gt(t)]}(l):[pe(l)]),h=[l].concat(H).reduce(function(e,n){return e.concat(m(n)===je?Ds(t,{placement:n,boundary:A,rootBoundary:O,padding:z,flipVariations:p,allowedAutoPlacements:V}):n)},[]),R=t.rects.reference,L=t.rects.popper,k=new Map,T=!0,u=h[0],v=0;v=0,x=C?"width":"height",g=N(t,{placement:c,boundary:A,rootBoundary:O,altBoundary:$,padding:z}),d=C?E?r:i:E?a:s;if(R[x]>L[x]&&(d=pe(d)),_=pe(d),o=[],D&&o.push(g[F]<=0),W&&o.push(g[d]<=0,g[_]<=0),o.every(function(e){return e})){u=c,T=!1;break}k.set(c,o)}if(T)for(w=function(e){var t=h.find(function(t){var n=k.get(t);if(n)return n.slice(0,e).every(function(e){return e})});if(t)return u=t,"break"},f=p?3:1;f>0&&w(f)!=="break";f--);t.placement!==u&&(t.modifiersData[y]._skip=!0,t.placement=u,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function Mt(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Ft(e){return[s,r,a,i].some(function(t){return e[t]>=0})}const Tt={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,c=e.name,l=t.rects.reference,d=t.rects.popper,u=t.modifiersData.preventOverflow,a=N(t,{elementContext:"reference"}),r=N(t,{altBoundary:!0}),n=Mt(a,l),s=Mt(r,d,u),o=Ft(n),i=Ft(s);t.modifiersData[c]={referenceClippingOffsets:n,popperEscapeOffsets:s,isReferenceHidden:o,hasPopperEscaped:i},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":o,"data-popper-escaped":i})}},zt={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,c=e.options,l=e.name,n=c.offset,d=n===void 0?[0,0]:n,o=Ae.reduce(function(e,n){return e[n]=function(e,t,n){var c=m(e),d=[i,s].indexOf(c)>=0?-1:1,l=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,o=l[0],a=l[1];return o=o||0,a=(a||0)*d,[i,r].indexOf(c)>=0?{x:a,y:o}:{x:o,y:a}}(n,t.rects,d),e},{}),a=o[t.placement],u=a.x,h=a.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=u,t.modifiersData.popperOffsets.y+=h),t.modifiersData[l]=o}},Ue={name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=Et({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},Nt={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var v,t=e.state,l=e.options,ue=e.name,W=l.mainAxis,R=W===void 0||W,L=l.altAxis,S=L!==void 0&&L,de=l.boundary,le=l.rootBoundary,ae=l.altBoundary,J=l.padding,F=l.tether,d=F===void 0||F,A=l.tetherOffset,y=A===void 0?0:A,p=N(t,{boundary:de,rootBoundary:le,padding:J,altBoundary:ae}),oe=m(t.placement),x=P(t.placement),E=!x,n=Ye(oe),O=n==="x"?"y":"x",o=t.modifiersData.popperOffsets,u=t.rects.reference,b=t.rects.popper,g=typeof y=="function"?y(Object.assign({},t.rects,{placement:t.placement})):y,j={x:0,y:0};if(o){if(R||S){var D=n==="y"?s:i,X=n==="y"?a:r,c=n==="y"?"height":"width",H=o[n],I=o[n]+p[D],B=o[n]-p[X],V=d?-b[c]/2:0,se=x===M?u[c]:b[c],te=x===M?-b[c]:-u[c],U=t.elements.arrow,he=d&&U?qe(U):{width:0,height:0},q=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},Y=q[D],C=q[X],h=fe(0,u[c],he[c]),ie=E?u[c]/2-V-h-Y-g:se-h-Y-g,ee=E?-u[c]/2+V+h+C+g:te+h+C+g,w=t.elements.arrow&&Z(t.elements.arrow),ne=w?n==="y"?w.clientTop||0:w.clientLeft||0:0,$=t.modifiersData.offset?t.modifiersData.offset[t.placement][n]:0,k=o[n]+ie-$-ne,T=o[n]+ee-$;if(R&&(v=fe(d?G(I,k):I,H,d?_(B,T):B),o[n]=v,j[n]=v-H),S){var re=n==="x"?s:i,ce=n==="x"?a:r,f=o[O],z=f+p[re],K=f-p[ce],Q=fe(d?G(z,k):z,f,d?_(K,T):K);o[O]=Q,j[O]=Q-f}}t.modifiersData[ue]=j}},requiresIfExists:["offset"]};function Rs(e,t,n){n===void 0&&(n=!1),c=l(t),l(t)&&function(e){var t=e.getBoundingClientRect();t.width,e.offsetWidth,t.height,e.offsetHeight}(t);var o,c,d,a=y(t),i=L(e),r={scrollLeft:0,scrollTop:0},s={x:0,y:0};return(c||!c&&!n)&&((f(t)!=="body"||Oe(a))&&(r=(o=t)!==h(o)&&l(o)?{scrollLeft:(d=o).scrollLeft,scrollTop:d.scrollTop}:Se(o)),l(t)?((s=L(t)).x+=t.clientLeft,s.y+=t.clientTop):a&&(s.x=Ee(a))),{x:i.left+r.scrollLeft-s.x,y:i.top+r.scrollTop-s.y,width:i.width,height:i.height}}function Fs(e){var n=new Map,t=new Set,s=[];function o(e){t.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach(function(e){if(!t.has(e)){var s=n.get(e);s&&o(s)}}),s.push(e)}return e.forEach(function(e){n.set(e.name,e)}),e.forEach(function(e){t.has(e.name)||o(e)}),s}Ke={placement:"bottom",modifiers:[],strategy:"absolute"};function Ht(){for(var t=arguments.length,n=new Array(t),e=0;ee.on(t,"mouseover",ye)),this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(V),this._element.classList.add(V),e.trigger(this._element,"shown.bs.dropdown",t)}hide(){if(E(this._element)||!this._isShown(this._menu))return;const e={relatedTarget:this._element};this._completeHide(e)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){e.trigger(this._element,"hide.bs.dropdown",t).defaultPrevented||("ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>e.off(t,"mouseover",ye)),this._popper&&this._popper.destroy(),this._menu.classList.remove(V),this._element.classList.remove(V),this._element.setAttribute("aria-expanded","false"),n.removeDataAttribute(this._menu,"popper"),e.trigger(this._element,"hidden.bs.dropdown",t))}_getConfig(e){if(e={...this.constructor.Default,...n.getDataAttributes(this._element),...e},p(Xe,e,this.constructor.DefaultType),typeof e.reference=="object"&&!C(e.reference)&&typeof e.reference.getBoundingClientRect!="function")throw new TypeError(`${Xe.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return e}_createPopper(e){if(Wt===void 0)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let t=this._element;this._config.reference==="parent"?t=e:C(this._config.reference)?t=w(this._config.reference):typeof this._config.reference=="object"&&(t=this._config.reference);const s=this._getPopperConfig(),o=s.modifiers.find(e=>e.name==="applyStyles"&&e.enabled===!1);this._popper=Qe(t,this._menu,s),o&&n.setDataAttribute(this._menu,"popper","static")}_isShown(e=this._element){return e.classList.contains(V)}_getMenuElement(){return t.next(this._element,Fe)[0]}_getPlacement(){const e=this._element.parentNode;if(e.classList.contains("dropend"))return js;if(e.classList.contains("dropstart"))return bs;const t=getComputedStyle(this._menu).getPropertyValue("--bs-position").trim()==="end";return e.classList.contains("dropup")?t?xs:Cs:t?ws:Os}_detectNavbar(){return this._element.closest(".navbar")!==null}_getOffset(){const{offset:e}=this._config;return typeof e=="string"?e.split(",").map(e=>Number.parseInt(e,10)):typeof e=="function"?t=>e(t,this._element):e}_getPopperConfig(){const e={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return this._config.display==="static"&&(e.modifiers=[{name:"applyStyles",enabled:!1}]),{...e,...typeof this._config.popperConfig=="function"?this._config.popperConfig(e):this._config.popperConfig}}_selectMenuItem({key:e,target:n}){const s=t.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter(X);s.length&&an(s,n,e===Ze,!s.includes(n)).focus()}static jQueryInterface(e){return this.each(function(){const t=c.getOrCreateInstance(this,e);if(typeof e=="string"){if(t[e]===void 0)throw new TypeError(`No method named "${e}"`);t[e]()}})}static clearMenus(e){if(e&&(e.button===2||e.type==="keyup"&&e.key!=="Tab"))return;const n=t.find(q);for(let s=0,i=n.length;st+e),this._setElementAttributes(hn,"paddingRight",t=>t+e),this._setElementAttributes(mn,"marginRight",t=>t-e)}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(e,t,n){const s=this.getWidth();this._applyManipulationCallback(e,e=>{if(e!==this._element&&window.innerWidth>e.clientWidth+s)return;this._saveInitialAttribute(e,t);const o=window.getComputedStyle(e)[t];e.style[t]=`${n(Number.parseFloat(o))}px`})}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,"paddingRight"),this._resetElementAttributes(hn,"paddingRight"),this._resetElementAttributes(mn,"marginRight")}_saveInitialAttribute(e,t){const s=e.style[t];s&&n.setDataAttribute(e,t,s)}_resetElementAttributes(e,t){this._applyManipulationCallback(e,e=>{const s=n.getDataAttribute(e,t);s===void 0?e.style.removeProperty(t):(n.removeDataAttribute(e,t),e.style[t]=s)})}_applyManipulationCallback(e,n){C(e)?n(e):t.find(e,this._element).forEach(n)}isOverflowing(){return this.getWidth()>0}}const ds={className:"modal-backdrop",isVisible:!0,isAnimated:!1,rootElement:"body",clickCallback:null},ls={className:"string",isVisible:"boolean",isAnimated:"boolean",rootElement:"(element|string)",clickCallback:"(function|null)"},vn="show",bn="mousedown.bs.backdrop";class jn{constructor(e){this._config=this._getConfig(e),this._isAppended=!1,this._element=null}show(e){this._config.isVisible?(this._append(),this._config.isAnimated&&R(this._getElement()),this._getElement().classList.add(vn),this._emulateAnimation(()=>{O(e)})):O(e)}hide(e){this._config.isVisible?(this._getElement().classList.remove(vn),this._emulateAnimation(()=>{this.dispose(),O(e)})):O(e)}_getElement(){if(!this._element){const e=document.createElement("div");e.className=this._config.className,this._config.isAnimated&&e.classList.add("fade"),this._element=e}return this._element}_getConfig(e){return(e={...ds,...typeof e=="object"?e:{}}).rootElement=w(e.rootElement),p("backdrop",e,ls),e}_append(){this._isAppended||(this._config.rootElement.append(this._getElement()),e.on(this._getElement(),bn,()=>{O(this._config.clickCallback)}),this._isAppended=!0)}dispose(){this._isAppended&&(e.off(this._element,bn),this._element.remove(),this._isAppended=!1)}_emulateAnimation(e){sn(e,this._getElement(),this._config.isAnimated)}}const cs={trapElement:null,autofocus:!0},os={trapElement:"element",autofocus:"boolean"},wn=".bs.focustrap",On="backward";class xn{constructor(e){this._config=this._getConfig(e),this._isActive=!1,this._lastTabNavDirection=null}activate(){const{trapElement:t,autofocus:n}=this._config;this._isActive||(n&&t.focus(),e.off(document,wn),e.on(document,"focusin.bs.focustrap",e=>this._handleFocusin(e)),e.on(document,"keydown.tab.bs.focustrap",e=>this._handleKeydown(e)),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,e.off(document,wn))}_handleFocusin(e){const{target:o}=e,{trapElement:n}=this._config;if(o===document||o===n||n.contains(o))return;const s=t.focusableChildren(n);s.length===0?n.focus():this._lastTabNavDirection===On?s[s.length-1].focus():s[0].focus()}_handleKeydown(e){e.key==="Tab"&&(this._lastTabNavDirection=e.shiftKey?On:"forward")}_getConfig(e){return e={...cs,...typeof e=="object"?e:{}},p("focustrap",e,os),e}}const Cn="modal",En="Escape",kn={backdrop:!0,keyboard:!0,focus:!0},ss={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean"},Sn="hidden.bs.modal",Mn="show.bs.modal",Fn="resize.bs.modal",Tn="click.dismiss.bs.modal",zn="keydown.dismiss.bs.modal",Dn="mousedown.dismiss.bs.modal",Nn="modal-open",Ln="show",we="modal-static";class D extends u{constructor(e,n){super(e),this._config=this._getConfig(n),this._dialog=t.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollBar=new Me}static get Default(){return kn}static get NAME(){return Cn}toggle(e){return this._isShown?this.hide():this.show(e)}show(t){this._isShown||this._isTransitioning||e.trigger(this._element,Mn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isAnimated()&&(this._isTransitioning=!0),this._scrollBar.hide(),document.body.classList.add(Nn),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),e.on(this._dialog,Dn,()=>{e.one(this._element,"mouseup.dismiss.bs.modal",e=>{e.target===this._element&&(this._ignoreBackdropClick=!0)})}),this._showBackdrop(()=>this._showElement(t)))}hide(){if(!this._isShown||this._isTransitioning)return;if(e.trigger(this._element,"hide.bs.modal").defaultPrevented)return;this._isShown=!1;const t=this._isAnimated();t&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),this._focustrap.deactivate(),this._element.classList.remove(Ln),e.off(this._element,Tn),e.off(this._dialog,Dn),this._queueCallback(()=>this._hideModal(),this._element,t)}dispose(){[window,this._dialog].forEach(t=>e.off(t,".bs.modal")),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new jn({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new xn({trapElement:this._element})}_getConfig(e){return e={...kn,...n.getDataAttributes(this._element),...typeof e=="object"?e:{}},p(Cn,e,ss),e}_showElement(n){const s=this._isAnimated(),o=t.findOne(".modal-body",this._dialog);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0,o&&(o.scrollTop=0),s&&R(this._element),this._element.classList.add(Ln),this._queueCallback(()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,e.trigger(this._element,"shown.bs.modal",{relatedTarget:n})},this._dialog,s)}_setEscapeEvent(){this._isShown?e.on(this._element,zn,e=>{this._config.keyboard&&e.key===En?(e.preventDefault(),this.hide()):this._config.keyboard||e.key!==En||this._triggerBackdropTransition()}):e.off(this._element,zn)}_setResizeEvent(){this._isShown?e.on(window,Fn,()=>this._adjustDialog()):e.off(window,Fn)}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide(()=>{document.body.classList.remove(Nn),this._resetAdjustments(),this._scrollBar.reset(),e.trigger(this._element,Sn)})}_showBackdrop(t){e.on(this._element,Tn,e=>{this._ignoreBackdropClick?this._ignoreBackdropClick=!1:e.target===e.currentTarget&&(this._config.backdrop===!0?this.hide():this._config.backdrop==="static"&&this._triggerBackdropTransition())}),this._backdrop.show(t)}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(e.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented)return;const{classList:t,scrollHeight:o,style:n}=this._element,s=o>document.documentElement.clientHeight;!s&&n.overflowY==="hidden"||t.contains(we)||(s||(n.overflowY="hidden"),t.add(we),this._queueCallback(()=>{t.remove(we),s||this._queueCallback(()=>{n.overflowY=""},this._dialog)},this._dialog),this._element.focus())}_adjustDialog(){const e=this._element.scrollHeight>document.documentElement.clientHeight,n=this._scrollBar.getWidth(),t=n>0;(!t&&e&&!o()||t&&!e&&o())&&(this._element.style.paddingLeft=`${n}px`),(t&&!e&&!o()||!t&&e&&o())&&(this._element.style.paddingRight=`${n}px`)}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(e,t){return this.each(function(){const n=D.getOrCreateInstance(this,e);if(typeof e=="string"){if(n[e]===void 0)throw new TypeError(`No method named "${e}"`);n[e](t)}})}}e.on(document,"click.bs.modal.data-api",'[data-bs-toggle="modal"]',function(n){const s=b(this);["A","AREA"].includes(this.tagName)&&n.preventDefault(),e.one(s,Mn,t=>{t.defaultPrevented||e.one(s,Sn,()=>{X(this)&&this.focus()})});const o=t.findOne(".modal.show");o&&D.getInstance(o).hide(),D.getOrCreateInstance(s).toggle(this)}),ve(D),d(D);const Hn="offcanvas",In={backdrop:!0,keyboard:!0,scroll:!1},Qn={backdrop:"boolean",keyboard:"boolean",scroll:"boolean"},Vn="show",$n=".offcanvas.show",Wn="hidden.bs.offcanvas";class S extends u{constructor(e,t){super(e),this._config=this._getConfig(t),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get NAME(){return Hn}static get Default(){return In}toggle(e){return this._isShown?this.hide():this.show(e)}show(t){this._isShown||e.trigger(this._element,"show.bs.offcanvas",{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._element.style.visibility="visible",this._backdrop.show(),this._config.scroll||(new Me).hide(),this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(Vn),this._queueCallback(()=>{this._config.scroll||this._focustrap.activate(),e.trigger(this._element,"shown.bs.offcanvas",{relatedTarget:t})},this._element,!0))}hide(){this._isShown&&(e.trigger(this._element,"hide.bs.offcanvas").defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.remove(Vn),this._backdrop.hide(),this._queueCallback(()=>{this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._element.style.visibility="hidden",this._config.scroll||(new Me).reset(),e.trigger(this._element,Wn)},this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_getConfig(e){return e={...In,...n.getDataAttributes(this._element),...typeof e=="object"?e:{}},p(Hn,e,Qn),e}_initializeBackDrop(){return new jn({className:"offcanvas-backdrop",isVisible:this._config.backdrop,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:()=>this.hide()})}_initializeFocusTrap(){return new xn({trapElement:this._element})}_addEventListeners(){e.on(this._element,"keydown.dismiss.bs.offcanvas",e=>{this._config.keyboard&&e.key==="Escape"&&this.hide()})}static jQueryInterface(e){return this.each(function(){const t=S.getOrCreateInstance(this,e);if(typeof e=="string"){if(t[e]===void 0||e.startsWith("_")||e==="constructor")throw new TypeError(`No method named "${e}"`);t[e](this)}})}}e.on(document,"click.bs.offcanvas.data-api",'[data-bs-toggle="offcanvas"]',function(n){const s=b(this);if(["A","AREA"].includes(this.tagName)&&n.preventDefault(),E(this))return;e.one(s,Wn,()=>{X(this)&&this.focus()});const o=t.findOne($n);o&&o!==s&&S.getInstance(o).hide(),S.getOrCreateInstance(s).toggle(this)}),e.on(window,"load.bs.offcanvas.data-api",()=>t.find($n).forEach(e=>S.getOrCreateInstance(e).show())),ve(S),d(S);const Xn=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Yn=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i,Ts=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,Gn=(e,t)=>{const n=e.nodeName.toLowerCase();if(t.includes(n))return!Xn.has(n)||Boolean(Yn.test(e.nodeValue)||Ts.test(e.nodeValue));const s=t.filter(e=>e instanceof RegExp);for(let e=0,t=s.length;e{Gn(t,r)||e.removeAttribute(t.nodeName)})}return s.body.innerHTML}const Bn="tooltip",Zn=new Set(["sanitize","allowList","sanitizeFn"]),Jn={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(array|string|function)",container:"(string|element|boolean)",fallbackPlacements:"array",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",allowList:"object",popperConfig:"(null|object|function)"},es={AUTO:"auto",TOP:"top",RIGHT:o()?"left":"right",BOTTOM:"bottom",LEFT:o()?"right":"left"},ts={animation:!0,template:'',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:[0,0],container:!1,fallbackPlacements:["top","right","bottom","left"],boundary:"clippingParents",customClass:"",sanitize:!0,sanitizeFn:null,allowList:{"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},popperConfig:null},ns={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},se="fade",J="show",ne="show",Ne="out",yn=".tooltip-inner",gn=".modal",pn="hide.bs.modal",ue="hover",ln="focus";class H extends u{constructor(e,t){if(Wt===void 0)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(e),this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this._config=this._getConfig(t),this.tip=null,this._setListeners()}static get Default(){return ts}static get NAME(){return Bn}static get Event(){return ns}static get DefaultType(){return Jn}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(e){if(this._isEnabled)if(e){const t=this._initializeOnDelegatedTarget(e);t._activeTrigger.click=!t._activeTrigger.click,t._isWithActiveTrigger()?t._enter(null,t):t._leave(null,t)}else{if(this.getTipElement().classList.contains(J))return void this._leave(null,this);this._enter(null,this)}}dispose(){clearTimeout(this._timeout),e.off(this._element.closest(gn),pn,this._hideModalHandler),this.tip&&this.tip.remove(),this._disposePopper(),super.dispose()}show(){if(this._element.style.display==="none")throw new Error("Please use show on visible elements");if(!this.isWithContent()||!this._isEnabled)return;const r=e.trigger(this._element,this.constructor.Event.SHOW),s=Bt(this._element),l=s===null?this._element.ownerDocument.documentElement.contains(this._element):s.contains(this._element);if(r.defaultPrevented||!l)return;this.constructor.NAME==="tooltip"&&this.tip&&this.getTitle()!==this.tip.querySelector(yn).innerHTML&&(this._disposePopper(),this.tip.remove(),this.tip=null);const t=this.getTipElement(),i=(e=>{do e+=Math.floor(1e6*Math.random());while(document.getElementById(e))return e})(this.constructor.NAME);t.setAttribute("id",i),this._element.setAttribute("aria-describedby",i),this._config.animation&&t.classList.add(se);const a=typeof this._config.placement=="function"?this._config.placement.call(this,t,this._element):this._config.placement,n=this._getAttachment(a);this._addAttachmentClass(n);const{container:c}=this._config;K.set(t,this.constructor.DATA_KEY,this),this._element.ownerDocument.documentElement.contains(this.tip)||(c.append(t),e.trigger(this._element,this.constructor.Event.INSERTED)),this._popper?this._popper.update():this._popper=Qe(this._element,t,this._getPopperConfig(n)),t.classList.add(J);const o=this._resolvePossibleFunction(this._config.customClass);o&&t.classList.add(...o.split(" ")),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>{e.on(t,"mouseover",ye)});const d=this.tip.classList.contains(se);this._queueCallback(()=>{const t=this._hoverState;this._hoverState=null,e.trigger(this._element,this.constructor.Event.SHOWN),t===Ne&&this._leave(null,this)},this.tip,d)}hide(){if(!this._popper)return;const t=this.getTipElement();if(e.trigger(this._element,this.constructor.Event.HIDE).defaultPrevented)return;t.classList.remove(J),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>e.off(t,"mouseover",ye)),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1;const n=this.tip.classList.contains(se);this._queueCallback(()=>{this._isWithActiveTrigger()||(this._hoverState!==ne&&t.remove(),this._cleanTipClass(),this._element.removeAttribute("aria-describedby"),e.trigger(this._element,this.constructor.Event.HIDDEN),this._disposePopper())},this.tip,n),this._hoverState=""}update(){this._popper!==null&&this._popper.update()}isWithContent(){return Boolean(this.getTitle())}getTipElement(){if(this.tip)return this.tip;const t=document.createElement("div");t.innerHTML=this._config.template;const e=t.children[0];return this.setContent(e),e.classList.remove(se,J),this.tip=e,this.tip}setContent(e){this._sanitizeAndSetContent(e,this.getTitle(),yn)}_sanitizeAndSetContent(e,n,s){const o=t.findOne(s,e);n||!o?this.setElementContent(o,n):o.remove()}setElementContent(e,t){if(e!==null)return C(t)?(t=w(t),void(this._config.html?t.parentNode!==e&&(e.innerHTML="",e.append(t)):e.textContent=t.textContent)):void(this._config.html?(this._config.sanitize&&(t=et(t,this._config.allowList,this._config.sanitizeFn)),e.innerHTML=t):e.textContent=t)}getTitle(){const e=this._element.getAttribute("data-bs-original-title")||this._config.title;return this._resolvePossibleFunction(e)}updateAttachment(e){return e==="right"?"end":e==="left"?"start":e}_initializeOnDelegatedTarget(e,t){return t||this.constructor.getOrCreateInstance(e.delegateTarget,this._getDelegateConfig())}_getOffset(){const{offset:e}=this._config;return typeof e=="string"?e.split(",").map(e=>Number.parseInt(e,10)):typeof e=="function"?t=>e(t,this._element):e}_resolvePossibleFunction(e){return typeof e=="function"?e.call(this._element):e}_getPopperConfig(e){const t={placement:e,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"onChange",enabled:!0,phase:"afterWrite",fn:e=>this._handlePopperPlacementChange(e)}],onFirstUpdate:e=>{e.options.placement!==e.placement&&this._handlePopperPlacementChange(e)}};return{...t,...typeof this._config.popperConfig=="function"?this._config.popperConfig(t):this._config.popperConfig}}_addAttachmentClass(e){this.getTipElement().classList.add(`${this._getBasicClassPrefix()}-${this.updateAttachment(e)}`)}_getAttachment(e){return es[e.toUpperCase()]}_setListeners(){this._config.trigger.split(" ").forEach(t=>{if(t==="click")e.on(this._element,this.constructor.Event.CLICK,this._config.selector,e=>this.toggle(e));else if(t!=="manual"){const n=t===ue?this.constructor.Event.MOUSEENTER:this.constructor.Event.FOCUSIN,s=t===ue?this.constructor.Event.MOUSELEAVE:this.constructor.Event.FOCUSOUT;e.on(this._element,n,this._config.selector,e=>this._enter(e)),e.on(this._element,s,this._config.selector,e=>this._leave(e))}}),this._hideModalHandler=()=>{this._element&&this.hide()},e.on(this._element.closest(gn),pn,this._hideModalHandler),this._config.selector?this._config={...this._config,trigger:"manual",selector:""}:this._fixTitle()}_fixTitle(){const e=this._element.getAttribute("title"),t=typeof this._element.getAttribute("data-bs-original-title");(e||t!=="string")&&(this._element.setAttribute("data-bs-original-title",e||""),!e||this._element.getAttribute("aria-label")||this._element.textContent||this._element.setAttribute("aria-label",e),this._element.setAttribute("title",""))}_enter(e,t){t=this._initializeOnDelegatedTarget(e,t),e&&(t._activeTrigger[e.type==="focusin"?ln:ue]=!0),t.getTipElement().classList.contains(J)||t._hoverState===ne?t._hoverState=ne:(clearTimeout(t._timeout),t._hoverState=ne,t._config.delay&&t._config.delay.show?t._timeout=setTimeout(()=>{t._hoverState===ne&&t.show()},t._config.delay.show):t.show())}_leave(e,t){t=this._initializeOnDelegatedTarget(e,t),e&&(t._activeTrigger[e.type==="focusout"?ln:ue]=t._element.contains(e.relatedTarget)),t._isWithActiveTrigger()||(clearTimeout(t._timeout),t._hoverState=Ne,t._config.delay&&t._config.delay.hide?t._timeout=setTimeout(()=>{t._hoverState===Ne&&t.hide()},t._config.delay.hide):t.hide())}_isWithActiveTrigger(){for(const e in this._activeTrigger)if(this._activeTrigger[e])return!0;return!1}_getConfig(e){const t=n.getDataAttributes(this._element);return Object.keys(t).forEach(e=>{Zn.has(e)&&delete t[e]}),(e={...this.constructor.Default,...t,...typeof e=="object"&&e?e:{}}).container=e.container===!1?document.body:w(e.container),typeof e.delay=="number"&&(e.delay={show:e.delay,hide:e.delay}),typeof e.title=="number"&&(e.title=e.title.toString()),typeof e.content=="number"&&(e.content=e.content.toString()),p(Bn,e,this.constructor.DefaultType),e.sanitize&&(e.template=et(e.template,e.allowList,e.sanitizeFn)),e}_getDelegateConfig(){const e={};for(const t in this._config)this.constructor.Default[t]!==this._config[t]&&(e[t]=this._config[t]);return e}_cleanTipClass(){const t=this.getTipElement(),n=new RegExp(`(^|\\s)${this._getBasicClassPrefix()}\\S+`,"g"),e=t.getAttribute("class").match(n);e!==null&&e.length>0&&e.map(e=>e.trim()).forEach(e=>t.classList.remove(e))}_getBasicClassPrefix(){return"bs-tooltip"}_handlePopperPlacementChange(e){const{state:t}=e;t&&(this.tip=t.elements.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(t.placement)))}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null)}static jQueryInterface(e){return this.each(function(){const t=H.getOrCreateInstance(this,e);if(typeof e=="string"){if(t[e]===void 0)throw new TypeError(`No method named "${e}"`);t[e]()}})}}d(H);const fs={...H.Default,placement:"right",offset:[0,8],trigger:"click",content:"",template:''},ps={...H.DefaultType,content:"(string|element|function)"},gs={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"};class Ie extends H{static get Default(){return fs}static get NAME(){return"popover"}static get Event(){return gs}static get DefaultType(){return ps}isWithContent(){return this.getTitle()||this._getContent()}setContent(e){this._sanitizeAndSetContent(e,this.getTitle(),".popover-header"),this._sanitizeAndSetContent(e,this._getContent(),".popover-body")}_getContent(){return this._resolvePossibleFunction(this._config.content)}_getBasicClassPrefix(){return"bs-popover"}static jQueryInterface(e){return this.each(function(){const t=Ie.getOrCreateInstance(this,e);if(typeof e=="string"){if(t[e]===void 0)throw new TypeError(`No method named "${e}"`);t[e]()}})}}d(Ie);const cn="scrollspy",qn={offset:10,method:"auto",target:""},ys={offset:"number",method:"string",target:"(string|element)"},B="active",Be=".nav-link, .list-group-item, .dropdown-item",on="position";class ce extends u{constructor(t,n){super(t),this._scrollElement=this._element.tagName==="BODY"?window:this._element,this._config=this._getConfig(n),this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,e.on(this._scrollElement,"scroll.bs.scrollspy",()=>this._process()),this.refresh(),this._process()}static get Default(){return qn}static get NAME(){return cn}refresh(){const s=this._scrollElement===this._scrollElement.window?"offset":on,e=this._config.method==="auto"?s:this._config.method,o=e===on?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),t.find(Be,this._config.target).map(s=>{const i=Ge(s),a=i?t.findOne(i):null;if(a){const t=a.getBoundingClientRect();if(t.width||t.height)return[n[e](a).top+o,i]}return null}).filter(e=>e).sort((e,t)=>e[0]-t[0]).forEach(e=>{this._offsets.push(e[0]),this._targets.push(e[1])})}dispose(){e.off(this._scrollElement,".bs.scrollspy"),super.dispose()}_getConfig(e){return(e={...qn,...n.getDataAttributes(this._element),...typeof e=="object"&&e?e:{}}).target=w(e.target)||document.documentElement,p(cn,e,ys),e}_getScrollTop(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop}_getScrollHeight(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}_getOffsetHeight(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height}_process(){const e=this._getScrollTop()+this._config.offset,t=this._getScrollHeight(),n=this._config.offset+t-this._getOffsetHeight();if(this._scrollHeight!==t&&this.refresh(),e>=n){const e=this._targets[this._targets.length-1];this._activeTarget!==e&&this._activate(e)}else{if(this._activeTarget&&e0)return this._activeTarget=null,void this._clear();for(let t=this._offsets.length;t--;)this._activeTarget!==this._targets[t]&&e>=this._offsets[t]&&(this._offsets[t+1]===void 0||e`${e}[data-bs-target="${n}"],${e}[href="${n}"]`),s=t.findOne(o.join(","),this._config.target);s.classList.add(B),s.classList.contains("dropdown-item")?t.findOne(".dropdown-toggle",s.closest(".dropdown")).classList.add(B):t.parents(s,".nav, .list-group").forEach(e=>{t.prev(e,".nav-link, .list-group-item").forEach(e=>e.classList.add(B)),t.prev(e,".nav-item").forEach(e=>{t.children(e,".nav-link").forEach(e=>e.classList.add(B))})}),e.trigger(this._scrollElement,"activate.bs.scrollspy",{relatedTarget:n})}_clear(){t.find(Be,this._config.target).filter(e=>e.classList.contains(B)).forEach(e=>e.classList.remove(B))}static jQueryInterface(e){return this.each(function(){const t=ce.getOrCreateInstance(this,e);if(typeof e=="string"){if(t[e]===void 0)throw new TypeError(`No method named "${e}"`);t[e]()}})}}e.on(window,"load.bs.scrollspy.data-api",()=>{t.find('[data-bs-spy="scroll"]').forEach(e=>new ce(e))}),d(ce);const U="active",Xt="fade",Kt="show",Ut=".active",Vt=":scope > li > .active";class ae extends u{static get NAME(){return"tab"}show(){if(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains(U))return;let n;const o=b(this._element),s=this._element.closest(".nav, .list-group");if(s){const e=s.nodeName==="UL"||s.nodeName==="OL"?Vt:Ut;n=t.find(e,s),n=n[n.length-1]}const i=n?e.trigger(n,"hide.bs.tab",{relatedTarget:this._element}):null;if(e.trigger(this._element,"show.bs.tab",{relatedTarget:n}).defaultPrevented||i!==null&&i.defaultPrevented)return;this._activate(this._element,s);const a=()=>{e.trigger(n,"hidden.bs.tab",{relatedTarget:this._element}),e.trigger(this._element,"shown.bs.tab",{relatedTarget:n})};o?this._activate(o,o.parentNode,a):a()}_activate(e,n,s){const o=(!n||n.nodeName!=="UL"&&n.nodeName!=="OL"?t.children(n,Ut):t.find(Vt,n))[0],a=s&&o&&o.classList.contains(Xt),i=()=>this._transitionComplete(e,o,s);o&&a?(o.classList.remove(Kt),this._queueCallback(i,e,!0)):i()}_transitionComplete(e,n,s){if(n){n.classList.remove(U);const e=t.findOne(":scope > .dropdown-menu .active",n.parentNode);e&&e.classList.remove(U),n.getAttribute("role")==="tab"&&n.setAttribute("aria-selected",!1)}e.classList.add(U),e.getAttribute("role")==="tab"&&e.setAttribute("aria-selected",!0),R(e),e.classList.contains(Xt)&&e.classList.add(Kt);let o=e.parentNode;if(o&&o.nodeName==="LI"&&(o=o.parentNode),o&&o.classList.contains("dropdown-menu")){const n=e.closest(".dropdown");n&&t.find(".dropdown-toggle",n).forEach(e=>e.classList.add(U)),e.setAttribute("aria-expanded",!0)}s&&s()}static jQueryInterface(e){return this.each(function(){const t=ae.getOrCreateInstance(this);if(typeof e=="string"){if(t[e]===void 0)throw new TypeError(`No method named "${e}"`);t[e]()}})}}e.on(document,"click.bs.tab.data-api",'[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',function(e){["A","AREA"].includes(this.tagName)&&e.preventDefault(),E(this)||ae.getOrCreateInstance(this).show()}),d(ae);const Rt="toast",Lt="hide",Q="show",oe="showing",Ns={animation:"boolean",autohide:"boolean",delay:"number"},rn={animation:!0,autohide:!0,delay:5e3};class be extends u{constructor(e,t){super(e),this._config=this._getConfig(t),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get DefaultType(){return Ns}static get Default(){return rn}static get NAME(){return Rt}show(){e.trigger(this._element,"show.bs.toast").defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(Lt),R(this._element),this._element.classList.add(Q),this._element.classList.add(oe),this._queueCallback(()=>{this._element.classList.remove(oe),e.trigger(this._element,"shown.bs.toast"),this._maybeScheduleHide()},this._element,this._config.animation))}hide(){this._element.classList.contains(Q)&&(e.trigger(this._element,"hide.bs.toast").defaultPrevented||(this._element.classList.add(oe),this._queueCallback(()=>{this._element.classList.add(Lt),this._element.classList.remove(oe),this._element.classList.remove(Q),e.trigger(this._element,"hidden.bs.toast")},this._element,this._config.animation)))}dispose(){this._clearTimeout(),this._element.classList.contains(Q)&&this._element.classList.remove(Q),super.dispose()}_getConfig(e){return e={...rn,...n.getDataAttributes(this._element),...typeof e=="object"&&e?e:{}},p(Rt,e,this.constructor.DefaultType),e}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout(()=>{this.hide()},this._config.delay)))}_onInteraction(e,t){switch(e.type){case"mouseover":case"mouseout":this._hasMouseInteraction=t;break;case"focusin":case"focusout":this._hasKeyboardInteraction=t}if(t)return void this._clearTimeout();const n=e.relatedTarget;this._element===n||this._element.contains(n)||this._maybeScheduleHide()}_setListeners(){e.on(this._element,"mouseover.bs.toast",e=>this._onInteraction(e,!0)),e.on(this._element,"mouseout.bs.toast",e=>this._onInteraction(e,!1)),e.on(this._element,"focusin.bs.toast",e=>this._onInteraction(e,!0)),e.on(this._element,"focusout.bs.toast",e=>this._onInteraction(e,!1))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(e){return this.each(function(){const t=be.getOrCreateInstance(this,e);if(typeof e=="string"){if(t[e]===void 0)throw new TypeError(`No method named "${e}"`);t[e](this)}})}}return ve(be),d(be),{Alert:he,Button:ge,Carousel:v,Collapse:I,Dropdown:c,Modal:D,Offcanvas:S,Popover:Ie,ScrollSpy:ce,Tab:ae,Toast:be,Tooltip:H}})}}),d=c(l())})() \ No newline at end of file diff --git a/js/highlight.min.56a414730f1135fe77b5ea30bf74a2cc4101a6f386e85e5b789c800570cc33d33054000f45932c053a59b41018f72687867254a80e1b9710671852492533162f.js b/js/highlight.min.56a414730f1135fe77b5ea30bf74a2cc4101a6f386e85e5b789c800570cc33d33054000f45932c053a59b41018f72687867254a80e1b9710671852492533162f.js new file mode 100644 index 00000000..1cf7614e --- /dev/null +++ b/js/highlight.min.56a414730f1135fe77b5ea30bf74a2cc4101a6f386e85e5b789c800570cc33d33054000f45932c053a59b41018f72687867254a80e1b9710671852492533162f.js @@ -0,0 +1,2 @@ +(()=>{var c=Object.create,t=Object.defineProperty,x=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,v=Object.getPrototypeOf,g=Object.prototype.hasOwnProperty,p=(e,t)=>function(){return t||(0,e[s(e)[0]])((t={exports:{}}).exports,t),t.exports},h=(e,n,o,i)=>{if(n&&typeof n=="object"||typeof n=="function")for(let a of s(n))!g.call(e,a)&&a!==o&&t(e,a,{get:()=>n[a],enumerable:!(i=x(n,a))||i.enumerable});return e},u=(e,n,s)=>(s=e!=null?c(v(e)):{},h(n||!e||!e.__esModule?t(s,"default",{value:e,enumerable:!0}):s,e)),l=p({"node_modules/highlight.js/lib/core.js"(e,t){var n,i,a,r,l,d,u,h,m,f,p,g,v,b,_,O,C,E,k,A,M,F,T,z,D,N,L,P,H,I,B,V,$,W,U,K,q,Y,G,X,Z,J,j={exports:{}},ae,ce,le,ne,de,se,oe,ee;function w(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(function(t){var n=e[t];typeof n=="object"&&!Object.isFrozen(n)&&w(n)}),e}j.exports=w,j.exports.default=w,G=j.exports,b=class{constructor(e){e.data===void 0&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}};function Q(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function s(t,...n){const e=Object.create(null);for(const n in t)e[n]=t[n];return n.forEach(function(t){for(const n in t)e[n]=t[n]}),e}Z="",g=e=>!!e.kind,ae=(e,{prefix:t})=>{if(e.includes(".")){const n=e.split(".");return[`${t}${n.shift()}`,...n.map((e,t)=>`${e}${"_".repeat(t+1)}`)].join(" ")}return`${t}${e}`},ce=class{constructor(e,t){this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){this.buffer+=Q(e)}openNode(e){if(!g(e))return;let t=e.kind;e.sublanguage?t=`language-${t}`:t=ae(t,{prefix:this.classPrefix}),this.span(t)}closeNode(e){if(!g(e))return;this.buffer+=Z}value(){return this.buffer}span(e){this.buffer+=``}},p=class{constructor(){this.rootNode={children:[]},this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){const t={kind:e,children:[]};this.add(t),this.stack.push(t)}closeNode(){return this.stack.length>1?this.stack.pop():void 0}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){return typeof t=="string"?e.addText(t):t.children&&(e.openNode(t),t.children.forEach(t=>this._walk(e,t)),e.closeNode(t)),e}static _collapse(e){if(typeof e=="string")return;if(!e.children)return;e.children.every(e=>typeof e=="string")?e.children=[e.children.join("")]:e.children.forEach(e=>{p._collapse(e)})}},le=class extends p{constructor(e){super(),this.options=e}addKeyword(e,t){if(e==="")return;this.openNode(t),this.addText(e),this.closeNode()}addText(e){if(e==="")return;this.add(e)}addSublanguage(e,t){const n=e.root;n.kind=t,n.sublanguage=!0,this.add(n)}toHTML(){const e=new ce(this,this.options);return e.value()}finalize(){return!0}};function c(e){return e?typeof e=="string"?e:e.source:null}function S(e){return o("(?=",e,")")}function ue(e){return o("(?:",e,")*")}function Ce(e){return o("(?:",e,")?")}function o(...e){const t=e.map(e=>c(e)).join("");return t}function Ee(e){const t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function y(...e){const t=Ee(e),n="("+(t.capture?"":"?:")+e.map(e=>c(e)).join("|")+")";return n}function R(e){return new RegExp(e.toString()+"|").exec("").length-1}function ke(e,t){const n=e&&e.exec(t);return n&&n.index===0}M=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function x(e,{joinWith:t}){let n=0;return e.map(e=>{n+=1;const o=n;let t=c(e),s="";for(;t.length>0;){const e=M.exec(t);if(!e){s+=t;break}s+=t.substring(0,e.index),t=t.substring(e.index+e[0].length),e[0][0]==="\\"&&e[1]?s+="\\"+String(Number(e[1])+o):(s+=e[0],e[0]==="("&&n++)}return s}).map(e=>`(${e})`).join(t)}ne=/\b\B/,E="[a-zA-Z]\\w*",m="[a-zA-Z_]\\w*",k="\\b\\d+(\\.\\d+)?",C="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",O="\\b(0b[01]+)",F="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",T=(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=o(t,/.*\b/,e.binary,/\b.*/)),s({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(e,t)=>{e.index!==0&&t.ignoreMatch()}},e)},r={begin:"\\\\[\\s\\S]",relevance:0},D={scope:"string",begin:"'",end:"'",illegal:`\\n`,contains:[r]},N={scope:"string",begin:'"',end:'"',illegal:`\\n`,contains:[r]},L={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},d=function(e,t,n={}){const i=s({scope:"comment",begin:e,end:t,contains:[]},n);i.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const a=y("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return i.contains.push({begin:o(/[ ]+/,"(",a,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),i},P=d("//","$"),H=d("/\\*","\\*/"),I=d("#","$"),B={scope:"number",begin:k,relevance:0},de={scope:"number",begin:C,relevance:0},$={scope:"number",begin:O,relevance:0},W={begin:/(?=\/[^/\n]*\/)/,contains:[{scope:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[r,{begin:/\[/,end:/\]/,relevance:0,contains:[r]}]}]},U={scope:"title",begin:E,relevance:0},K={scope:"title",begin:m,relevance:0},q={begin:"\\.\\s*"+m,relevance:0},Y=function(e){return Object.assign(e,{"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}})},l=Object.freeze({__proto__:null,MATCH_NOTHING_RE:ne,IDENT_RE:E,UNDERSCORE_IDENT_RE:m,NUMBER_RE:k,C_NUMBER_RE:C,BINARY_NUMBER_RE:O,RE_STARTERS_RE:F,SHEBANG:T,BACKSLASH_ESCAPE:r,APOS_STRING_MODE:D,QUOTE_STRING_MODE:N,PHRASAL_WORDS_MODE:L,COMMENT:d,C_LINE_COMMENT_MODE:P,C_BLOCK_COMMENT_MODE:H,HASH_COMMENT_MODE:I,NUMBER_MODE:B,C_NUMBER_MODE:de,BINARY_NUMBER_MODE:$,REGEXP_MODE:W,TITLE_MODE:U,UNDERSCORE_TITLE_MODE:K,METHOD_GUARD:q,END_SAME_AS_BEGIN:Y});function Ae(e,t){const n=e.input[e.index-1];n==="."&&t.ignoreMatch()}function xe(e){e.className!==void 0&&(e.scope=e.className,delete e.className)}function Oe(e,t){if(!t)return;if(!e.beginKeywords)return;e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=Ae,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0)}function we(e){if(!Array.isArray(e.illegal))return;e.illegal=y(...e.illegal)}function _e(e){if(!e.match)return;if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}function je(e){e.relevance===void 0&&(e.relevance=1)}X=(e)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const n=Object.assign({},e);Object.keys(e).forEach(t=>{delete e[t]}),e.keywords=n.keywords,e.begin=o(n.beforeMatch,S(n.begin)),e.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},e.relevance=0,delete n.beforeMatch},se=["of","and","for","in","not","or","if","then","parent","list","value"],oe="keyword";function ie(e,t,n=oe){const s=Object.create(null);return typeof e=="string"?o(n,e.split(" ")):Array.isArray(e)?o(n,e):Object.keys(e).forEach(function(n){Object.assign(s,ie(e[n],t,n))}),s;function o(e,n){t&&(n=n.map(e=>e.toLowerCase())),n.forEach(function(t){const n=t.split("|");s[n[0]]=[e,be(n[0],n[1])]})}}function be(e,t){return t?Number(t):me(e)?0:1}function me(e){return se.includes(e.toLowerCase())}A={},n=e=>{console.error(e)},f=(e,...t)=>{console.log(`WARN: ${e}`,...t)},i=(e,t)=>{if(A[`${e}/${t}`])return;console.log(`Deprecated as of ${e}. ${t}`),A[`${e}/${t}`]=!0},u=new Error;function re(e,t,{key:n}){let s=0;const a=e[n],o={},i={};for(let e=1;e<=t.length;e++)i[e+s]=a[e],o[e+s]=!0,s+=R(t[e-1]);e[n]=i,e[n]._emit=o,e[n]._multi=!0}function fe(e){if(!Array.isArray(e.begin))return;if(e.skip||e.excludeBegin||e.returnBegin)throw n("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),u;if(typeof e.beginScope!="object"||e.beginScope===null)throw n("beginScope must be object"),u;re(e,e.begin,{key:"beginScope"}),e.begin=x(e.begin,{joinWith:""})}function pe(e){if(!Array.isArray(e.end))return;if(e.skip||e.excludeEnd||e.returnEnd)throw n("skip, excludeEnd, returnEnd not compatible with endScope: {}"),u;if(typeof e.endScope!="object"||e.endScope===null)throw n("endScope must be object"),u;re(e,e.end,{key:"endScope"}),e.end=x(e.end,{joinWith:""})}function ge(e){e.scope&&typeof e.scope=="object"&&e.scope!==null&&(e.beginScope=e.scope,delete e.scope)}function ve(e){ge(e),typeof e.beginScope=="string"&&(e.beginScope={_wrap:e.beginScope}),typeof e.endScope=="string"&&(e.endScope={_wrap:e.endScope}),fe(e),pe(e)}function he(e){function t(t,n){return new RegExp(c(t),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(n?"g":""))}class o{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(e,t){t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]),this.matchAt+=R(e)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const e=this.regexes.map(e=>e[1]);this.matcherRe=t(x(e,{joinWith:"|"}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;const t=this.matcherRe.exec(e);if(!t)return null;const n=t.findIndex((e,t)=>t>0&&e!==void 0),s=this.matchIndexes[n];return t.splice(0,n),Object.assign(t,s)}}class i{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];const t=new o;return this.rules.slice(e).forEach(([e,n])=>t.addRule(e,n)),t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(e,t){this.rules.push([e,t]),t.type==="begin"&&this.count++}exec(e){const n=this.getMatcher(this.regexIndex);n.lastIndex=this.lastIndex;let t=n.exec(e);if(this.resumingScanAtSamePosition())if(t&&t.index===this.lastIndex);else{const n=this.getMatcher(0);n.lastIndex=this.lastIndex+1,t=n.exec(e)}return t&&(this.regexIndex+=t.position+1,this.regexIndex===this.count&&this.considerAll()),t}}function a(e){const t=new i;return e.contains.forEach(e=>t.addRule(e.begin,{rule:e,type:"begin"})),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:"end"}),e.illegal&&t.addRule(e.illegal,{type:"illegal"}),t}function n(s,o){const i=s;if(s.isCompiled)return i;[xe,_e,ve,X].forEach(e=>e(s,o)),e.compilerExtensions.forEach(e=>e(s,o)),s.__beforeBegin=null,[Oe,we,je].forEach(e=>e(s,o)),s.isCompiled=!0;let r=null;return typeof s.keywords=="object"&&s.keywords.$pattern&&(s.keywords=Object.assign({},s.keywords),r=s.keywords.$pattern,delete s.keywords.$pattern),r=r||/\w+/,s.keywords&&(s.keywords=ie(s.keywords,e.case_insensitive)),i.keywordPatternRe=t(r,!0),o&&(s.begin||(s.begin=/\B|\b/),i.beginRe=t(i.begin),!s.end&&!s.endsWithParent&&(s.end=/\B|\b/),s.end&&(i.endRe=t(i.end)),i.terminatorEnd=c(i.end)||"",s.endsWithParent&&o.terminatorEnd&&(i.terminatorEnd+=(s.end?"|":"")+o.terminatorEnd)),s.illegal&&(i.illegalRe=t(s.illegal)),s.contains||(s.contains=[]),s.contains=[].concat(...s.contains.map(function(e){return ye(e==="self"?s:e)})),s.contains.forEach(function(e){n(e,i)}),s.starts&&n(s.starts,o),i.matcher=a(i),i}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=s(e.classNameAliases||{}),n(e)}function te(e){return!!e&&(e.endsWithParent||te(e.starts))}function ye(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(t){return s(e,{variants:null},t)})),e.cachedVariants?e.cachedVariants:te(e)?s(e,{starts:e.starts?s(e.starts):null}):Object.isFrozen(e)?s(e):e}ee="11.5.1",J=class extends Error{constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}},h=Q,v=s,_=Symbol("nomatch"),V=7,z=function(e){const a=Object.create(null),r=Object.create(null),k=[];let c=!0;const E="Could not find the language '{}', did you forget to load/include a language module?",C={disableAutodetect:!0,name:"Plain text",contains:[]};let t={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:le};function O(e){return t.noHighlightRe.test(e)}function B(e){let o=e.className+" ";o+=e.parentNode?e.parentNode.className:"";const n=t.languageDetectRe.exec(o);if(n){const t=s(n[1]);return t||(f(E.replace("{}",n[1])),f("Falling back to no-highlight mode for this block.",e)),t?n[1]:"no-highlight"}return o.split(/\s+/).find(e=>O(e)||s(e))}function j(e,t,n){let o="",a="";typeof t=="object"?(o=e,n=t.ignoreIllegals,a=t.language):(i("10.7.0","highlight(lang, code, ...args) has been deprecated."),i("10.7.0",`Please use highlight(code, options) instead. +https://github.com/highlightjs/highlight.js/issues/2277`),a=e,o=t),n===void 0&&(n=!0);const s={code:o,language:a};d("before:highlight",s);const r=s.result?s.result:p(s.language,s.code,n);return r.code=s.code,d("after:highlight",r),r}function p(e,o,i,r){const x=Object.create(null);function P(e,t){return e.keywords[t]}function A(){if(!l.keywords){u.addText(d);return}let n=0;l.keywordPatternRe.lastIndex=0;let e=l.keywordPatternRe.exec(d),t="";for(;e;){t+=d.substring(n,e.index);const s=m.case_insensitive?e[0].toLowerCase():e[0],o=P(l,s);if(o){const[n,i]=o;if(u.addText(t),t="",x[s]=(x[s]||0)+1,x[s]<=V&&(y+=i),n.startsWith("_"))t+=e[0];else{const t=m.classNameAliases[n]||n;u.addKeyword(e[0],t)}}else t+=e[0];n=l.keywordPatternRe.lastIndex,e=l.keywordPatternRe.exec(d)}t+=d.substr(n),u.addText(t)}function L(){if(d==="")return;let e=null;if(typeof l.subLanguage=="string"){if(!a[l.subLanguage]){u.addText(d);return}e=p(l.subLanguage,d,!0,T[l.subLanguage]),T[l.subLanguage]=e._top}else e=g(d,l.subLanguage.length?l.subLanguage:null);l.relevance>0&&(y+=e.relevance),u.addSublanguage(e._emitter,e.language)}function v(){l.subLanguage!=null?L():A(),d=""}function M(e,t){let n=1;const s=t.length-1;for(;n<=s;){if(!e._emit[n]){n++;continue}const s=m.classNameAliases[e[n]]||e[n],o=t[n];s?u.addKeyword(o,s):(d=o,A(),d=""),n++}}function F(e,t){return e.scope&&typeof e.scope=="string"&&u.openNode(m.classNameAliases[e.scope]||e.scope),e.beginScope&&(e.beginScope._wrap?(u.addKeyword(d,m.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),d=""):e.beginScope._multi&&(M(e.beginScope,t),d="")),l=Object.create(e,{parent:{value:l}}),l}function k(e,t,n){let s=ke(e.endRe,n);if(s){if(e["on:end"]){const n=new b(e);e["on:end"](t,n),n.isMatchIgnored&&(s=!1)}if(s){for(;e.endsParent&&e.parent;)e=e.parent;return e}}if(e.endsWithParent)return k(e.parent,t,n)}function z(e){return l.matcher.regexIndex===0?(d+=e[0],1):(C=!0,0)}function N(e){const n=e[0],t=e.rule,s=new b(t),o=[t.__beforeBegin,t["on:begin"]];for(const t of o){if(!t)continue;if(t(e,s),s.isMatchIgnored)return z(n)}return t.skip?d+=n:(t.excludeBegin&&(d+=n),v(),!t.returnBegin&&!t.excludeBegin&&(d=n)),F(t,e),t.returnBegin?0:n.length}function R(e){const t=e[0],i=o.substr(e.index),s=k(l,e,i);if(!s)return _;const n=l;l.endScope&&l.endScope._wrap?(v(),u.addKeyword(t,l.endScope._wrap)):l.endScope&&l.endScope._multi?(v(),M(l.endScope,e)):n.skip?d+=t:(n.returnEnd||n.excludeEnd||(d+=t),v(),n.excludeEnd&&(d=t));do l.scope&&u.closeNode(),!l.skip&&!l.subLanguage&&(y+=l.relevance),l=l.parent;while(l!==s.parent)return s.starts&&F(s.starts,e),n.returnEnd?0:t.length}function H(){const e=[];for(let t=l;t!==m;t=t.parent)t.scope&&e.unshift(t.scope);e.forEach(e=>u.openNode(e))}let j={};function S(t,n){const s=n&&n[0];if(d+=t,s==null)return v(),0;if(j.type==="begin"&&n.type==="end"&&j.index===n.index&&s===""){if(d+=o.slice(n.index,n.index+1),!c){const t=new Error(`0 width match regex (${e})`);throw t.languageName=e,t.badRule=j.rule,t}return 1}if(j=n,n.type==="begin")return N(n);if(n.type==="illegal"&&!i){const e=new Error('Illegal lexeme "'+s+'" for mode "'+(l.scope||"")+'"');throw e.mode=l,e}if(n.type==="end"){const e=R(n);if(e!==_)return e}if(n.type==="illegal"&&s==="")return 1;if(w>1e5&&w>n.index*3){const e=new Error("potential infinite loop, way more iterations than matches");throw e}return d+=s,s.length}const m=s(e);if(!m)throw n(E.replace("{}",e)),new Error('Unknown language: "'+e+'"');const D=he(m);let O="",l=r||D;const T={},u=new t.__emitter(t);H();let d="",y=0,f=0,w=0,C=!1;try{for(l.matcher.considerAll();;){w++,C?C=!1:l.matcher.considerAll(),l.matcher.lastIndex=f;const e=l.matcher.exec(o);if(!e)break;const t=o.substring(f,e.index),n=S(t,e);f=e.index+n}return S(o.substr(f)),u.closeAllNodes(),u.finalize(),O=u.toHTML(),{language:e,value:O,relevance:y,illegal:!1,_emitter:u,_top:l}}catch(t){if(t.message&&t.message.includes("Illegal"))return{language:e,value:h(o),illegal:!0,relevance:0,_illegalBy:{message:t.message,index:f,context:o.slice(f-100,f+100),mode:t.mode,resultSoFar:O},_emitter:u};if(c)return{language:e,value:h(o),illegal:!1,relevance:0,errorRaised:t,_emitter:u,_top:l};throw t}}function P(e){const n={value:h(e),illegal:!1,relevance:0,_top:C,_emitter:new t.__emitter(t)};return n._emitter.addText(e),n}function g(e,n){n=n||t.languages||Object.keys(a);const r=P(e),o=n.filter(s).filter(w).map(t=>p(t,e,!1));o.unshift(r);const c=o.sort((e,t)=>{if(e.relevance!==t.relevance)return t.relevance-e.relevance;if(e.language&&t.language){if(s(e.language).supersetOf===t.language)return 1;if(s(t.language).supersetOf===e.language)return-1}return 0}),[l,d]=c,i=l;return i.secondBest=d,i}function R(e,t,n){const s=t&&r[t]||n;e.classList.add("hljs"),e.classList.add(`language-${s}`)}function m(e){let i=null;const s=B(e);if(O(s))return;if(d("before:highlightElement",{el:e,language:s}),e.children.length>0&&(t.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(e)),t.throwUnescapedHTML)){const t=new J("One of your code blocks includes unescaped HTML.",e.innerHTML);throw t}i=e;const o=i.textContent,n=s?j(o,{language:s,ignoreIllegals:!0}):g(o);e.innerHTML=n.value,R(e,s,n.language),e.result={language:n.language,re:n.relevance,relevance:n.relevance},n.secondBest&&(e.secondBest={language:n.secondBest.language,relevance:n.secondBest.relevance}),d("after:highlightElement",{el:e,result:n,text:o})}function M(e){t=v(t,e)}const L=()=>{u(),i("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function F(){u(),i("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let A=!1;function u(){if(document.readyState==="loading"){A=!0;return}const e=document.querySelectorAll(t.cssSelector);e.forEach(m)}function T(){A&&u()}typeof window!="undefined"&&window.addEventListener&&window.addEventListener("DOMContentLoaded",T,!1);function z(t,s){let o=null;try{o=s(e)}catch(e){if(n("Language definition for '{}' could not be registered.".replace("{}",t)),!c)throw e;n(e),o=C}o.name||(o.name=t),a[t]=o,o.rawDefinition=s.bind(null,e),o.aliases&&x(o.aliases,{languageName:t})}function D(e){delete a[e];for(const t of Object.keys(r))r[t]===e&&delete r[t]}function N(){return Object.keys(a)}function s(e){return e=(e||"").toLowerCase(),a[e]||a[r[e]]}function x(e,{languageName:t}){typeof e=="string"&&(e=[e]),e.forEach(e=>{r[e.toLowerCase()]=t})}function w(e){const t=s(e);return t&&!t.disableAutodetect}function H(e){e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=t=>{e["before:highlightBlock"](Object.assign({block:t.el},t))}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=t=>{e["after:highlightBlock"](Object.assign({block:t.el},t))})}function I(e){H(e),k.push(e)}function d(e,t){const n=e;k.forEach(function(e){e[n]&&e[n](t)})}function $(e){return i("10.7.0","highlightBlock will be removed entirely in v12.0"),i("10.7.0","Please use highlightElement now."),m(e)}Object.assign(e,{highlight:j,highlightAuto:g,highlightAll:u,highlightElement:m,highlightBlock:$,configure:M,initHighlighting:L,initHighlightingOnLoad:F,registerLanguage:z,unregisterLanguage:D,listLanguages:N,getLanguage:s,registerAliases:x,autoDetection:w,inherit:v,addPlugin:I}),e.debugMode=function(){c=!1},e.safeMode=function(){c=!0},e.versionString=ee,e.regex={concat:o,lookahead:S,either:y,optional:Ce,anyNumberOfTimes:ue};for(const e in l)typeof l[e]=="object"&&G(l[e]);return Object.assign(e,l),e},a=z({}),t.exports=a,a.HighlightJS=a,a.default=a}}),d=u(l(),1),e=d.default,r="[A-Za-z$_][0-9A-Za-z$_]*",m=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],f=["true","false","null","undefined","NaN","Infinity"],a=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],i=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],o=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],b=["arguments","this","super","console","window","document","localStorage","module","global"],j=[].concat(o,a,i);function y(e){const n=e.regex,S=(e,{after:t})=>{const n="",end:""},F=/<[A-Za-z0-9\\._:-]+\s*\/>/,l={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,t)=>{const n=e[0].length+e.index,s=e.input[n];if(s==="<"||s===","){t.ignoreMatch();return}s===">"&&(S(e,{after:n})||t.ignoreMatch());let o;const i=e.input.substr(n);if((o=i.match(/^\s+extends\s+/))&&o.index===0){t.ignoreMatch();return}}},s={$pattern:r,keyword:m,literal:f,built_in:j,"variable.language":b},y="[0-9](_?[0-9])*",u=`\\.(${y})`,g=`0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`,v={className:"number",variants:[{begin:`(\\b(${g})((${u})|\\.)?|(${u}))[eE][+-]?(${y})\\b`},{begin:`\\b(${g})\\b((${u})\\b|\\.)?|(${u})\\b`},{begin:`\\b(0|[1-9](_?[0-9])*)n\\b`},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},d={className:"subst",begin:"\\$\\{",end:"\\}",keywords:s,contains:[]},_={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,d],subLanguage:"xml"}},w={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,d],subLanguage:"css"}},O={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,d]},H=e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:t+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),p={className:"comment",variants:[H,e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},E=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,_,w,O,v];d.contains=E.concat({begin:/\{/,end:/\}/,keywords:s,contains:["self"].concat(E)});const k=[].concat(p,d.contains),h=k.concat([{begin:/\(/,end:/\)/,keywords:s,contains:["self"].concat(k)}]),c={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:s,contains:h},M={variants:[{match:[/class/,/\s+/,t,/\s+/,/extends/,/\s+/,n.concat(t,"(",n.concat(/\./,t),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,t],scope:{1:"keyword",3:"title.class"}}]},C={relevance:0,match:n.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...a,...i]}},T={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},z={variants:[{match:[/function/,/\s+/,t,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[c],illegal:/%/},D={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function N(e){return n.concat("(?!",e.join("|"),")")}const L={match:n.concat(/\b/,N([...o,"super"]),t,n.lookahead(/\(/)),className:"title.function",relevance:0},R={begin:n.concat(/\./,n.lookahead(n.concat(t,/(?![0-9A-Za-z$_(])/))),end:t,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},P={match:[/get|set/,/\s+/,t,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},c]},x="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",I={match:[/const|var|let/,/\s+/,t,/\s*/,/=\s*/,/(async\s*)?/,n.lookahead(x)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[c]};return{name:"Javascript",aliases:["js","jsx","mjs","cjs"],keywords:s,exports:{PARAMS_CONTAINS:h,CLASS_REFERENCE:C},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),T,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,_,w,O,p,v,C,{className:"attr",begin:t+n.lookahead(":"),relevance:0},I,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[p,e.REGEXP_MODE,{className:"function",begin:x,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:s,contains:h}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:A.begin,end:A.end},{match:F},{begin:l.begin,"on:begin":l.isTrulyOpeningTag,end:l.end}],subLanguage:"xml",contains:[{begin:l.begin,end:l.end,skip:!0,contains:["self"]}]}]},z,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[c,e.inherit(e.TITLE_MODE,{begin:t,className:"title.function"})]},{match:/\.\.\./,relevance:0},R,{match:"\\$"+t,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[c]},L,D,M,P,{match:/\$[(.]/}]}}function _(e){const t={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},n={match:/[{}[\],:]/,className:"punctuation",relevance:0},s={beginKeywords:["true","false","null"].join(" ")};return{name:"JSON",contains:[t,n,e.QUOTE_STRING_MODE,s,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}function w(e){const o=e.regex,t={},a={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]};Object.assign(t,{className:"variable",variants:[{begin:o.concat(/\$[\w\d#@][\w\d_]*/,`(?![\\w\\d])(?![$])`)},a]});const n={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},i={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},s={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,t,n]};n.contains.push(s);const r={className:"",begin:/\\"/},c={className:"string",begin:/'/,end:/'/},l={begin:/\$\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,t]},d=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],u=e.SHEBANG({binary:`(${d.join("|")})`,relevance:10}),h={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},m=["if","then","else","elif","fi","for","while","in","do","done","case","esac","function"],f=["true","false"],p={match:/(\/[a-z._-]+)+/},g=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],v=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","type","typeset","ulimit","unalias"],b=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],j=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:m,literal:f,built_in:[...g,...v,"set","shopt",...b,...j]},contains:[u,e.SHEBANG(),h,l,e.HASH_COMMENT_MODE,i,p,s,r,c,t]}}function O(e){const t=e.regex,n=t.concat(/[A-Z_]/,t.optional(/[A-Z0-9_.-]*:/),/[A-Z0-9_.-]*/),l=/[A-Za-z0-9._:-]+/,o={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},i={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},r=e.inherit(i,{begin:/\(/,end:/\)/}),c=e.inherit(e.APOS_STRING_MODE,{className:"string"}),a=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),s={endsWithParent:!0,illegal:/`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,contains:[{className:"meta",begin://,relevance:10,contains:[i,a,c,r,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[i,r,a,c]}]}]},e.COMMENT(//,{relevance:10}),{begin://,relevance:10},o,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[a]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/)/,end:/>/,keywords:{name:"style"},contains:[s],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/)/,end:/>/,keywords:{name:"script"},contains:[s],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:t.concat(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:n,relevance:0,starts:s}]},{className:"tag",begin:t.concat(/<\//,t.lookahead(t.concat(n,/>/))),contains:[{className:"name",begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function n(e){const n=e.regex,s={className:"number",relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{begin:e.NUMBER_RE}]},t=e.COMMENT();t.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];const o={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},i={className:"literal",begin:/\bon|off|true|false|yes|no\b/},a={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]},c={begin:/\[/,end:/\]/,contains:[t,i,o,a,s,"self"],relevance:0},l=/[A-Za-z0-9_-]+/,d=/"(\\"|[^"])*"/,u=/'[^']*'/,r=n.either(l,d,u),h=n.concat(r,"(\\s*\\.\\s*",r,")*",n.lookahead(/\s*=\s*[^#\s]/));return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[t,{className:"section",begin:/\[+/,end:/\]+/},{begin:h,className:"attr",starts:{end:/$/,contains:[t,c,i,o,a,s]}}]}}function C(e){const n="true false yes no null",t="[\\w#;/?:@&=+$,.~*'()[\\]]+",h={className:"attr",variants:[{begin:"\\w[\\w :\\/.-]*:(?=[ ]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ ]|$)'},{begin:"'\\w[\\w :\\/.-]*':(?=[ ]|$)"}]},p={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},i={className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,p]},r=e.inherit(i,{variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),c="[0-9]{4}(-[0-9][0-9]){0,2}",l="([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?",g="(\\.[0-9]*)?",d="([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?",u={className:"number",begin:"\\b"+c+l+g+d+"\\b"},s={end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,relevance:0},m={begin:/\{/,end:/\}/,contains:[s],illegal:`\\n`,relevance:0},f={begin:"\\[",end:"\\]",contains:[s],illegal:`\\n`,relevance:0},a=[h,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+t},{className:"type",begin:"!<"+t+">"},{className:"type",begin:"!"+t},{className:"type",begin:"!!"+t},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},u,{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},m,f,i],o=[...a];return o.pop(),o.push(r),s.contains=o,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:a}}function E(e){const c=e.regex,o={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},m={begin:"^[-\\*]{3,}",end:"$"},h={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},u={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},d={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},l=/[A-Za-z][A-Za-z0-9+.-]*/,r={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:c.concat(/\[.+?\]\(/,l,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},n={className:"strong",contains:[],variants:[{begin:/_{2}/,end:/_{2}/},{begin:/\*{2}/,end:/\*{2}/}]},s={className:"emphasis",contains:[],variants:[{begin:/\*(?!\*)/,end:/\*/},{begin:/_(?!_)/,end:/_/,relevance:0}]},a=e.inherit(n,{contains:[]}),i=e.inherit(s,{contains:[]});n.contains.push(i),s.contains.push(a);let t=[o,r];[n,s,a,i].forEach(e=>{e.contains=e.contains.concat(t)}),t=t.concat(n,s);const f={className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:t},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:`\\n`,contains:t}]}]},p={className:"quote",begin:"^>\\s+",contains:t,end:"$"};return{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[f,o,u,n,s,p,h,m,r,d]}}function k(e){const v=e.regex,r=/[\p{XID_Start}_]\p{XID_Continue}*/u,u=["and","as","assert","async","await","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],p=["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],f=["__debug__","Ellipsis","False","None","NotImplemented","True"],m=["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"],a={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:u,built_in:p,literal:f,type:m},t={className:"meta",begin:/^(>>>|\.\.\.) /},o={className:"subst",begin:/\{/,end:/\}/,keywords:a,illegal:/#/},c={begin:/\{\{/,relevance:0},l={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,t],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,t],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,t,c,o]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,t,c,o]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,c,o]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,c,o]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},n="[0-9](_?[0-9])*",d=`(\\b(${n}))?\\.(${n})|\\b(${n})\\.`,s=`\\b|${u.join("|")}`,i={className:"number",relevance:0,variants:[{begin:`(\\b(${n})|(${d}))[eE][+-]?(${n})[jJ]?(?=${s})`},{begin:`(${d})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${s})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${s})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${s})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${s})`},{begin:`\\b(${n})[jJ](?=${s})`}]},g={className:"comment",begin:v.lookahead(/# type:/),end:/$/,keywords:a,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},h={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:["self",t,i,l,e.HASH_COMMENT_MODE]}]};return o.contains=[l,i,t],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:a,illegal:/(<\/|->|\?)|=>/,contains:[t,i,{begin:/\bself\b/},{beginKeywords:"if",relevance:0},l,g,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,r],scope:{1:"keyword",3:"title.function"},contains:[h]},{variants:[{match:[/\bclass/,/\s+/,r,/\s*/,/\(\s*/,r,/\s*\)/]},{match:[/\bclass/,/\s+/,r]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[i,h,l]}]}}e.registerLanguage("javascript",y),e.registerLanguage("json",_),e.registerLanguage("bash",w),e.registerLanguage("html",O),e.registerLanguage("ini",n),e.registerLanguage("toml",n),e.registerLanguage("yaml",C),e.registerLanguage("md",E),e.registerLanguage("python",k),document.addEventListener("DOMContentLoaded",()=>{document.querySelectorAll("pre code:not(.language-mermaid)").forEach(t=>{e.highlightElement(t)})})})() \ No newline at end of file diff --git a/layouts/404.html b/layouts/404.html deleted file mode 100644 index 74ad9cbe..00000000 --- a/layouts/404.html +++ /dev/null @@ -1,7 +0,0 @@ -{{ define "main" }} -
-
-

Go Home

-
-
-{{ end }} diff --git a/layouts/blog/single.html b/layouts/blog/single.html deleted file mode 100644 index 3f88e716..00000000 --- a/layouts/blog/single.html +++ /dev/null @@ -1,53 +0,0 @@ -{{ define "main" }} -
-
- -
- {{ if ne .Params.toc false -}} - - {{ end -}} - {{ if .Params.toc -}} -
- {{ else -}} -
- {{ end -}} - {{ if .Site.Params.options.breadCrumb -}} - - - {{ end }} -

{{ .Title }}

-

{{ .Params.lead | safeHTML }}

- {{ if ne .Params.toc false -}} - - {{ end -}} - {{ .Content }} - - {{ partial "main/docs-navigation.html" . }} - -
-
-{{ end }} diff --git a/layouts/docs/list.html b/layouts/docs/list.html deleted file mode 100644 index ea3ed6df..00000000 --- a/layouts/docs/list.html +++ /dev/null @@ -1,22 +0,0 @@ -{{ define "main" }} -
-
-
-

{{ if eq .CurrentSection .FirstSection }}{{ .Section | humanize }}{{ else }}{{ .Title }}{{ end }}

-
{{ .Content }}
-
- {{ $currentSection := .CurrentSection }} - {{ range where .Site.RegularPages.ByTitle "Section" .Section }} - {{ if in (.RelPermalink | string) $currentSection.RelPermalink }} - - {{ end }} - {{ end }} -
-
-
-
-{{ end }} diff --git a/layouts/index.html b/layouts/index.html deleted file mode 100644 index acb8320b..00000000 --- a/layouts/index.html +++ /dev/null @@ -1,82 +0,0 @@ -{{ define "main" }} -
-
-
-

{{ .Title }}

-
-
-

{{ .Params.lead | safeHTML }}

- Get Started - Or click here to visit our fanpage 📟 -
-
-
-{{ end }} {{ define "sidebar-prefooter" }} -
-
-
-
-

Hiệu quả 🍀

-

- Ubunchuu Trường Ú cung cấp cho bạn hệ thống tutorial được đầy đủ, - chuẩn hóa và đồng bộ để bạn có thể cài đặt và sử dụng. -

-
-
-

Cài đặt mượt mà ✨

-

- Bằng việc follow hướng dẫn của chúng mình, bạn sẽ có thể cài đặt và sử - dụng ubuntu một cách dễ dàng. -

-
-
-

Hỗ trợ ngay và luôn 💯

-

- Chúng mình có team hỗ trợ (gần như) 24/7, sẵn sàng giúp đỡ khi bạn gặp - lỗi. Hãy liên hệ với chúng mình qua email hoặc facebook. -

-
-
-
-
-

Đa dạng 🎉

-

- Có nhiều dự án để bạn khám phá như "15 Days Fly With Tux", manga - "Ubunchuu", config giao diện, terminal, etc. -

-
-
-

Tìm kiếm 🔎

-

- Tìm kiếm từ khóa dễ dàng với công cụ tìm kiếm được build sẵn trong - trang. -

-
-
-

Dark mode 🌗

-

- Bạn có thể đổi light/dark mode bằng cách nhấn vào biểu tượng mặt trăng - ở góc trên bên phải. -

-
-
-
-
-{{ end }} {{ define "sidebar-footer" }} -
-
-
{{- .Content -}}
-
-
-{{ end }} diff --git a/layouts/partials/head/custom-head.html b/layouts/partials/head/custom-head.html deleted file mode 100644 index 0c59d7ff..00000000 --- a/layouts/partials/head/custom-head.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/layouts/single.html b/layouts/single.html deleted file mode 100644 index 3f88e716..00000000 --- a/layouts/single.html +++ /dev/null @@ -1,53 +0,0 @@ -{{ define "main" }} -
-
- -
- {{ if ne .Params.toc false -}} - - {{ end -}} - {{ if .Params.toc -}} -
- {{ else -}} -
- {{ end -}} - {{ if .Site.Params.options.breadCrumb -}} - - - {{ end }} -

{{ .Title }}

-

{{ .Params.lead | safeHTML }}

- {{ if ne .Params.toc false -}} - - {{ end -}} - {{ .Content }} - - {{ partial "main/docs-navigation.html" . }} - -
-
-{{ end }} diff --git a/assets/images/linux.ico b/linux.ico similarity index 100% rename from assets/images/linux.ico rename to linux.ico diff --git a/logo-doks.png b/logo-doks.png new file mode 100644 index 00000000..74bdfb9d Binary files /dev/null and b/logo-doks.png differ diff --git a/logo-doks.svg b/logo-doks.svg new file mode 100644 index 00000000..4631bc53 --- /dev/null +++ b/logo-doks.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/main.cb35b0af899ab92cb1e3bf5d6194f958b5275cb5f47316b6b461ca52b2a95bb1d43fe5695a862ae14c1aae7e088b912c6e0f10ff419016afab4c72570823ced6.css b/main.cb35b0af899ab92cb1e3bf5d6194f958b5275cb5f47316b6b461ca52b2a95bb1d43fe5695a862ae14c1aae7e088b912c6e0f10ff419016afab4c72570823ced6.css new file mode 100644 index 00000000..b8fd813e --- /dev/null +++ b/main.cb35b0af899ab92cb1e3bf5d6194f958b5275cb5f47316b6b461ca52b2a95bb1d43fe5695a862ae14c1aae7e088b912c6e0f10ff419016afab4c72570823ced6.css @@ -0,0 +1,6 @@ +/*! + * Bootstrap v5.1.3 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors + * Copyright 2011-2021 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root{--bs-blue: #0d6efd;--bs-indigo: #6610f2;--bs-purple: #5d2f86;--bs-pink: #d63384;--bs-red: #dc3545;--bs-orange: #fd7e14;--bs-yellow: #ffe000;--bs-green: #198754;--bs-teal: #20c997;--bs-cyan: #0dcaf0;--bs-white: #fff;--bs-gray: #6c757d;--bs-gray-dark: #343a40;--bs-gray-100: #f8f9fa;--bs-gray-200: #e9ecef;--bs-gray-300: #dee2e6;--bs-gray-400: #ced4da;--bs-gray-500: #adb5bd;--bs-gray-600: #6c757d;--bs-gray-700: #495057;--bs-gray-800: #343a40;--bs-gray-900: #212529;--bs-primary: #5d2f86;--bs-secondary: #6c757d;--bs-success: #198754;--bs-info: #0dcaf0;--bs-warning: #ffe000;--bs-danger: #dc3545;--bs-light: #f8f9fa;--bs-dark: #212529;--bs-primary-rgb: 93,47,134;--bs-secondary-rgb: 108,117,125;--bs-success-rgb: 25,135,84;--bs-info-rgb: 13,202,240;--bs-warning-rgb: 255,224,0;--bs-danger-rgb: 220,53,69;--bs-light-rgb: 248,249,250;--bs-dark-rgb: 33,37,41;--bs-white-rgb: 255,255,255;--bs-black-rgb: 29,45,53;--bs-body-color-rgb: 29,45,53;--bs-body-bg-rgb: 255,255,255;--bs-font-sans-serif: "Jost", -apple-system, blinkmacsystemfont, "Segoe UI", roboto, "Helvetica Neue", arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--bs-font-monospace: sfmono-regular, menlo, monaco, consolas, "Liberation Mono", "Courier New", monospace;--bs-gradient: linear-gradient(180deg, rgba(255,255,255,0.15), rgba(255,255,255,0));--bs-body-font-family: Jost,-apple-system,blinkmacsystemfont,Segoe UI,roboto,Helvetica Neue,arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--bs-body-font-size: 1rem;--bs-body-font-weight: 400;--bs-body-line-height: 1.5;--bs-body-color: #1d2d35;--bs-body-bg: #fff}*,*::before,*::after{box-sizing:border-box}@media (prefers-reduced-motion: no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(29,45,53,0)}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:.5rem;font-weight:700;line-height:1.2}h1,.h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width: 1200px){h1,.h1{font-size:2.5rem}}h2,.h2{font-size:calc(1.325rem + .9vw)}@media (min-width: 1200px){h2,.h2{font-size:2rem}}h3,.h3{font-size:calc(1.3rem + .6vw)}@media (min-width: 1200px){h3,.h3{font-size:1.75rem}}h4,.h4{font-size:calc(1.275rem + .3vw)}@media (min-width: 1200px){h4,.h4{font-size:1.5rem}}h5,.h5{font-size:1.25rem}h6,.h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small,.small{font-size:.875em}sub{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}a{color:#5d2f86;text-decoration:none}a:hover{color:#4a266b}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--bs-font-monospace);font-size:1em;direction:ltr /* rtl:ignore */;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tr,td,th{border-color:inherit;border-style:solid;border-width:0}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role="button"]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}button,[type="button"]{-webkit-appearance:button}button:not(:disabled),[type="button"]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type="search"]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-webkit-file-upload-button{font:inherit}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}[hidden]{display:none !important}.lead{font-size:1.25rem;font-weight:400}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.img-fluid{max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:#6c757d}.container,.container-fluid,.container-xxl{width:100%;padding-right:var(--bs-gutter-x, 24px);padding-left:var(--bs-gutter-x, 24px);margin-right:auto;margin-left:auto}@media (min-width: 576px){.container{max-width:540px}}@media (min-width: 768px){.container{max-width:720px}}@media (min-width: 992px){.container{max-width:960px}}@media (min-width: 1200px){.container{max-width:1240px}}@media (min-width: 1400px){.container-xxl,.container{max-width:1320px}}.row{--bs-gutter-x: 48px;--bs-gutter-y: 0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-1>*{flex:0 0 auto;width:100%}@media (min-width: 768px){.row-cols-md-2>*{flex:0 0 auto;width:50%}.col-md-8{flex:0 0 auto;width:50%}.col-md-12{flex:0 0 auto;width:75%}.col-md-13{flex:0 0 auto;width:81.25%}}@media (min-width: 992px){.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.col-lg-4{flex:0 0 auto;width:25%}.col-lg-5{flex:0 0 auto;width:31.25%}.col-lg-8{flex:0 0 auto;width:50%}.col-lg-9{flex:0 0 auto;width:56.25%}.col-lg-10{flex:0 0 auto;width:62.5%}.col-lg-11{flex:0 0 auto;width:68.75%}.col-lg-12{flex:0 0 auto;width:75%}.g-lg-5{--bs-gutter-x: 3rem}.g-lg-5{--bs-gutter-y: 3rem}}@media (min-width: 1200px){.col-xl{flex:1 0 0%}.col-xl-3{flex:0 0 auto;width:18.75%}.col-xl-4{flex:0 0 auto;width:25%}.col-xl-8{flex:0 0 auto;width:50%}.col-xl-9{flex:0 0 auto;width:56.25%}}.table,table{--bs-table-bg: rgba(0,0,0,0);--bs-table-accent-bg: rgba(0,0,0,0);--bs-table-striped-color: #1d2d35;--bs-table-striped-bg: rgba(29,45,53,0.05);--bs-table-active-color: #1d2d35;--bs-table-active-bg: rgba(29,45,53,0.1);--bs-table-hover-color: #1d2d35;--bs-table-hover-bg: rgba(29,45,53,0.075);width:100%;margin-bottom:1rem;color:#1d2d35;vertical-align:top;border-color:#e9ecef}.table>:not(caption)>*>*,table>:not(caption)>*>*{padding:.5rem .5rem;background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg)}.table>tbody,table>tbody{vertical-align:inherit}.table>thead,table>thead{vertical-align:bottom}.table>:not(:first-child),table>:not(:first-child){border-top:2px solid currentColor}[data-dark-mode] body table{--bs-table-bg: #212529;--bs-table-striped-bg: #2c3034;--bs-table-striped-color: #fff;--bs-table-active-bg: #373b3e;--bs-table-active-color: #fff;--bs-table-hover-bg: #323539;--bs-table-hover-color: #fff;color:#fff;border-color:#373b3e}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#1d2d35;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.25rem;transition:border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control[type="file"]{overflow:hidden}.form-control[type="file"]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#1d2d35;background-color:#fff;border-color:#ae97c3;outline:0;box-shadow:0 0 0 0 rgba(93,47,134,0.25)}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled{background-color:#e9ecef;opacity:1}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#1d2d35;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;-webkit-transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out;transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#1d2d35;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#dde0e3}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#dde0e3}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#1d2d35;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;-webkit-transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out;transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#dde0e3}.btn{display:inline-block;font-weight:400;line-height:1.5;color:#1d2d35;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;border-radius:.25rem;transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:#1d2d35}.btn:focus{outline:0;box-shadow:0 0 0 0 rgba(93,47,134,0.25)}.btn:disabled,.btn.disabled{pointer-events:none;opacity:.65}.btn-primary{color:#fff;background-color:#5d2f86;border-color:#5d2f86}.btn-primary:hover{color:#fff;background-color:#4f2872;border-color:#4a266b}.btn-primary:focus{color:#fff;background-color:#4f2872;border-color:#4a266b;box-shadow:0 0 0 0 rgba(117,78,152,0.5)}.btn-primary:active,.btn-primary.active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#4a266b;border-color:#462365}.btn-primary:active:focus,.btn-primary.active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(117,78,152,0.5)}.btn-primary:disabled,.btn-primary.disabled{color:#fff;background-color:#5d2f86;border-color:#5d2f86}.btn-light{color:#1d2d35;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#1d2d35;background-color:#f9fafb;border-color:#f9fafb}.btn-light:focus{color:#1d2d35;background-color:#f9fafb;border-color:#f9fafb;box-shadow:0 0 0 0 rgba(215,218,220,0.5)}.btn-light:active,.btn-light.active,.show>.btn-light.dropdown-toggle{color:#1d2d35;background-color:#f9fafb;border-color:#f9fafb}.btn-light:active:focus,.btn-light.active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(215,218,220,0.5)}.btn-light:disabled,.btn-light.disabled{color:#1d2d35;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-primary{color:#5d2f86;border-color:#5d2f86}.btn-outline-primary:hover{color:#fff;background-color:#5d2f86;border-color:#5d2f86}.btn-outline-primary:focus{box-shadow:0 0 0 0 rgba(93,47,134,0.5)}.btn-outline-primary:active,.btn-outline-primary.active,.btn-outline-primary.dropdown-toggle.show{color:#fff;background-color:#5d2f86;border-color:#5d2f86}.btn-outline-primary:active:focus,.btn-outline-primary.active:focus,.btn-outline-primary.dropdown-toggle.show:focus{box-shadow:0 0 0 0 rgba(93,47,134,0.5)}.btn-outline-primary:disabled,.btn-outline-primary.disabled{color:#5d2f86;background-color:transparent}.btn-link{font-weight:400;color:#5d2f86;text-decoration:none}.btn-link:hover{color:#4a266b}.btn-link:disabled,.btn-link.disabled{color:#6c757d}.btn-lg{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.btn-sm{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.fade{transition:opacity 0.15s linear}@media (prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.dropdown{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;z-index:1000;display:none;min-width:10rem;padding:.5rem 0;margin:0;font-size:1rem;color:#1d2d35;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(29,45,53,0.15);border-radius:.25rem}@media (min-width: 992px){.dropdown-menu-lg-end{--bs-position: end}}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid rgba(29,45,53,0.15)}.dropdown-item{display:block;width:100%;padding:.25rem 1rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:hover,.dropdown-item:focus{color:#1e2125;background-color:#e9ecef}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#5d2f86}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem;color:#5d2f86;transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.nav-link{transition:none}}.nav-link:hover,.nav-link:focus{color:#4a266b}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}.navbar>.container,.navbar>.container-fluid,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;white-space:nowrap}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem}@media (min-width: 992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg .offcanvas-header{display:none}.navbar-expand-lg .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible !important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-light .navbar-brand{color:#5d2f86}.navbar-light .navbar-brand:hover,.navbar-light .navbar-brand:focus{color:#5d2f86}.navbar-light .navbar-nav .nav-link{color:#1d2d35}.navbar-light .navbar-nav .nav-link:hover,.navbar-light .navbar-nav .nav-link:focus{color:#5d2f86}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(29,45,53,0.3)}.navbar-light .navbar-nav .show>.nav-link,.navbar-light .navbar-nav .nav-link.active{color:#5d2f86}.navbar-light .navbar-text{color:#1d2d35}.navbar-light .navbar-text a,.navbar-light .navbar-text a:hover,.navbar-light .navbar-text a:focus{color:#5d2f86}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid #e9ecef;border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-body{flex:1 1 auto;padding:1rem 1rem}.card-img-top{width:100%}.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.breadcrumb{display:flex;flex-wrap:wrap;padding:0 0;margin-bottom:1rem;list-style:none}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#6c757d;content:var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;color:#5d2f86;background-color:#fff;border:1px solid #dee2e6;transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:#4a266b;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;color:#4a266b;background-color:#e9ecef;outline:0;box-shadow:0 0 0 0 rgba(93,47,134,0.25)}.page-item:not(:first-child) .page-link{margin-left:-1px}.page-item.active .page-link{z-index:3;color:#fff;background-color:#5d2f86;border-color:#5d2f86}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;background-color:#fff;border-color:#dee2e6}.page-link{padding:.375rem .75rem}.page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.badge{display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{position:relative;padding:1rem 1.5rem;margin-bottom:0;border:0 solid transparent;border-radius:0}.alert-link{font-weight:700}.alert-dismissible{padding-right:4.5rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1.5rem}.alert-primary{color:#fff;background-color:#5d2f86;border-color:#5d2f86}.alert-primary .alert-link{color:#ccc}.alert-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.alert-secondary .alert-link{color:#ccc}.alert-success{color:#fff;background-color:#198754;border-color:#198754}.alert-success .alert-link{color:#ccc}.alert-info{color:#1d2d35;background-color:#0dcaf0;border-color:#0dcaf0}.alert-info .alert-link{color:#17242a}.alert-warning{color:#1d2d35;background-color:#ffe000;border-color:#ffe000}.alert-warning .alert-link{color:#17242a}.alert-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.alert-danger .alert-link{color:#ccc}.alert-light{color:#1d2d35;background-color:#f8f9fa;border-color:#f8f9fa}.alert-light .alert-link{color:#17242a}.alert-dark{color:#fff;background-color:#212529;border-color:#212529}.alert-dark .alert-link{color:#ccc}@-webkit-keyframes progress-bar-stripes{0%{background-position-x:1rem}}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#1d2d35;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.5rem 1rem;color:#212529;background-color:#fff;border:1px solid rgba(29,45,53,0.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#5d2f86;border-color:#5d2f86}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.btn-close{box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:#1d2d35;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%231d2d35'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;border:0;border-radius:.25rem;opacity:.5}.btn-close:hover{color:#1d2d35;text-decoration:none;opacity:.75}.btn-close:focus{outline:0;box-shadow:0 0 0 0 rgba(93,47,134,0.25);opacity:1}.btn-close:disabled,.btn-close.disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:.25}@-webkit-keyframes spinner-border{to{transform:rotate(360deg) /* rtl:ignore */}}@keyframes spinner-border{to{transform:rotate(360deg) /* rtl:ignore */}}@-webkit-keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.offcanvas{position:fixed;bottom:0;z-index:1045;display:flex;flex-direction:column;max-width:100%;visibility:hidden;background-color:#fff;background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}@media (prefers-reduced-motion: reduce){.offcanvas{transition:none}}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1rem}.offcanvas-header .btn-close{padding:.5rem .5rem;margin-top:-.5rem;margin-right:-.5rem;margin-bottom:-.5rem}.offcanvas-title{margin-bottom:0;line-height:1.5}.offcanvas-body{flex-grow:1;padding:1rem 1rem;overflow-y:auto}.offcanvas-start{top:0;left:0;width:400px;border-right:1px solid rgba(29,45,53,0.2);transform:translateX(-100%)}.offcanvas-end{top:0;right:0;width:400px;border-left:1px solid rgba(29,45,53,0.2);transform:translateX(100%)}.offcanvas.show{transform:none}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentColor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}@-webkit-keyframes placeholder-glow{50%{opacity:.2}}@keyframes placeholder-glow{50%{opacity:.2}}@-webkit-keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}@keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}@media (min-width: 992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.visually-hidden{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.d-block{display:block !important}.d-flex{display:flex !important}.d-none{display:none !important}.shadow{box-shadow:0 0.5rem 1rem rgba(29,45,53,0.15) !important}.position-relative{position:relative !important}.border-0{border:0 !important}.border-top{border-top:1px solid #e9ecef !important}.w-100{width:100% !important}.flex-column{flex-direction:column !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-1{flex-shrink:1 !important}.flex-wrap{flex-wrap:wrap !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.align-items-center{align-items:center !important}.order-first{order:-1 !important}.order-0{order:0 !important}.order-2{order:2 !important}.order-3{order:3 !important}.order-last{order:6 !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.mt-0{margin-top:0 !important}.mt-2{margin-top:.5rem !important}.mt-3{margin-top:1rem !important}.mt-4{margin-top:1.5rem !important}.me-2{margin-right:.5rem !important}.mb-1{margin-bottom:.25rem !important}.mb-2{margin-bottom:.5rem !important}.mb-4{margin-bottom:1.5rem !important}.ms-0{margin-left:0 !important}.ms-2{margin-left:.5rem !important}.ms-3{margin-left:1rem !important}.ms-auto{margin-left:auto !important}.my-n3{margin-top:-1rem !important;margin-bottom:-1rem !important}.mt-n3{margin-top:-1rem !important}.p-2{padding:.5rem !important}.p-4{padding:1.5rem !important}.px-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.pe-4{padding-right:1.5rem !important}.pb-1{padding-bottom:.25rem !important}.pb-3{padding-bottom:1rem !important}.pb-4{padding-bottom:1.5rem !important}.ps-0{padding-left:0 !important}.ps-2{padding-left:.5rem !important}.fw-normal{font-weight:400 !important}.text-center{text-align:center !important}.text-uppercase{text-transform:uppercase !important}.text-primary{--bs-text-opacity: 1;color:rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important}.text-dark{--bs-text-opacity: 1;color:rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important}.text-body{--bs-text-opacity: 1;color:rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important}.text-muted{--bs-text-opacity: 1;color:#6c757d !important}.text-black-50{--bs-text-opacity: 1;color:rgba(29,45,53,0.5) !important}.text-reset{--bs-text-opacity: 1;color:inherit !important}.bg-primary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important}.bg-light{--bs-bg-opacity: 1;background-color:rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important}.bg-white{--bs-bg-opacity: 1;background-color:rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important}.rounded{border-radius:.25rem !important}.rounded-circle{border-radius:50% !important}@media (min-width: 768px){.flex-md-row{flex-direction:row !important}}@media (min-width: 992px){.d-lg-block{display:block !important}.d-lg-none{display:none !important}.flex-lg-row{flex-direction:row !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.align-items-lg-center{align-items:center !important}.order-lg-first{order:-1 !important}.order-lg-last{order:6 !important}.mt-lg-0{margin-top:0 !important}.me-lg-2{margin-right:.5rem !important}.me-lg-auto{margin-right:auto !important}.ms-lg-2{margin-left:.5rem !important}.ms-lg-auto{margin-left:auto !important}.p-lg-0{padding:0 !important}.py-lg-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.pe-lg-5{padding-right:3rem !important}.pb-lg-5{padding-bottom:3rem !important}.text-lg-end{text-align:right !important}.text-lg-center{text-align:center !important}}@media (min-width: 1200px){.d-xl-block{display:block !important}.d-xl-none{display:none !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.mx-xl-auto{margin-right:auto !important;margin-left:auto !important}}@font-face{font-family:'KaTeX_AMS';src:url(fonts/KaTeX_AMS-Regular.woff2) format("woff2"),url(fonts/KaTeX_AMS-Regular.woff) format("woff"),url(fonts/KaTeX_AMS-Regular.ttf) format("truetype");font-weight:normal;font-style:normal}@font-face{font-family:'KaTeX_Caligraphic';src:url(fonts/KaTeX_Caligraphic-Bold.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Bold.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Bold.ttf) format("truetype");font-weight:bold;font-style:normal}@font-face{font-family:'KaTeX_Caligraphic';src:url(fonts/KaTeX_Caligraphic-Regular.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Regular.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Regular.ttf) format("truetype");font-weight:normal;font-style:normal}@font-face{font-family:'KaTeX_Fraktur';src:url(fonts/KaTeX_Fraktur-Bold.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Bold.woff) format("woff"),url(fonts/KaTeX_Fraktur-Bold.ttf) format("truetype");font-weight:bold;font-style:normal}@font-face{font-family:'KaTeX_Fraktur';src:url(fonts/KaTeX_Fraktur-Regular.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Regular.woff) format("woff"),url(fonts/KaTeX_Fraktur-Regular.ttf) format("truetype");font-weight:normal;font-style:normal}@font-face{font-family:'KaTeX_Main';src:url(fonts/KaTeX_Main-Bold.woff2) format("woff2"),url(fonts/KaTeX_Main-Bold.woff) format("woff"),url(fonts/KaTeX_Main-Bold.ttf) format("truetype");font-weight:bold;font-style:normal}@font-face{font-family:'KaTeX_Main';src:url(fonts/KaTeX_Main-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Main-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Main-BoldItalic.ttf) format("truetype");font-weight:bold;font-style:italic}@font-face{font-family:'KaTeX_Main';src:url(fonts/KaTeX_Main-Italic.woff2) format("woff2"),url(fonts/KaTeX_Main-Italic.woff) format("woff"),url(fonts/KaTeX_Main-Italic.ttf) format("truetype");font-weight:normal;font-style:italic}@font-face{font-family:'KaTeX_Main';src:url(fonts/KaTeX_Main-Regular.woff2) format("woff2"),url(fonts/KaTeX_Main-Regular.woff) format("woff"),url(fonts/KaTeX_Main-Regular.ttf) format("truetype");font-weight:normal;font-style:normal}@font-face{font-family:'KaTeX_Math';src:url(fonts/KaTeX_Math-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Math-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Math-BoldItalic.ttf) format("truetype");font-weight:bold;font-style:italic}@font-face{font-family:'KaTeX_Math';src:url(fonts/KaTeX_Math-Italic.woff2) format("woff2"),url(fonts/KaTeX_Math-Italic.woff) format("woff"),url(fonts/KaTeX_Math-Italic.ttf) format("truetype");font-weight:normal;font-style:italic}@font-face{font-family:'KaTeX_SansSerif';src:url(fonts/KaTeX_SansSerif-Bold.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Bold.woff) format("woff"),url(fonts/KaTeX_SansSerif-Bold.ttf) format("truetype");font-weight:bold;font-style:normal}@font-face{font-family:'KaTeX_SansSerif';src:url(fonts/KaTeX_SansSerif-Italic.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Italic.woff) format("woff"),url(fonts/KaTeX_SansSerif-Italic.ttf) format("truetype");font-weight:normal;font-style:italic}@font-face{font-family:'KaTeX_SansSerif';src:url(fonts/KaTeX_SansSerif-Regular.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Regular.woff) format("woff"),url(fonts/KaTeX_SansSerif-Regular.ttf) format("truetype");font-weight:normal;font-style:normal}@font-face{font-family:'KaTeX_Script';src:url(fonts/KaTeX_Script-Regular.woff2) format("woff2"),url(fonts/KaTeX_Script-Regular.woff) format("woff"),url(fonts/KaTeX_Script-Regular.ttf) format("truetype");font-weight:normal;font-style:normal}@font-face{font-family:'KaTeX_Size1';src:url(fonts/KaTeX_Size1-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size1-Regular.woff) format("woff"),url(fonts/KaTeX_Size1-Regular.ttf) format("truetype");font-weight:normal;font-style:normal}@font-face{font-family:'KaTeX_Size2';src:url(fonts/KaTeX_Size2-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size2-Regular.woff) format("woff"),url(fonts/KaTeX_Size2-Regular.ttf) format("truetype");font-weight:normal;font-style:normal}@font-face{font-family:'KaTeX_Size3';src:url(fonts/KaTeX_Size3-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size3-Regular.woff) format("woff"),url(fonts/KaTeX_Size3-Regular.ttf) format("truetype");font-weight:normal;font-style:normal}@font-face{font-family:'KaTeX_Size4';src:url(fonts/KaTeX_Size4-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size4-Regular.woff) format("woff"),url(fonts/KaTeX_Size4-Regular.ttf) format("truetype");font-weight:normal;font-style:normal}@font-face{font-family:'KaTeX_Typewriter';src:url(fonts/KaTeX_Typewriter-Regular.woff2) format("woff2"),url(fonts/KaTeX_Typewriter-Regular.woff) format("woff"),url(fonts/KaTeX_Typewriter-Regular.ttf) format("truetype");font-weight:normal;font-style:normal}.katex{font:normal 1.21em KaTeX_Main, Times New Roman, serif;line-height:1.2;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none !important;border-color:currentColor}.katex .katex-version::after{content:"0.16.0"}.katex .katex-mathml{position:absolute;clip:rect(1px, 1px, 1px, 1px);padding:0;border:0;height:1px;width:1px;overflow:hidden}.katex .katex-html>.newline{display:block}.katex .base{position:relative;display:inline-block;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .strut{display:inline-block}.katex .textbf{font-weight:bold}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:bold}.katex .boldsymbol{font-family:KaTeX_Math;font-weight:bold;font-style:italic}.katex .amsrm{font-family:KaTeX_AMS}.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:bold}.katex .mathitsf,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{display:inline-table;table-layout:fixed;border-collapse:collapse}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;vertical-align:bottom;position:relative}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;vertical-align:bottom;font-size:1px;width:2px;min-width:2px}.katex .vbox{display:inline-flex;flex-direction:column;align-items:baseline}.katex .hbox{display:inline-flex;flex-direction:row;width:100%}.katex .thinbox{display:inline-flex;flex-direction:row;width:0;max-width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{display:inline-block;width:100%;border-bottom-style:solid}.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .underline .underline-line,.katex .hline,.katex .hdashline,.katex .rule{min-height:1px}.katex .mspace{display:inline-block}.katex .llap,.katex .rlap,.katex .clap{width:0;position:relative}.katex .llap>.inner,.katex .rlap>.inner,.katex .clap>.inner{position:absolute}.katex .llap>.fix,.katex .rlap>.fix,.katex .clap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .rlap>.inner,.katex .clap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{display:inline-block;border:solid 0;position:relative}.katex .overline .overline-line,.katex .underline .underline-line,.katex .hline{display:inline-block;width:100%;border-bottom-style:solid}.katex .hdashline{display:inline-block;width:100%;border-bottom-style:dashed}.katex .sqrt>.root{margin-left:0.27777778em;margin-right:-0.55555556em}.katex .sizing.reset-size1.size1,.katex .fontsize-ensurer.reset-size1.size1{font-size:1em}.katex .sizing.reset-size1.size2,.katex .fontsize-ensurer.reset-size1.size2{font-size:1.2em}.katex .sizing.reset-size1.size3,.katex .fontsize-ensurer.reset-size1.size3{font-size:1.4em}.katex .sizing.reset-size1.size4,.katex .fontsize-ensurer.reset-size1.size4{font-size:1.6em}.katex .sizing.reset-size1.size5,.katex .fontsize-ensurer.reset-size1.size5{font-size:1.8em}.katex .sizing.reset-size1.size6,.katex .fontsize-ensurer.reset-size1.size6{font-size:2em}.katex .sizing.reset-size1.size7,.katex .fontsize-ensurer.reset-size1.size7{font-size:2.4em}.katex .sizing.reset-size1.size8,.katex .fontsize-ensurer.reset-size1.size8{font-size:2.88em}.katex .sizing.reset-size1.size9,.katex .fontsize-ensurer.reset-size1.size9{font-size:3.456em}.katex .sizing.reset-size1.size10,.katex .fontsize-ensurer.reset-size1.size10{font-size:4.148em}.katex .sizing.reset-size1.size11,.katex .fontsize-ensurer.reset-size1.size11{font-size:4.976em}.katex .sizing.reset-size2.size1,.katex .fontsize-ensurer.reset-size2.size1{font-size:0.83333333em}.katex .sizing.reset-size2.size2,.katex .fontsize-ensurer.reset-size2.size2{font-size:1em}.katex .sizing.reset-size2.size3,.katex .fontsize-ensurer.reset-size2.size3{font-size:1.16666667em}.katex .sizing.reset-size2.size4,.katex .fontsize-ensurer.reset-size2.size4{font-size:1.33333333em}.katex .sizing.reset-size2.size5,.katex .fontsize-ensurer.reset-size2.size5{font-size:1.5em}.katex .sizing.reset-size2.size6,.katex .fontsize-ensurer.reset-size2.size6{font-size:1.66666667em}.katex .sizing.reset-size2.size7,.katex .fontsize-ensurer.reset-size2.size7{font-size:2em}.katex .sizing.reset-size2.size8,.katex .fontsize-ensurer.reset-size2.size8{font-size:2.4em}.katex .sizing.reset-size2.size9,.katex .fontsize-ensurer.reset-size2.size9{font-size:2.88em}.katex .sizing.reset-size2.size10,.katex .fontsize-ensurer.reset-size2.size10{font-size:3.45666667em}.katex .sizing.reset-size2.size11,.katex .fontsize-ensurer.reset-size2.size11{font-size:4.14666667em}.katex .sizing.reset-size3.size1,.katex .fontsize-ensurer.reset-size3.size1{font-size:0.71428571em}.katex .sizing.reset-size3.size2,.katex .fontsize-ensurer.reset-size3.size2{font-size:0.85714286em}.katex .sizing.reset-size3.size3,.katex .fontsize-ensurer.reset-size3.size3{font-size:1em}.katex .sizing.reset-size3.size4,.katex .fontsize-ensurer.reset-size3.size4{font-size:1.14285714em}.katex .sizing.reset-size3.size5,.katex .fontsize-ensurer.reset-size3.size5{font-size:1.28571429em}.katex .sizing.reset-size3.size6,.katex .fontsize-ensurer.reset-size3.size6{font-size:1.42857143em}.katex .sizing.reset-size3.size7,.katex .fontsize-ensurer.reset-size3.size7{font-size:1.71428571em}.katex .sizing.reset-size3.size8,.katex .fontsize-ensurer.reset-size3.size8{font-size:2.05714286em}.katex .sizing.reset-size3.size9,.katex .fontsize-ensurer.reset-size3.size9{font-size:2.46857143em}.katex .sizing.reset-size3.size10,.katex .fontsize-ensurer.reset-size3.size10{font-size:2.96285714em}.katex .sizing.reset-size3.size11,.katex .fontsize-ensurer.reset-size3.size11{font-size:3.55428571em}.katex .sizing.reset-size4.size1,.katex .fontsize-ensurer.reset-size4.size1{font-size:0.625em}.katex .sizing.reset-size4.size2,.katex .fontsize-ensurer.reset-size4.size2{font-size:0.75em}.katex .sizing.reset-size4.size3,.katex .fontsize-ensurer.reset-size4.size3{font-size:0.875em}.katex .sizing.reset-size4.size4,.katex .fontsize-ensurer.reset-size4.size4{font-size:1em}.katex .sizing.reset-size4.size5,.katex .fontsize-ensurer.reset-size4.size5{font-size:1.125em}.katex .sizing.reset-size4.size6,.katex .fontsize-ensurer.reset-size4.size6{font-size:1.25em}.katex .sizing.reset-size4.size7,.katex .fontsize-ensurer.reset-size4.size7{font-size:1.5em}.katex .sizing.reset-size4.size8,.katex .fontsize-ensurer.reset-size4.size8{font-size:1.8em}.katex .sizing.reset-size4.size9,.katex .fontsize-ensurer.reset-size4.size9{font-size:2.16em}.katex .sizing.reset-size4.size10,.katex .fontsize-ensurer.reset-size4.size10{font-size:2.5925em}.katex .sizing.reset-size4.size11,.katex .fontsize-ensurer.reset-size4.size11{font-size:3.11em}.katex .sizing.reset-size5.size1,.katex .fontsize-ensurer.reset-size5.size1{font-size:0.55555556em}.katex .sizing.reset-size5.size2,.katex .fontsize-ensurer.reset-size5.size2{font-size:0.66666667em}.katex .sizing.reset-size5.size3,.katex .fontsize-ensurer.reset-size5.size3{font-size:0.77777778em}.katex .sizing.reset-size5.size4,.katex .fontsize-ensurer.reset-size5.size4{font-size:0.88888889em}.katex .sizing.reset-size5.size5,.katex .fontsize-ensurer.reset-size5.size5{font-size:1em}.katex .sizing.reset-size5.size6,.katex .fontsize-ensurer.reset-size5.size6{font-size:1.11111111em}.katex .sizing.reset-size5.size7,.katex .fontsize-ensurer.reset-size5.size7{font-size:1.33333333em}.katex .sizing.reset-size5.size8,.katex .fontsize-ensurer.reset-size5.size8{font-size:1.6em}.katex .sizing.reset-size5.size9,.katex .fontsize-ensurer.reset-size5.size9{font-size:1.92em}.katex .sizing.reset-size5.size10,.katex .fontsize-ensurer.reset-size5.size10{font-size:2.30444444em}.katex .sizing.reset-size5.size11,.katex .fontsize-ensurer.reset-size5.size11{font-size:2.76444444em}.katex .sizing.reset-size6.size1,.katex .fontsize-ensurer.reset-size6.size1{font-size:0.5em}.katex .sizing.reset-size6.size2,.katex .fontsize-ensurer.reset-size6.size2{font-size:0.6em}.katex .sizing.reset-size6.size3,.katex .fontsize-ensurer.reset-size6.size3{font-size:0.7em}.katex .sizing.reset-size6.size4,.katex .fontsize-ensurer.reset-size6.size4{font-size:0.8em}.katex .sizing.reset-size6.size5,.katex .fontsize-ensurer.reset-size6.size5{font-size:0.9em}.katex .sizing.reset-size6.size6,.katex .fontsize-ensurer.reset-size6.size6{font-size:1em}.katex .sizing.reset-size6.size7,.katex .fontsize-ensurer.reset-size6.size7{font-size:1.2em}.katex .sizing.reset-size6.size8,.katex .fontsize-ensurer.reset-size6.size8{font-size:1.44em}.katex .sizing.reset-size6.size9,.katex .fontsize-ensurer.reset-size6.size9{font-size:1.728em}.katex .sizing.reset-size6.size10,.katex .fontsize-ensurer.reset-size6.size10{font-size:2.074em}.katex .sizing.reset-size6.size11,.katex .fontsize-ensurer.reset-size6.size11{font-size:2.488em}.katex .sizing.reset-size7.size1,.katex .fontsize-ensurer.reset-size7.size1{font-size:0.41666667em}.katex .sizing.reset-size7.size2,.katex .fontsize-ensurer.reset-size7.size2{font-size:0.5em}.katex .sizing.reset-size7.size3,.katex .fontsize-ensurer.reset-size7.size3{font-size:0.58333333em}.katex .sizing.reset-size7.size4,.katex .fontsize-ensurer.reset-size7.size4{font-size:0.66666667em}.katex .sizing.reset-size7.size5,.katex .fontsize-ensurer.reset-size7.size5{font-size:0.75em}.katex .sizing.reset-size7.size6,.katex .fontsize-ensurer.reset-size7.size6{font-size:0.83333333em}.katex .sizing.reset-size7.size7,.katex .fontsize-ensurer.reset-size7.size7{font-size:1em}.katex .sizing.reset-size7.size8,.katex .fontsize-ensurer.reset-size7.size8{font-size:1.2em}.katex .sizing.reset-size7.size9,.katex .fontsize-ensurer.reset-size7.size9{font-size:1.44em}.katex .sizing.reset-size7.size10,.katex .fontsize-ensurer.reset-size7.size10{font-size:1.72833333em}.katex .sizing.reset-size7.size11,.katex .fontsize-ensurer.reset-size7.size11{font-size:2.07333333em}.katex .sizing.reset-size8.size1,.katex .fontsize-ensurer.reset-size8.size1{font-size:0.34722222em}.katex .sizing.reset-size8.size2,.katex .fontsize-ensurer.reset-size8.size2{font-size:0.41666667em}.katex .sizing.reset-size8.size3,.katex .fontsize-ensurer.reset-size8.size3{font-size:0.48611111em}.katex .sizing.reset-size8.size4,.katex .fontsize-ensurer.reset-size8.size4{font-size:0.55555556em}.katex .sizing.reset-size8.size5,.katex .fontsize-ensurer.reset-size8.size5{font-size:0.625em}.katex .sizing.reset-size8.size6,.katex .fontsize-ensurer.reset-size8.size6{font-size:0.69444444em}.katex .sizing.reset-size8.size7,.katex .fontsize-ensurer.reset-size8.size7{font-size:0.83333333em}.katex .sizing.reset-size8.size8,.katex .fontsize-ensurer.reset-size8.size8{font-size:1em}.katex .sizing.reset-size8.size9,.katex .fontsize-ensurer.reset-size8.size9{font-size:1.2em}.katex .sizing.reset-size8.size10,.katex .fontsize-ensurer.reset-size8.size10{font-size:1.44027778em}.katex .sizing.reset-size8.size11,.katex .fontsize-ensurer.reset-size8.size11{font-size:1.72777778em}.katex .sizing.reset-size9.size1,.katex .fontsize-ensurer.reset-size9.size1{font-size:0.28935185em}.katex .sizing.reset-size9.size2,.katex .fontsize-ensurer.reset-size9.size2{font-size:0.34722222em}.katex .sizing.reset-size9.size3,.katex .fontsize-ensurer.reset-size9.size3{font-size:0.40509259em}.katex .sizing.reset-size9.size4,.katex .fontsize-ensurer.reset-size9.size4{font-size:0.46296296em}.katex .sizing.reset-size9.size5,.katex .fontsize-ensurer.reset-size9.size5{font-size:0.52083333em}.katex .sizing.reset-size9.size6,.katex .fontsize-ensurer.reset-size9.size6{font-size:0.5787037em}.katex .sizing.reset-size9.size7,.katex .fontsize-ensurer.reset-size9.size7{font-size:0.69444444em}.katex .sizing.reset-size9.size8,.katex .fontsize-ensurer.reset-size9.size8{font-size:0.83333333em}.katex .sizing.reset-size9.size9,.katex .fontsize-ensurer.reset-size9.size9{font-size:1em}.katex .sizing.reset-size9.size10,.katex .fontsize-ensurer.reset-size9.size10{font-size:1.20023148em}.katex .sizing.reset-size9.size11,.katex .fontsize-ensurer.reset-size9.size11{font-size:1.43981481em}.katex .sizing.reset-size10.size1,.katex .fontsize-ensurer.reset-size10.size1{font-size:0.24108004em}.katex .sizing.reset-size10.size2,.katex .fontsize-ensurer.reset-size10.size2{font-size:0.28929605em}.katex .sizing.reset-size10.size3,.katex .fontsize-ensurer.reset-size10.size3{font-size:0.33751205em}.katex .sizing.reset-size10.size4,.katex .fontsize-ensurer.reset-size10.size4{font-size:0.38572806em}.katex .sizing.reset-size10.size5,.katex .fontsize-ensurer.reset-size10.size5{font-size:0.43394407em}.katex .sizing.reset-size10.size6,.katex .fontsize-ensurer.reset-size10.size6{font-size:0.48216008em}.katex .sizing.reset-size10.size7,.katex .fontsize-ensurer.reset-size10.size7{font-size:0.57859209em}.katex .sizing.reset-size10.size8,.katex .fontsize-ensurer.reset-size10.size8{font-size:0.69431051em}.katex .sizing.reset-size10.size9,.katex .fontsize-ensurer.reset-size10.size9{font-size:0.83317261em}.katex .sizing.reset-size10.size10,.katex .fontsize-ensurer.reset-size10.size10{font-size:1em}.katex .sizing.reset-size10.size11,.katex .fontsize-ensurer.reset-size10.size11{font-size:1.19961427em}.katex .sizing.reset-size11.size1,.katex .fontsize-ensurer.reset-size11.size1{font-size:0.20096463em}.katex .sizing.reset-size11.size2,.katex .fontsize-ensurer.reset-size11.size2{font-size:0.24115756em}.katex .sizing.reset-size11.size3,.katex .fontsize-ensurer.reset-size11.size3{font-size:0.28135048em}.katex .sizing.reset-size11.size4,.katex .fontsize-ensurer.reset-size11.size4{font-size:0.32154341em}.katex .sizing.reset-size11.size5,.katex .fontsize-ensurer.reset-size11.size5{font-size:0.36173633em}.katex .sizing.reset-size11.size6,.katex .fontsize-ensurer.reset-size11.size6{font-size:0.40192926em}.katex .sizing.reset-size11.size7,.katex .fontsize-ensurer.reset-size11.size7{font-size:0.48231511em}.katex .sizing.reset-size11.size8,.katex .fontsize-ensurer.reset-size11.size8{font-size:0.57877814em}.katex .sizing.reset-size11.size9,.katex .fontsize-ensurer.reset-size11.size9{font-size:0.69453376em}.katex .sizing.reset-size11.size10,.katex .fontsize-ensurer.reset-size11.size10{font-size:0.83360129em}.katex .sizing.reset-size11.size11,.katex .fontsize-ensurer.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:0.12em}.katex .delimcenter{position:relative}.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .op-limits>.vlist-t{text-align:center}.katex .accent>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{display:block;position:absolute;width:100%;height:inherit;fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex svg path{stroke:none}.katex img{border-style:none;min-width:0;min-height:0;max-width:none;max-height:none}.katex .stretchy{width:100%;display:block;position:relative;overflow:hidden}.katex .stretchy::before,.katex .stretchy::after{content:""}.katex .hide-tail{width:100%;position:relative;overflow:hidden}.katex .halfarrow-left{position:absolute;left:0;width:50.2%;overflow:hidden}.katex .halfarrow-right{position:absolute;right:0;width:50.2%;overflow:hidden}.katex .brace-left{position:absolute;left:0;width:25.1%;overflow:hidden}.katex .brace-center{position:absolute;left:25%;width:50%;overflow:hidden}.katex .brace-right{position:absolute;right:0;width:25.1%;overflow:hidden}.katex .x-arrow-pad{padding:0 0.5em}.katex .cd-arrow-pad{padding:0 0.55556em 0 0.27778em}.katex .x-arrow,.katex .mover,.katex .munder{text-align:center}.katex .boxpad{padding:0 0.3em}.katex .fbox,.katex .fcolorbox{box-sizing:border-box;border:0.04em solid}.katex .cancel-pad{padding:0 0.2em}.katex .cancel-lap{margin-left:-0.2em;margin-right:-0.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:0.08em}.katex .angl{box-sizing:border-box;border-top:0.049em solid;border-right:0.049em solid;margin-right:0.03889em}.katex .anglpad{padding:0 0.03889em}.katex .eqn-num::before{counter-increment:katexEqnNo;content:"(" counter(katexEqnNo) ")"}.katex .mml-eqn-num::before{counter-increment:mmlEqnNo;content:"(" counter(mmlEqnNo) ")"}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + 0.3em);text-align:left}.katex .cd-label-right{display:inline-block;position:absolute;left:calc(50% + 0.3em);text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{text-align:left;padding-left:2em}body{counter-reset:katexEqnNo mmlEqnNo}@font-face{font-family:Jost;font-style:normal;font-weight:400;font-display:swap;src:local("Jost Regular Regular"),local("Jost-Regular"),local("Jost* Book"),local("Jost-Book"),url("fonts/vendor/jost/jost-v4-latin-regular.woff2") format("woff2"),url("fonts/vendor/jost/jost-v4-latin-regular.woff") format("woff")}@font-face{font-family:Jost;font-style:normal;font-weight:500;font-display:swap;src:local("Jost Regular Medium"),local("JostRoman-Medium"),local("Jost* Medium"),local("Jost-Medium"),url("fonts/vendor/jost/jost-v4-latin-500.woff2") format("woff2"),url("fonts/vendor/jost/jost-v4-latin-500.woff") format("woff")}@font-face{font-family:Jost;font-style:normal;font-weight:700;font-display:swap;src:local("Jost Regular Bold"),local("JostRoman-Bold"),local("Jost* Bold"),local("Jost-Bold"),url("fonts/vendor/jost/jost-v4-latin-700.woff2") format("woff2"),url("fonts/vendor/jost/jost-v4-latin-700.woff") format("woff")}@font-face{font-family:Jost;font-style:italic;font-weight:400;font-display:swap;src:local("Jost Italic Italic"),local("Jost-Italic"),local("Jost* BookItalic"),local("Jost-BookItalic"),url("fonts/vendor/jost/jost-v4-latin-italic.woff2") format("woff2"),url("fonts/vendor/jost/jost-v4-latin-italic.woff") format("woff")}@font-face{font-family:Jost;font-style:italic;font-weight:500;font-display:swap;src:local("Jost Italic Medium Italic"),local("JostItalic-Medium"),local("Jost* Medium Italic"),local("Jost-MediumItalic"),url("fonts/vendor/jost/jost-v4-latin-500italic.woff2") format("woff2"),url("fonts/vendor/jost/jost-v4-latin-500italic.woff") format("woff")}@font-face{font-family:Jost;font-style:italic;font-weight:700;font-display:swap;src:local("Jost Italic Bold Italic"),local("JostItalic-Bold"),local("Jost* Bold Italic"),local("Jost-BoldItalic"),url("fonts/vendor/jost/jost-v4-latin-700italic.woff2") format("woff2"),url("fonts/vendor/jost/jost-v4-latin-700italic.woff") format("woff")}.contributors .content,.blog .content,.page .content,.error404 .content,.docs.list .content,.tutorial.list .content,.showcase.list .content,.categories.list .content,.tags.list .content{padding-top:1rem;padding-bottom:3rem}.content img{max-width:100%}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{margin:2rem 0 1rem}.offcanvas-header{border-bottom:1px solid #dee2e6;padding-top:1.0625rem;padding-bottom:0.8125rem}h5.offcanvas-title,.offcanvas-title.h5{margin:0}body.docs{padding-top:0 !important}@media (min-width: 768px){body{font-size:1.125rem}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{margin-bottom:1.125rem}}.home h1,.home .h1{font-size:calc(1.875rem + 1.5vw)}a:hover,a:focus{text-decoration:underline}a.btn:hover,a.btn:focus{text-decoration:none}.section{padding-top:5rem;padding-bottom:5rem}.section-sm{padding-top:1rem;padding-bottom:1rem}.docs-sidebar{order:2}@media (min-width: 992px){.docs-sidebar{order:0;border-right:1px solid #e9ecef}@supports ((position: -webkit-sticky) or (position: sticky)){.docs-sidebar{position:-webkit-sticky;position:sticky;top:4rem;z-index:1000;height:calc(100vh - 4rem)}.docs-sidebar-top{top:0}}}@media (min-width: 1200px){.docs-sidebar{flex:0 1 320px}}.docs-links{padding-bottom:5rem}@media (min-width: 992px){@supports ((position: -webkit-sticky) or (position: sticky)){.docs-links{max-height:calc(100vh - 4rem);overflow-y:scroll}}}@media (min-width: 992px){.docs-links{display:block;width:auto;margin-right:-1.5rem;padding-bottom:4rem}}.docs-toc{order:2}@supports ((position: -webkit-sticky) or (position: sticky)){.docs-toc{position:-webkit-sticky;position:sticky;top:4rem;height:calc(100vh - 4rem);overflow-y:auto}.docs-toc-top{top:0}}.docs-content{padding-bottom:3rem;order:1}.docs-navigation{border-top:1px solid #e9ecef;margin-top:2rem;margin-bottom:0;padding-top:2rem}.docs-navigation a{font-size:.9rem}@media (min-width: 992px){.docs-navigation{margin-bottom:-1rem}.docs-navigation a{font-size:1rem}}.navbar a:hover,.navbar a:focus{text-decoration:none}#TableOfContents ul,#toc ul{padding-left:0;list-style:none}#toc a.active{color:#5d2f86;font-weight:500}::-moz-selection{background:rgba(212,53,159,0.2)}::selection{background:rgba(212,53,159,0.2)}.bg-dots{background-image:radial-gradient(#dee2e6 15%, transparent 15%);background-position:0 0;background-size:1rem 1rem;-webkit-mask:linear-gradient(to top, #fff, transparent);mask:linear-gradient(to top, #fff, transparent);width:100%;height:9rem;margin-top:-10rem;z-index:-1}.katex{font-size:1.125rem}[data-dark-mode] body{background:#212529;color:#dee2e6}[data-dark-mode] body a{color:#8ed6fb}[data-dark-mode] body a.text-body{color:#dee2e6 !important}[data-dark-mode] body .btn-primary{color:#1d2d35;background-color:#8ed6fb;border-color:#8ed6fb;color:#212529 !important}[data-dark-mode] body .btn-primary:hover{color:#1d2d35;background-color:#9fdcfc;border-color:#99dafb}[data-dark-mode] body .btn-primary:focus{color:#1d2d35;background-color:#9fdcfc;border-color:#99dafb;box-shadow:0 0 0 0 rgba(125,189,221,0.5)}[data-dark-mode] body .btn-primary:active,[data-dark-mode] body .btn-primary.active,.show>[data-dark-mode] body .btn-primary.dropdown-toggle{color:#1d2d35;background-color:#a5defc;border-color:#99dafb}[data-dark-mode] body .btn-primary:active:focus,[data-dark-mode] body .btn-primary.active:focus,.show>[data-dark-mode] body .btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(125,189,221,0.5)}[data-dark-mode] body .btn-primary:disabled,[data-dark-mode] body .btn-primary.disabled{color:#1d2d35;background-color:#8ed6fb;border-color:#8ed6fb}[data-dark-mode] body .btn-outline-primary{color:#8ed6fb;border-color:#8ed6fb;color:#8ed6fb}[data-dark-mode] body .btn-outline-primary:hover{color:#8ed6fb;background-color:#8ed6fb;border-color:#8ed6fb}[data-dark-mode] body .btn-outline-primary:focus{box-shadow:0 0 0 0 rgba(142,214,251,0.5)}[data-dark-mode] body .btn-outline-primary:active,[data-dark-mode] body .btn-outline-primary.active,[data-dark-mode] body .btn-outline-primary.dropdown-toggle.show{color:#1d2d35;background-color:#8ed6fb;border-color:#8ed6fb}[data-dark-mode] body .btn-outline-primary:active:focus,[data-dark-mode] body .btn-outline-primary.active:focus,[data-dark-mode] body .btn-outline-primary.dropdown-toggle.show:focus{box-shadow:0 0 0 0 rgba(142,214,251,0.5)}[data-dark-mode] body .btn-outline-primary:disabled,[data-dark-mode] body .btn-outline-primary.disabled{color:#8ed6fb;background-color:transparent}[data-dark-mode] body .btn-outline-primary:hover{color:#212529}[data-dark-mode] body .btn-doks-light{color:#dee2e6}[data-dark-mode] body .show>.btn-doks-light,[data-dark-mode] body .btn-doks-light:hover,[data-dark-mode] body .btn-doks-light:active{color:#8ed6fb}[data-dark-mode] body .btn-menu svg{color:#dee2e6}[data-dark-mode] body .doks-sidebar-toggle{color:#dee2e6}[data-dark-mode] body .btn-menu:hover,[data-dark-mode] body .btn-doks-light:hover,[data-dark-mode] body .doks-sidebar-toggle:hover{background:#1b1f22}[data-dark-mode] body .navbar,[data-dark-mode] body .doks-subnavbar{background-color:rgba(33,37,41,0.95);border-bottom:1px solid #343a40}[data-dark-mode] body.home .navbar{border-bottom:0}[data-dark-mode] body .offcanvas-header{border-bottom:1px solid #343a40}[data-dark-mode] body .offcanvas .nav-link{color:#dee2e6}[data-dark-mode] body .offcanvas .nav-link:hover,[data-dark-mode] body .offcanvas .nav-link:focus{color:#8ed6fb}[data-dark-mode] body .offcanvas .nav-link.active{color:#8ed6fb}[data-dark-mode] body .navbar-light .navbar-brand{color:#dee2e6 !important}[data-dark-mode] body .navbar-light .navbar-nav .nav-link{color:#dee2e6}[data-dark-mode] body .navbar-light .navbar-nav .nav-link:hover,[data-dark-mode] body .navbar-light .navbar-nav .nav-link:focus{color:#8ed6fb}[data-dark-mode] body .navbar-light .navbar-nav .nav-link.disabled{color:rgba(255,255,255,0.25)}[data-dark-mode] body .navbar-light .navbar-nav .show>.nav-link,[data-dark-mode] body .navbar-light .navbar-nav .active>.nav-link,[data-dark-mode] body .navbar-light .navbar-nav .nav-link.show,[data-dark-mode] body .navbar-light .navbar-nav .nav-link.active{color:#8ed6fb}[data-dark-mode] body .navbar-light .navbar-text{color:#dee2e6}[data-dark-mode] body .alert-primary a{color:#212529}[data-dark-mode] body .alert-doks{background:#1b1f22;color:#dee2e6}[data-dark-mode] body .alert-doks a{color:#8ed6fb}[data-dark-mode] body .page-links a{color:#dee2e6}[data-dark-mode] body .btn-toggle-nav a{color:#dee2e6}[data-dark-mode] body .showcase-meta a{color:#dee2e6}[data-dark-mode] body .showcase-meta a:hover,[data-dark-mode] body .showcase-meta a:focus{color:#8ed6fb}[data-dark-mode] body .docs-link:hover,[data-dark-mode] body .docs-link.active,[data-dark-mode] body .page-links a:hover{text-decoration:none;color:#8ed6fb}[data-dark-mode] body .btn-toggle{color:#dee2e6;background-color:transparent;border:0}[data-dark-mode] body .btn-toggle:hover,[data-dark-mode] body .btn-toggle:focus{color:#dee2e6}[data-dark-mode] body .btn-toggle::before{width:1.25em;line-height:0;content:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='rgba%28222, 226, 230, 0.75%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 14l6-6-6-6'/%3e%3c/svg%3e");transition:transform 0.35s ease;transform-origin:0.5em 50%;margin-bottom:0.125rem}[data-dark-mode] body .btn-toggle[aria-expanded="true"]{color:#dee2e6}[data-dark-mode] body .btn-toggle[aria-expanded="true"]::before{transform:rotate(90deg)}[data-dark-mode] body .btn-toggle-nav a:hover,[data-dark-mode] body .btn-toggle-nav a:focus{color:#8ed6fb}[data-dark-mode] body .btn-toggle-nav a.active{color:#8ed6fb}[data-dark-mode] body .navbar-light .navbar-text a{color:#8ed6fb}[data-dark-mode] body .docs-links h3.sidebar-link a,[data-dark-mode] body .docs-links .sidebar-link.h3 a,[data-dark-mode] body .page-links h3.sidebar-link a,[data-dark-mode] body .page-links .sidebar-link.h3 a{color:#dee2e6}[data-dark-mode] body .navbar-light .navbar-text a:hover,[data-dark-mode] body .navbar-light .navbar-text a:focus{color:#8ed6fb}[data-dark-mode] body .navbar .btn-link{color:#dee2e6}[data-dark-mode] body .content .btn-link{color:#8ed6fb}[data-dark-mode] body .content .btn-link:hover{color:#8ed6fb}[data-dark-mode] body .content img[src^="https://latex.codecogs.com/svg.latex"]{filter:invert(1)}[data-dark-mode] body .navbar .btn-link:hover{color:#8ed6fb}[data-dark-mode] body .navbar .btn-link:active{color:#8ed6fb}[data-dark-mode] body .form-control.is-search{background:#1b1f22;border:1px solid transparent;color:#dee2e6}[data-dark-mode] body .form-control.is-search:focus{border:1px solid #8ed6fb}[data-dark-mode] body .doks-search::after{color:#dee2e6;border:1px solid #495057}[data-dark-mode] body .text-dark{color:#dee2e6 !important}[data-dark-mode] body .form-control{color:#dee2e6}[data-dark-mode] body .form-control::-moz-placeholder{color:#ced4da;opacity:1}[data-dark-mode] body .form-control::placeholder{color:#ced4da;opacity:1}[data-dark-mode] body .border-top{border-top:1px solid #343a40 !important}@media (min-width: 992px){[data-dark-mode] body .docs-sidebar{order:0;border-right:1px solid #343a40}}[data-dark-mode] body .docs-navigation{border-top:1px solid #343a40}[data-dark-mode] body pre code::-webkit-scrollbar-thumb{background:#ced4da}[data-dark-mode] body code:not(.hljs){background:#1b1f22;color:#dee2e6}[data-dark-mode] body pre code:hover{scrollbar-width:thin;scrollbar-color:#343a40 transparent}[data-dark-mode] body pre code::-webkit-scrollbar-thumb:hover{background:#adb5bd}[data-dark-mode] body blockquote{border-left:3px solid #343a40}[data-dark-mode] body .footer{border-top:1px solid #343a40}[data-dark-mode] body .docs-links,[data-dark-mode] body .docs-toc{scrollbar-width:thin;scrollbar-color:#212529 #212529}[data-dark-mode] body .docs-links::-webkit-scrollbar,[data-dark-mode] body .docs-toc::-webkit-scrollbar{width:5px}[data-dark-mode] body .docs-links::-webkit-scrollbar-track,[data-dark-mode] body .docs-toc::-webkit-scrollbar-track{background:#212529}[data-dark-mode] body .docs-links::-webkit-scrollbar-thumb,[data-dark-mode] body .docs-toc::-webkit-scrollbar-thumb{background:#212529}[data-dark-mode] body .docs-links:hover,[data-dark-mode] body .docs-toc:hover{scrollbar-width:thin;scrollbar-color:#343a40 #212529}[data-dark-mode] body .docs-links:hover::-webkit-scrollbar-thumb,[data-dark-mode] body .docs-toc:hover::-webkit-scrollbar-thumb{background:#343a40}[data-dark-mode] body .docs-links::-webkit-scrollbar-thumb:hover,[data-dark-mode] body .docs-toc::-webkit-scrollbar-thumb:hover{background:#343a40}[data-dark-mode] body .docs-links h3:not(:first-child),[data-dark-mode] body .docs-links .h3:not(:first-child){border-top:1px solid #343a40}[data-dark-mode] body a.docs-link{color:#dee2e6}[data-dark-mode] body .page-links li:not(:first-child){border-top:1px dashed #343a40}[data-dark-mode] body .card{background:#212529;border:1px solid #343a40}[data-dark-mode] body .card.bg-light{background:#1b1f22 !important}[data-dark-mode] body .navbar .menu-icon .navicon{background:#dee2e6}[data-dark-mode] body .navbar .menu-icon .navicon::before,[data-dark-mode] body .navbar .menu-icon .navicon::after{background:#dee2e6}[data-dark-mode] body .logo-light{display:none !important}[data-dark-mode] body .logo-dark{display:inline-block !important}[data-dark-mode] body .bg-light{background:#1e2125 !important}[data-dark-mode] body .bg-dots{background-image:radial-gradient(#556370 15%, transparent 15%)}[data-dark-mode] body .text-muted{color:#c8cfd6 !important}[data-dark-mode] body .alert-primary{background:#8ed6fb;color:#212529}[data-dark-mode] body .figure-caption{color:#dee2e6}[data-dark-mode] body .copy-status::after{content:"Copy";display:block;color:#dee2e6}[data-dark-mode] body .copy-status:hover::after{content:"Copy";display:block;color:#8ed6fb}[data-dark-mode] body .copy-status:focus::after,[data-dark-mode] body .copy-status:active::after{content:"Copied";display:block;color:#8ed6fb}[data-dark-mode] body .offcanvas{background-color:#212529}[data-dark-mode] body .btn-close{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiNkZWUyZTYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBjbGFzcz0iZmVhdGhlciBmZWF0aGVyLXgiPjxsaW5lIHgxPSIxOCIgeTE9IjYiIHgyPSI2IiB5Mj0iMTgiPjwvbGluZT48bGluZSB4MT0iNiIgeTE9IjYiIHgyPSIxOCIgeTI9IjE4Ij48L2xpbmU+PC9zdmc+");background-size:1.5rem}@media (min-width: 768px){[data-dark-mode] body .alert-dismissible .btn-close{background-size:1.25rem}}[data-dark-mode] .dropdown-item{color:#212529}[data-dark-mode] body hr.text-black-50{color:#6c757d !important}[data-dark-mode] body .email-form .form-control{background:#1b1f22;border:1px solid transparent}[data-dark-mode] body .email-form .form-control:focus{border:1px solid #8ed6fb}[data-dark-mode] .page-link{color:#8ed6fb;background-color:transparent;border:1px solid #343a40}[data-dark-mode] .page-link:hover{color:#212529;background-color:#dee2e6;border-color:#dee2e6}[data-dark-mode] .page-link:focus{color:#212529;background-color:#dee2e6}[data-dark-mode] .page-item.active .page-link{color:#212529;background-color:#8ed6fb;border-color:#8ed6fb}[data-dark-mode] .page-item.disabled .page-link{color:#6c757d;background-color:#1b1f22;border-color:#343a40}[data-dark-mode] .dropdown-menu{background:#1b1f22}[data-dark-mode] .dropdown-menu .dropdown-item{color:#dee2e6}[data-dark-mode] .dropdown-menu .dropdown-item:hover{color:#8ed6fb;background:#212529}[data-dark-mode] .dropdown-menu .dropdown-item.active,[data-dark-mode] .dropdown-menu .dropdown-item:focus{color:#8ed6fb;background:#212529}[data-dark-mode] .doks-navbar .dropdown-item.current,[data-dark-mode] .doks-subnavbar .dropdown-item.current{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23dee2e6' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 1rem top 0.6rem;background-size:0.75rem 0.75rem}[data-dark-mode] details{border:1px solid #343a40}[data-dark-mode] summary:hover{background:#1b1f22}[data-dark-mode] details[open]>summary{border-bottom:1px solid #343a40}[data-dark-mode] details summary::before{content:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='rgba%28222, 226, 230, 0.75%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 14l6-6-6-6'/%3e%3c/svg%3e")}[data-dark-mode] #toc a.active{color:#8ed6fb}[data-dark-mode] .btn-light{color:#8ed6fb;background:#1b1f22;border:1px solid #1b1f22}.alert{font-family:sfmono-regular,menlo,monaco,consolas,"Liberation Mono","Courier New",monospace;font-size:.875rem}.alert-icon{margin-right:0.75rem}.docs main .alert{margin:2rem -1.5rem}.alert .alert-link{text-decoration:underline}.alert-doks{background:#fbf7f0;color:#1d2d35}.alert-white{background-color:rgba(255,255,255,0.95)}.alert-primary{color:#fff;background-color:#5d2f86}.alert a{text-decoration:underline}.alert-primary .alert-link{color:#fff}.alert-secondary{color:#41464b;background-color:#e2e3e5;border-color:#d3d6d8}.alert-secondary .alert-link{color:#34383c}.alert-success{color:#0f5132;background-color:#d1e7dd;border-color:#badbcc}.alert-success .alert-link{color:#0c4128}.alert-info{color:#055160;background-color:#cff4fc;border-color:#b6effb}.alert-info .alert-link{color:#04414d}.alert-warning{color:#664d03;background-color:#fff3cd;border-color:#ffecb5}.alert-warning .alert-link{color:#523e02}.alert-danger{color:#842029;background-color:#f8d7da;border-color:#f5c2c7}.alert-danger .alert-link{color:#6a1a21}.alert-light{color:#636464;background-color:#fefefe;border-color:#fdfdfe}.alert-light .alert-link{color:#4f5050}.alert-dark{color:#141619;background-color:#d3d3d4;border-color:#bcbebf}.alert-dark .alert-link{color:#101214}.alert .alert-link:hover,.alert .alert-link:focus{text-decoration:none}.alert-dismissible .btn-close{position:absolute;top:50%;transform:translateY(-50%);right:1rem;z-index:2;padding:0.5rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-x'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");background-size:1.5rem;filter:invert(1) grayscale(100%) brightness(200%)}@media (min-width: 768px){.alert-dismissible .btn-close{background-size:1.25rem}}[data-global-alert="closed"] #announcement{display:none}.alert code{background:#f6ecdc;color:#1d2d35;padding:0.25rem 0.5rem}.navbar .btn-link{color:#1d2d35;padding:0.4375rem 0}#mode{padding:0.5rem}.btn-link:focus{outline:0;box-shadow:none}#navigation{margin-left:1.25rem}@media (min-width: 992px){#mode{margin-left:0.5rem;margin-right:0.25rem}.navbar .btn-link{padding:0.5625em 0.25rem 0.5rem 0.125rem}}.navbar .btn-link:hover{color:#5d2f86}.navbar .btn-link:active{color:#5d2f86}body .toggle-dark{display:block}body .toggle-light{display:none}[data-dark-mode] body .toggle-light{display:block}[data-dark-mode] body .toggle-dark{display:none}pre{position:relative}@media (max-width: 767.98px){.btn-copy{display:none}}.btn-copy{transition:opacity 0.3s ease-in-out;visibility:hidden !important;position:absolute;right:0.25rem;top:0.25rem;z-index:10;font-family:"Jost",-apple-system,blinkmacsystemfont,"Segoe UI",roboto,"Helvetica Neue",arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:.875rem;padding:0.25rem 0.5rem;color:#fff;background-color:#d32e9d;border-color:#bf288e}.btn-copy:hover{color:#fff;background-color:#d743a7;border-color:#dc58b1}.btn-copy:focus{color:#fff;background-color:#d32e9d;border-color:#dc58b1;box-shadow:none}.btn-copy:active,.btn-copy.active{color:#fff;background-color:#d32e9d;border-color:#dc58b1}.btn-copy:active:focus,.btn-copy.active:focus{box-shadow:none}@media (min-width: 768px){pre:hover .btn-copy{visibility:visible !important}}.btn-copy::after{content:"Copy";display:block;color:#fff}.btn-copy:hover::after{content:"Copy";display:block;color:#fff}.btn-copy:focus::after,.btn-copy:active::after{content:"Copied";display:block;color:#fff}.collapsible-sidebar{margin:2.125rem 0}.btn-toggle{display:inline-flex;align-items:center;padding:0.25rem 0.5rem 0.25rem 0;font-weight:700;font-size:1rem;text-transform:uppercase;color:#1d2d35;background-color:transparent;border:0}.btn-toggle:hover,.btn-toggle:focus{color:#1d2d35;background-color:transparent;outline:0;box-shadow:none}.btn-toggle::before{width:1.25em;line-height:0;content:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='rgba%2829, 45, 53, 0.75%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 14l6-6-6-6'/%3e%3c/svg%3e");transition:transform 0.35s ease;transform-origin:0.5em 50%;margin-bottom:0.125rem}.btn-toggle[aria-expanded="true"]{color:#1d2d35}.btn-toggle[aria-expanded="true"]::before{transform:rotate(90deg)}.btn-toggle-nav a{display:inline-flex;padding:0.1875rem 0.5rem;margin-top:0.125rem;margin-left:1.25rem;text-decoration:none}.btn-toggle-nav a:hover,.btn-toggle-nav a:focus{background-color:transparent;color:#5d2f86}.btn-toggle-nav a.active{color:#5d2f86}.dropdown-menu{width:auto}@media (min-width: 992px){.dropdown-menu{width:auto}}.doks-navbar .dropdown-menu,.doks-subnavbar .dropdown-menu{font-size:0.875rem}.doks-navbar .dropdown-item.current,.doks-subnavbar .dropdown-item.current{font-weight:600;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23292b2c' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 1rem top 0.6rem;background-size:0.75rem 0.75rem}.btn-close{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-x'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");background-size:1.5rem}.offcanvas-header .btn-close{margin-right:0 !important}.dropdown-toggle::after{display:none}.dropdown-caret{margin-left:-0.1875rem;margin-right:-0.3125rem}.dropdown-menu-main .dropdown-item{color:inherit;font-size:1rem;font-weight:400;text-decoration:none}.dropdown-menu-main .dropdown-item:hover{background-color:transparent;color:#5d2f86}.dropdown-menu-main .dropdown-item.active{color:#5d2f86;font-weight:400;text-decoration:none;background-color:inherit}.dropdown-menu-main .dropdown-item.active:hover{background-color:transparent}pre,code,kbd,samp{font-family:sfmono-regular,menlo,monaco,consolas,"Liberation Mono","Courier New",monospace;font-size:.875rem;border-radius:.25rem}code{background:#fbf7f0;color:#1d2d35;padding:0.25rem 0.5rem}pre{margin:2rem 0}pre code{display:block;overflow-x:auto;line-height:1.5;padding:1.25rem 1.5rem;-moz-tab-size:4;-o-tab-size:4;tab-size:4;scrollbar-width:thin;scrollbar-color:transparent transparent}.hljs{padding:1.5rem !important}@media (max-width: 575.98px){pre,code,kbd,samp{border-radius:0}pre{margin:2rem -1.5rem}}pre code::-webkit-scrollbar{height:5px}pre code::-webkit-scrollbar-thumb{background:#ced4da}pre code:hover{scrollbar-width:thin;scrollbar-color:#adb5bd transparent}pre code::-webkit-scrollbar-thumb:hover{background:#adb5bd}code.language-mermaid{background:none}details{display:block;border:1px solid #e9ecef;border-radius:0.25rem;padding:0.5rem 1rem 0;margin:0.5rem 0}summary{list-style:none;display:inline-block;width:calc(100% + 2rem);margin:-0.5rem -1rem 0;padding:0.5rem 0.75rem}summary::-webkit-details-marker{display:none}summary:hover{background:#f8f9fa}details summary::before{display:inline-block;content:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='rgba%2829, 45, 53, 0.75%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 14l6-6-6-6'/%3e%3c/svg%3e");transition:transform 0.35s ease;transform-origin:center center;margin-right:0.375rem}details[open]>summary::before{transform:rotate(90deg)}details[open]{padding:0.5rem 1rem}details[open]>summary{border-bottom:1px solid #dee2e6;margin-bottom:0.5rem}details h2,details .h2,details h3,details .h3,details h4,details .h4{margin:1rem 0 0.5rem}details p:last-child{margin-bottom:0}details ul,details ol{margin-bottom:0}details pre{margin:0 0 1rem}.hljs{display:block;overflow-x:auto;padding:1.25rem 1.5rem;background:#fbf7f0;color:#1d2d35}.hljs-string,.hljs-variable,.hljs-template-variable,.hljs-symbol,.hljs-bullet,.hljs-section,.hljs-addition,.hljs-attribute,.hljs-link{color:#d32e9d}.hljs-comment,.hljs-quote,.hljs-meta,.hljs-deletion{color:#888}.hljs-keyword,.hljs-selector-tag,.hljs-section,.hljs-name,.hljs-type,.hljs-strong{font-weight:bold}.hljs-emphasis{font-style:italic}[data-dark-mode] body .hljs{background:#1b1f22;color:#dee2e6}[data-dark-mode] body .hljs-string,[data-dark-mode] body .hljs-variable,[data-dark-mode] body .hljs-template-variable,[data-dark-mode] body .hljs-symbol,[data-dark-mode] body .hljs-bullet,[data-dark-mode] body .hljs-section,[data-dark-mode] body .hljs-addition,[data-dark-mode] body .hljs-attribute,[data-dark-mode] body .hljs-link{color:#8ed6fb}blockquote{margin-bottom:1rem;font-size:1.25rem;border-left:3px solid #dee2e6;padding-left:1rem}figure{margin:0 0 1rem;display:inline-block}figure img{margin-bottom:0.5rem;line-height:1;max-width:100%;height:auto}figure figcaption{margin:0.25rem 0 0.75rem;font-size:0.875em;color:#6c757d}.figure-caption{margin:0.25rem 0 0.75rem}.blur-up{filter:blur(5px)}.blur-up.lazyloaded{filter:unset}.mermaid{margin:1.5rem 0;padding:1.5rem}.mermaid svg{height:auto}.navbar-form{position:relative}#suggestions{position:absolute;right:0;margin-top:0.5rem;width:calc(100vw - 3rem);max-width:calc(400px - 3rem);z-index:1000}@media (min-width: 768px){#suggestions{right:-2rem}}@media (min-width: 992px){#suggestions{right:0}}#suggestions a,.suggestion__no-results{padding:0.75rem;margin:0 0.5rem}#suggestions a{display:block;text-decoration:none}#suggestions a:focus{background:#f8f9fa;outline:0}#suggestions div:not(:first-child){border-top:1px dashed #e9ecef}#suggestions div:first-child{margin-top:0.5rem}#suggestions div:last-child{margin-bottom:0.5rem}#suggestions a:hover{background:#f8f9fa}#suggestions span{display:flex;font-size:1rem}.suggestion__title{font-weight:700;color:#1d2d35}.suggestion__description,.suggestion__no-results{color:#495057}@media (min-width: 992px){#suggestions{width:31.125rem;max-width:31.125rem}#suggestions a{display:flex}.suggestion__title{width:9rem;padding-right:1rem;border-right:1px solid #e9ecef;display:inline-block;text-align:right}.suggestion__description{width:19rem;padding-left:1rem}}table{margin:3rem 0}.footer{border-top:1px solid #e9ecef;padding-top:1.125rem;padding-bottom:1.125rem}.footer ul{margin-bottom:0}.footer li{font-size:.875rem;margin-bottom:0}@media (min-width: 768px){.footer li{font-size:1rem}}.navbar-text{margin-left:1rem}.navbar-brand{font-weight:700}.navbar{z-index:1000;background-color:rgba(255,255,255,0.95);border-bottom:1px solid #e9ecef}@media (min-width: 992px){.navbar{z-index:1025;padding-top:0.25rem;padding-bottom:0.25rem}}@media (min-width: 768px){.navbar-brand{font-size:1.375rem}.navbar-text{margin-left:1.25rem}}.navbar-nav{flex-direction:row}.nav-item{margin-left:0}@media (min-width: 768px){.nav-item{margin-left:0.5rem}}@media (max-width: 767.98px){.navbar .container{padding-left:1.5rem;padding-right:1.5rem}}button#doks-languages{margin:0.25rem 0 0}@media (min-width: 992px){button#doks-languages{margin:0.25rem 0.5rem 0 0.25rem}}button#doks-versions{margin:0.25rem 0 0}@media (min-width: 992px){button#doks-versions{margin:0.25rem 0.5rem 0 0.25rem}}.offcanvas .nav-link{color:#1d2d35}.doks-subnavbar{background-color:rgba(255,255,255,0.95);border-bottom:1px solid #e9ecef}.doks-subnavbar .nav-link{padding:0.5rem 1.5rem 0.5rem 0}.doks-subnavbar .nav-link:first-child{padding:0.5rem 1.5rem 0.5rem 0}.offcanvas .nav-link:hover,.offcanvas .nav-link:focus{color:#5d2f86}.offcanvas .nav-link.active{color:#5d2f86}.header-bar{border-top:4px solid;border-image-source:linear-gradient(90deg, #5d2f86, #8ed6fb 50%, #d32e9d);border-image-slice:1}.offcanvas .header-bar{margin-bottom:-4px}.home .navbar{border-bottom:0}@media (min-width: 768px){.navbar-brand{margin-right:0.75rem !important}.doks-search{max-width:20rem;margin-top:0.125rem;margin-bottom:0.125rem}}.form-control.is-search{padding-right:4rem;border:1px solid transparent;background:#f8f9fa}@media (min-width: 768px){.form-control.is-search{width:calc(100% + 2rem)}}@media (min-width: 992px){.form-control.is-search{width:100%}}.form-control.is-search:focus{border:1px solid #5d2f86}.doks-search::after{position:absolute;top:0.4625rem;right:0.5375rem;display:flex;align-items:center;justify-content:center;height:1.5rem;padding-right:0.3125rem;padding-left:0.3125rem;font-size:.75rem;color:#495057;content:"Ctrl + /";border:1px solid #dee2e6;border-radius:0.25rem}@media (min-width: 768px){.doks-search::after{right:-1.4625rem}}@media (min-width: 992px){.doks-search::after{right:0.3125rem}}.algolia-autocomplete{display:flex !important}.algolia-autocomplete .ds-dropdown-menu{box-shadow:0 0.5rem 1rem rgba(0,0,0,0.15) !important}@media (max-width: 575.98px){.algolia-autocomplete .ds-dropdown-menu{max-width:512px !important;min-width:312px !important;width:auto !important}.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column{font-weight:normal}.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column::after{content:"/";margin-right:0.25rem}}.algolia-autocomplete .algolia-docsearch-suggestion--category-header{color:#1d2d35}.algolia-autocomplete .algolia-docsearch-suggestion--title{margin-bottom:0}.algolia-autocomplete .algolia-docsearch-suggestion--highlight{padding:0 0.05em}.algolia-autocomplete .algolia-docsearch-footer{margin-top:1rem;margin-right:0.5rem;margin-bottom:0.5rem}.navbar .menu-icon{cursor:pointer;padding:1.125rem 0.625rem;margin:0 0 0 -0.625rem;-webkit-user-select:none;-moz-user-select:none;user-select:none}.navbar .menu-icon .navicon{background:#1d2d35;display:block;height:2px;position:relative;transition:background 0.2s ease-out;width:18px}.navbar .menu-icon .navicon::before,.navbar .menu-icon .navicon::after{background:#1d2d35;content:"";display:block;height:100%;position:absolute;transition:all 0.2s ease-out;width:100%}.navbar .menu-icon .navicon::before{top:5px}.navbar .menu-icon .navicon::after{top:-5px}.btn-menu{margin-left:1rem;border:transparent}.btn-doks-light{border:transparent}.btn-menu,.doks-sidebar-toggle{padding-right:0.25rem;padding-left:0.25rem;margin-right:-0.5rem}.btn-menu:hover,.btn-doks-light:hover,.doks-sidebar-toggle:hover{background:#fcfaff;border:transparent}.btn-menu:focus,.btn-doks-light:focus,.doks-sidebar-toggle:focus{outline:0;border:transparent}.doks-sidebar-toggle .doks-collapse,.doks-toc-toggle .doks-collapse{display:none}.doks-sidebar-toggle:not(.collapsed) .doks-expand,.doks-toc-toggle:not(.collapsed) .doks-expand{display:none}.doks-sidebar-toggle:not(.collapsed) .doks-collapse,.doks-toc-toggle:not(.collapsed) .doks-collapse{display:inline-block}.navbar-light .navbar-brand,.navbar-light .navbar-brand:hover,.navbar-light .navbar-brand:active{color:#1d2d35}.navbar-light .navbar-nav .active .nav-link{color:#5d2f86}.dropdown-divider{border-top:1px dashed #e9ecef}.dropdown-item:hover{background:#f8f9fa}.dropdown-item:active{color:inherit}.social-link{padding-left:0.5rem}@media (min-width: 768px){.social-link{padding-left:0}}@media (min-width: 992px){.social-link{padding-right:0.5rem;padding-left:0.5rem}}.docs-content>h2[id]::before,.docs-content>[id].h2::before,.docs-content>h3[id]::before,.docs-content>[id].h3::before,.docs-content>h4[id]::before,.docs-content>[id].h4::before{display:block;height:6rem;margin-top:-6rem;content:""}.anchor{visibility:hidden}h1:hover a,.h1:hover a,h2:hover a,.h2:hover a,h3:hover a,.h3:hover a,h4:hover a,.h4:hover a{visibility:visible;text-decoration:none}.card-list{margin-top:2.25rem}.page-footer-meta{margin-top:3rem}.edit-page,.last-modified{font-size:.875rem;margin-top:0.25rem;margin-bottom:0.25rem}@media (min-width: 768px){.edit-page,.last-modified{font-size:1rem;margin-top:0.75rem;margin-bottom:0.25rem}}.edit-page svg,.last-modified svg{margin-right:0.25rem;margin-bottom:0.25rem}p.meta{margin-top:0.5rem;font-size:1rem}.breadcrumb{margin-top:2.25rem;font-size:1rem}.page-link:hover{text-decoration:none}.home .card,.contributors.list .card,.blog.list .card,.blog.single .card,.categories.list .card,.tags.list .card{margin-top:2rem;margin-bottom:2rem;transition:transform 0.3s}.home .card:hover,.contributors.list .card:hover,.blog.list .card:hover,.blog.single .card:hover,.categories.list .card:hover,.tags.list .card:hover{transform:scale(1.025)}.contributors.list .card.card-terms:hover,.categories.list .card.card-terms:hover,.tags.list .card.card-terms:hover{transform:none}.home .card-body,.contributors.list .card-body,.blog.list .card-body,.blog.single .card-body,.categories.list .card-body,.tags.list .card-body{padding:0 2rem 1rem}.contributors.list .card-terms .card-body,.categories.list .card-terms .card-body,.tags.list .card-terms .card-body{padding:1rem}.blog-header{text-align:center;margin-bottom:2rem}.related-posts{margin-top:4rem}h2.section-title,.section-title.h2{margin-bottom:1.25rem}.docs-links,.docs-toc{scrollbar-width:thin;scrollbar-color:#fff #fff}.docs-links::-webkit-scrollbar,.docs-toc::-webkit-scrollbar{width:5px}.docs-links::-webkit-scrollbar-track,.docs-toc::-webkit-scrollbar-track{background:#fff}.docs-links::-webkit-scrollbar-thumb,.docs-toc::-webkit-scrollbar-thumb{background:#fff}.docs-links:hover,.docs-toc:hover{scrollbar-width:thin;scrollbar-color:#e9ecef #fff}.docs-links:hover::-webkit-scrollbar-thumb,.docs-toc:hover::-webkit-scrollbar-thumb{background:#e9ecef}.docs-links::-webkit-scrollbar-thumb:hover,.docs-toc::-webkit-scrollbar-thumb:hover{background:#e9ecef}.docs-links h3,.docs-links .h3,.page-links h3,.page-links .h3{text-transform:uppercase;font-size:1rem;margin:1.25rem 0 0.5rem;padding:1.5rem 0 0}@media (min-width: 992px){.docs-links h3,.docs-links .h3,.page-links h3,.page-links .h3{margin:1.125rem 1.5rem 0.75rem 0;padding:1.375rem 0 0}}.docs-links h3:not(:first-child),.docs-links .h3:not(:first-child){border-top:1px solid #e9ecef}a.docs-link{color:#1d2d35;display:block;padding:0.125rem 0;font-size:1rem}.page-links li{margin-top:0.375rem;padding-top:0.375rem}.page-links li ul li{border-top:none;padding-left:1rem;margin-top:0.125rem;padding-top:0.125rem}.page-links li:not(:first-child){border-top:1px dashed #e9ecef}.page-links a{color:#1d2d35;display:block;padding:0.125rem 0;font-size:.9375rem}.docs-link:hover,.docs-link.active,.page-links a:hover{text-decoration:none;color:#5d2f86}.nav-link.active,.dropdown-menu-main .dropdown-item.active,.docs-link.active{font-weight:500}.docs-links h3.sidebar-link,.docs-links .sidebar-link.h3,.page-links h3.sidebar-link,.page-links .sidebar-link.h3{text-transform:none;font-size:1.125rem;font-weight:normal}.docs-links h3.sidebar-link a,.docs-links .sidebar-link.h3 a,.page-links h3.sidebar-link a,.page-links .sidebar-link.h3 a{color:#1d2d35}.docs-links h3.sidebar-link a:hover,.docs-links .sidebar-link.h3 a:hover,.page-links h3.sidebar-link a:hover,.page-links .sidebar-link.h3 a:hover{text-decoration:underline}@font-face{font-family:"San Francisco";font-weight:100;src:url("https://applesocial.s3.amazonaws.com/assets/styles/fonts/sanfrancisco/sanfranciscodisplay-ultralight-webfont.woff")}@font-face{font-family:"San Francisco";font-weight:200;src:url("https://applesocial.s3.amazonaws.com/assets/styles/fonts/sanfrancisco/sanfranciscodisplay-thin-webfont.woff")}@font-face{font-family:"San Francisco";font-weight:400;src:url("https://applesocial.s3.amazonaws.com/assets/styles/fonts/sanfrancisco/sanfranciscodisplay-regular-webfont.woff")}@font-face{font-family:"San Francisco";font-weight:500;src:url("https://applesocial.s3.amazonaws.com/assets/styles/fonts/sanfrancisco/sanfranciscodisplay-medium-webfont.woff")}@font-face{font-family:"San Francisco";font-weight:600;src:url("https://applesocial.s3.amazonaws.com/assets/styles/fonts/sanfrancisco/sanfranciscodisplay-semibold-webfont.woff")}@font-face{font-family:"San Francisco";font-weight:700;src:url("https://applesocial.s3.amazonaws.com/assets/styles/fonts/sanfrancisco/sanfranciscodisplay-bold-webfont.woff")}@font-face{font-family:"DejaVu Sans Mono";font-style:normal;font-weight:normal;src:local(DejaVu Sans Mono),local(DejaVuSansMono),url(DejaVuSansMono.woff) format("woff")}@font-face{font-family:"DejaVu Sans Mono";font-style:normal;font-weight:bold;src:local(DejaVu Sans Mono Bold),local(DejaVuSansMono-Bold),url(DejaVuSansMono-Bold.woff) format("woff")}@font-face{font-family:"DejaVu Sans Mono";font-style:oblique;font-weight:bold;src:local(DejaVu Sans Mono Bold Oblique),local(DejaVuSansMono-BoldOblique),url(DejaVuSansMono-BoldOblique.woff) format("woff")}@font-face{font-family:"DejaVu Sans Mono";font-style:oblique;font-weight:normal;src:local(DejaVu Sans Mono Oblique),local(DejaVuSansMono-Oblique),url(DejaVuSansMono-Oblique.woff) format("woff")}body{font-family:'Inter', sans-serif}code{font-family:'DejaVu Sans Mono', monospace} diff --git a/main.min.0aae37ae653863c10698d1a14193ab9c3527f57b4a9746b1c51e80b8d2188193ad5b91c191036b35a58522bbe6cd50431b351c2a5f2e55f81a3d0838739587d5.js b/main.min.0aae37ae653863c10698d1a14193ab9c3527f57b4a9746b1c51e80b8d2188193ad5b91c191036b35a58522bbe6cd50431b351c2a5f2e55f81a3d0838739587d5.js new file mode 100644 index 00000000..49e6ec4a --- /dev/null +++ b/main.min.0aae37ae653863c10698d1a14193ab9c3527f57b4a9746b1c51e80b8d2188193ad5b91c191036b35a58522bbe6cd50431b351c2a5f2e55f81a3d0838739587d5.js @@ -0,0 +1 @@ +(()=>{var n=Object.create,e=Object.defineProperty,s=Object.getOwnPropertyDescriptor,t=Object.getOwnPropertyNames,o=Object.getPrototypeOf,i=Object.prototype.hasOwnProperty,a=(e,n)=>function(){return n||(0,e[t(e)[0]])((n={exports:{}}).exports,n),n.exports},r=(n,o,a,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let c of t(o))!i.call(n,c)&&c!==a&&e(n,c,{get:()=>o[c],enumerable:!(r=s(o,c))||r.enumerable});return n},c=(t,s,i)=>(i=t!=null?n(o(t)):{},r(s||!t||!t.__esModule?e(i,"default",{value:t,enumerable:!0}):i,t)),l=a({"node_modules/lazysizes/lazysizes.js"(e,t){(function(e,n){var s=n(e,e.document,Date);e.lazySizes=s,typeof t=="object"&&t.exports&&(t.exports=s)})(typeof window!="undefined"?window:{},function(t,n,s){"use strict";if(function(){var e,n={lazyClass:"lazyload",loadedClass:"lazyloaded",loadingClass:"lazyloading",preloadClass:"lazypreload",errorClass:"lazyerror",autosizesClass:"lazyautosizes",fastLoadedClass:"ls-is-cached",iframeLoadMode:0,srcAttr:"data-src",srcsetAttr:"data-srcset",sizesAttr:"data-sizes",minSize:40,customMedia:{},init:!0,expFactor:1.5,hFac:.8,loadMode:2,loadHidden:!0,ricTimeout:0,throttleDelay:125};o=t.lazySizesConfig||t.lazysizesConfig||{};for(e in n)e in o||(o[e]=n[e])}(),!n||!n.getElementsByClassName)return{init:function(){},cfg:o,noSupport:!0};var o,r,l=n.documentElement,T=t.HTMLPictureElement,d="addEventListener",i="getAttribute",c=t[d].bind(t),a=t.setTimeout,x=t.requestAnimationFrame||a,w=t.requestIdleCallback,E=/^picture$/i,F=["load","error","lazyincluded","_lazyloaded"],g={},M=Array.prototype.forEach,p=function(e,t){return g[t]||(g[t]=new RegExp("(\\s|^)"+t+"(\\s|$)")),g[t].test(e[i]("class")||"")&&g[t]},f=function(e,t){p(e,t)||e.setAttribute("class",(e[i]("class")||"").trim()+" "+t)},y=function(e,t){var n;(n=p(e,t))&&e.setAttribute("class",(e[i]("class")||"").replace(n," "))},_=function(e,t,n){var s=n?d:"removeEventListener";n&&_(e,t),F.forEach(function(n){e[s](n,t)})},m=function(e,t,s,o,i){var a=n.createEvent("Event");return s||(s={}),s.instance=r,a.initEvent(t,!o,!i),a.detail=s,e.dispatchEvent(a),a},O=function(e,n){var s;!T&&(s=t.picturefill||o.pf)?(n&&n.src&&!e[i]("srcset")&&e.setAttribute("srcset",n.src),s({reevaluate:!0,elements:[e]})):n&&n.src&&(e.src=n.src)},h=function(e,t){return(getComputedStyle(e,null)||{})[t]},C=function(e,t,n){for(n=n||e.offsetWidth;n49?function(){w(r,{timeout:t}),t!==o.ricTimeout&&(t=o.ricTimeout)}:v(function(){a(r)},!0);return function(e){var o;if((e=e===!0)&&(t=33),n)return;n=!0,o=l-(s.now()-i),o<0&&(o=0),e||o<9?c():a(c,o)}},A=function(e){var t,o,n=99,i=function(){t=null,e()},r=function(){var e=s.now()-o;e0,i&&h(s,"overflow")!="visible"&&(o=s.getBoundingClientRect(),i=D>o.left&&zo.top-1&&T500&&l.clientWidth>500?500:370:o.expand,r._defEx=c,p=c*o.expFactor,m=o.hFac,L=null,F2&&k>2&&!n.hidden?(F=p,b=0):k>1&&b>1&&g<6?F=c:F=te),v!==s&&($=innerWidth+s*m,V=innerHeight+s,h=s*-1,v=s),a=t[e].getBoundingClientRect(),(N=a.bottom)>=h&&(T=a.top)<=V&&(D=a.right)>=h*m&&(z=a.left)<=$&&(N||D||z||T)&&(o.loadHidden||U(t[e]))&&(w&&g<3&&!u&&(k<3||b<4)||G(t[e],s))){if(C(t[e]),f=!0,g>9)break}else!f&&w&&!d&&g<4&&b<4&&k>2&&(R[0]||o.preloadAfterLoad)&&(R[0]||!u&&(N||D||z||T||t[e][i](o.sizesAttr)!="auto"))&&(d=R[0]||t[e])}d&&!f&&C(d)}},e=S(q),K=function(e){var t=e.target;if(t._lazyCache){delete t._lazyCache;return}W(e),f(t,o.loadedClass),y(t,o.loadingClass),_(t,B),m(t,"lazyloaded")},X=v(K),B=function(e){X({target:e.target})},Z=function(e,t){var n=e.getAttribute("data-load-mode")||o.iframeLoadMode;n==0?e.contentWindow.location.replace(t):n==1&&(e.src=t)},J=function(e){var t,n=e[i](o.srcsetAttr);(t=o.customMedia[e[i]("data-media")||e[i]("media")])&&e.setAttribute("media",t),n&&e.setAttribute("srcset",n)},ee=v(function(e,t,n,s,r){var c,l,d,h,p,v;(p=m(e,"lazybeforeunveil",t)).defaultPrevented||(s&&(n?f(e,o.autosizesClass):e.setAttribute("sizes",s)),l=e[i](o.srcsetAttr),c=e[i](o.srcAttr),r&&(h=e.parentNode,d=h&&E.test(h.nodeName||"")),v=t.firesLoad||"src"in e&&(l||c||d),p={target:e},f(e,o.loadingClass),v&&(clearTimeout(I),I=a(W,2500),_(e,B,!0)),d&&M.call(h.getElementsByTagName("source"),J),l?e.setAttribute("srcset",l):c&&!d&&(oe.test(e.nodeName)?Z(e,c):e.src=c),r&&(l||d)&&O(e,{src:c})),e._lazyRace&&delete e._lazyRace,y(e,o.lazyClass),u(function(){var t=e.complete&&e.naturalWidth>1;(!v||t)&&(t&&f(e,o.fastLoadedClass),K(p),e._lazyCache=!0,a(function(){"_lazyCache"in e&&delete e._lazyCache},9)),e.loading=="lazy"&&g--},!0)}),C=function(e){if(e._lazyRace)return;var s,t=Q.test(e.nodeName),a=t&&(e[i](o.sizesAttr)||e[i]("sizes")),n=a=="auto";if((n||!w)&&t&&(e[i]("src")||e.srcset)&&!e.complete&&!p(e,o.errorClass)&&p(e,o.lazyClass))return;s=m(e,"lazyunveilread").detail,n&&j.updateElem(e,!0,e.offsetWidth),e._lazyRace=!0,g++,ee(e,s,n,a,t)},ne=A(function(){o.loadMode=3,e()}),H=function(){o.loadMode==3&&(o.loadMode=2),ne()},P=function(){if(w)return;if(s.now()-Y<999){a(P,999);return}w=!0,o.loadMode=3,e(),c("scroll",H,!0)};return{_:function(){Y=s.now(),r.elements=n.getElementsByClassName(o.lazyClass),R=n.getElementsByClassName(o.lazyClass+" "+o.preloadClass),c("scroll",e,!0),c("resize",e,!0),c("pageshow",function(e){if(e.persisted){var t=n.querySelectorAll("."+o.loadingClass);t.length&&t.forEach&&x(function(){t.forEach(function(e){e.complete&&C(e)})})}}),t.MutationObserver?new MutationObserver(e).observe(l,{childList:!0,subtree:!0,attributes:!0}):(l[d]("DOMNodeInserted",e,!0),l[d]("DOMAttrModified",e,!0),setInterval(e,999)),c("hashchange",e,!0),["focus","mouseover","click","load","transitionend","animationend"].forEach(function(t){n[d](t,e,!0)}),/d$|^c/.test(n.readyState)?P():(c("load",P),n[d]("DOMContentLoaded",e),a(P,2e4)),r.elements.length?(q(),u._lsFlush()):e()},checkElems:e,unveil:C,_aLSL:H}}(),j=function(){var e,i=v(function(e,t,n,s){var o,i,a;if(e._lazysizesWidth=s,s+="px",e.setAttribute("sizes",s),E.test(t.nodeName||"")){i=t.getElementsByTagName("source");for(o=0,a=i.length;o{var e,t,n,i,p=Object.create,s=Object.defineProperty,f=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,m=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty,u=(e,t)=>function(){return t||(0,e[o(e)[0]])((t={exports:{}}).exports,t),t.exports},c=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of o(t))!h.call(e,a)&&a!==n&&s(e,a,{get:()=>t[a],enumerable:!(i=f(t,a))||i.enumerable});return e},r=(e,t,n)=>(n=e!=null?p(m(e)):{},c(t||!e||!e.__esModule?s(n,"default",{value:e,enumerable:!0}):n,e)),l=u({"node_modules/clipboard/dist/clipboard.js"(e,t){(function(s,o){typeof e=="object"&&typeof t=="object"?t.exports=o():typeof define=="function"&&define.amd?define([],o):typeof e=="object"?e.ClipboardJS=o():s.ClipboardJS=o()})(e,function(){return function(){var n={686:function(e,t,n){"use strict";n.d(t,{default:function(){return j}});var a,r,h,f,p,g,v,b,j,T=n(279),F=n.n(T),M=n(370),S=n.n(M),x=n(817),l=n.n(x);function d(e){try{return document.execCommand(e)}catch{return!1}}p=function(t){var n=l()(t);return d("cut"),n},h=p;function _(e){var n,s=document.documentElement.getAttribute("dir")==="rtl",t=document.createElement("textarea");return t.style.fontSize="12pt",t.style.border="0",t.style.padding="0",t.style.margin="0",t.style.position="absolute",t.style[s?"right":"left"]="-9999px",n=window.pageYOffset||document.documentElement.scrollTop,t.style.top="".concat(n,"px"),t.setAttribute("readonly",""),t.value=e,t}r=function(t,n){var o,s=_(t);return n.container.appendChild(s),o=l()(s),d("copy"),s.remove(),o},f=function(t){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body},n="";return typeof t=="string"?n=r(t,s):t instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(t?.type)?n=r(t.value,s):(n=l()(t),d("copy")),n},a=f;function o(e){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?o=function(t){return typeof t}:o=function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(e)}v=function(){var s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},i=s.action,n=i===void 0?"copy":i,r=s.container,t=s.target,c=s.text;if(n!=="copy"&&n!=="cut")throw new Error('Invalid "action" value, use either "copy" or "cut"');if(t!==void 0)if(t&&o(t)==="object"&&t.nodeType===1){{if(n==="copy"&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if(n==="cut"&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`)}}else throw new Error('Invalid "target" value, use a valid Element');if(c)return a(c,{container:r});if(t)return n==="cut"?h(t):a(t,{container:r})},b=v;function s(e){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?s=function(t){return typeof t}:s=function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},s(e)}function y(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function m(e,t){for(var n,s=0;s0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof t.action=="function"?t.action:this.defaultAction,this.target=typeof t.target=="function"?t.target:this.defaultTarget,this.text=typeof t.text=="function"?t.text:this.defaultText,this.container=s(t.container)==="object"?t.container:document.body}},{key:"listenClick",value:function(t){var n=this;this.listener=S()(t,"click",function(e){return n.onClick(e)})}},{key:"onClick",value:function(t){var n=t.delegateTarget||t.currentTarget,s=this.action(n)||"copy",o=b({action:s,container:this.container,target:this.target(n),text:this.text(n)});this.emit(o?"success":"error",{action:s,text:o,trigger:n,clearSelection:function(){n&&n.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(t){return u("action",t)}},{key:"defaultTarget",value:function(t){var n=u("target",t);if(n)return document.querySelector(n)}},{key:"defaultText",value:function(t){return u("text",t)}},{key:"destroy",value:function(){this.listener.destroy()}}],[{key:"copy",value:function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body};return a(t,n)}},{key:"cut",value:function(t){return h(t)}},{key:"isSupported",value:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["copy","cut"],s=typeof t=="string"?[t]:t,n=!!document.queryCommandSupported;return s.forEach(function(e){n=n&&!!document.queryCommandSupported(e)}),n}}]),t}(F()),j=g},828:function(e){var t,n=9;typeof Element!="undefined"&&!Element.prototype.matches&&(t=Element.prototype,t.matches=t.matchesSelector||t.mozMatchesSelector||t.msMatchesSelector||t.oMatchesSelector||t.webkitMatchesSelector);function s(e,t){for(;e&&e.nodeType!==n;){if(typeof e.matches=="function"&&e.matches(t))return e;e=e.parentNode}}e.exports=s},438:function(e,t,n){var o=n(828);function s(e,t,n,s,o){var i=a.apply(this,arguments);return e.addEventListener(n,i,o),{destroy:function(){e.removeEventListener(n,i,o)}}}function i(e,t,n,o,i){return typeof e.addEventListener=="function"?s.apply(null,arguments):typeof n=="function"?s.bind(null,document).apply(null,arguments):(typeof e=="string"&&(e=document.querySelectorAll(e)),Array.prototype.map.call(e,function(e){return s(e,t,n,o,i)}))}function a(e,t,n,s){return function(n){n.delegateTarget=o(n.target,t),n.delegateTarget&&s.call(e,n)}}e.exports=i},879:function(e,t){t.node=function(e){return e!==void 0&&e instanceof HTMLElement&&e.nodeType===1},t.nodeList=function(e){var n=Object.prototype.toString.call(e);return e!==void 0&&(n==="[object NodeList]"||n==="[object HTMLCollection]")&&"length"in e&&(e.length===0||t.node(e[0]))},t.string=function(e){return typeof e=="string"||e instanceof String},t.fn=function(e){var t=Object.prototype.toString.call(e);return t==="[object Function]"}},370:function(e,t,n){var s=n(879),o=n(438);function i(e,t,n){if(!e&&!t&&!n)throw new Error("Missing required arguments");if(!s.string(t))throw new TypeError("Second argument must be a String");if(!s.fn(n))throw new TypeError("Third argument must be a Function");if(s.node(e))return a(e,t,n);if(s.nodeList(e))return r(e,t,n);if(s.string(e))return c(e,t,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function a(e,t,n){return e.addEventListener(t,n),{destroy:function(){e.removeEventListener(t,n)}}}function r(e,t,n){return Array.prototype.forEach.call(e,function(e){e.addEventListener(t,n)}),{destroy:function(){Array.prototype.forEach.call(e,function(e){e.removeEventListener(t,n)})}}}function c(e,t,n){return o(document.body,e,t,n)}e.exports=i},817:function(e){function t(e){if(e.nodeName==="SELECT")e.focus(),t=e.value;else if(e.nodeName==="INPUT"||e.nodeName==="TEXTAREA"){var t,n,s,o=e.hasAttribute("readonly");o||e.setAttribute("readonly",""),e.select(),e.setSelectionRange(0,e.value.length),o||e.removeAttribute("readonly"),t=e.value}else e.hasAttribute("contenteditable")&&e.focus(),n=window.getSelection(),s=document.createRange(),s.selectNodeContents(e),n.removeAllRanges(),n.addRange(s),t=n.toString();return t}e.exports=t},279:function(e){function t(){}t.prototype={on:function(e,t,n){var s=this.e||(this.e={});return(s[e]||(s[e]=[])).push({fn:t,ctx:n}),this},once:function(e,t,n){var o=this;function s(){o.off(e,s),t.apply(n,arguments)}return s._=t,this.on(e,s,n)},emit:function(e){var s=[].slice.call(arguments,1),n=((this.e||(this.e={}))[e]||[]).slice(),t=0,o=n.length;for(t;t');t=new d.default(".btn-copy",{target:function(e){return e.nextElementSibling}}),t.on("success",function(e){e.clearSelection()}),t.on("error",function(e){console.error("Action:",e.action),console.error("Trigger:",e.trigger)})})(),(()=>{var e,s,a=new Set,i=document.createElement("link"),j=i.relList&&i.relList.supports&&i.relList.supports("prefetch")&&window.IntersectionObserver&&"isIntersecting"in IntersectionObserverEntry.prototype,f="instantAllowQueryString"in document.body.dataset,m="instantAllowExternalLinks"in document.body.dataset,h="instantWhitelist"in document.body.dataset,c="instantMousedownShortcut"in document.body.dataset,l=1111,u=65,r=!1,d=!1,o=!1;if("instantIntensity"in document.body.dataset){const e=document.body.dataset.instantIntensity;if(e.substr(0,"mousedown".length)=="mousedown")r=!0,e=="mousedown-only"&&(d=!0);else if(e.substr(0,"viewport".length)=="viewport")navigator.connection&&(navigator.connection.saveData||navigator.connection.effectiveType&&navigator.connection.effectiveType.includes("2g"))||(e=="viewport"?document.documentElement.clientWidth*document.documentElement.clientHeight<45e4&&(o=!0):e=="viewport-all"&&(o=!0));else{const t=parseInt(e);isNaN(t)||(u=t)}}if(j){const e={capture:!0,passive:!0};if(d||document.addEventListener("touchstart",y,e),r?c||document.addEventListener("mousedown",g,e):document.addEventListener("mouseover",p,e),c&&document.addEventListener("mousedown",b,e),o){let e;window.requestIdleCallback?e=e=>{requestIdleCallback(e,{timeout:1500})}:e=e=>{e()},e(()=>{const e=new IntersectionObserver(t=>{t.forEach(t=>{if(t.isIntersecting){const s=t.target;e.unobserve(s),n(s.href)}})});document.querySelectorAll("a").forEach(n=>{t(n)&&e.observe(n)})})}}function y(e){s=performance.now();const o=e.target.closest("a");if(!t(o))return;n(o.href)}function p(o){if(performance.now()-s{n(i.href),e=void 0},u)}function g(e){const s=e.target.closest("a");if(!t(s))return;n(s.href)}function v(t){if(t.relatedTarget&&t.target.closest("a")==t.relatedTarget.closest("a"))return;e&&(clearTimeout(e),e=void 0)}function b(e){if(performance.now()-s1||e.metaKey||e.ctrlKey)return;if(!t)return;t.addEventListener("click",function(e){if(e.detail==1337)return;e.preventDefault()},{capture:!0,passive:!1,once:!0});const n=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1,detail:1337});t.dispatchEvent(n)}function t(e){if(!e||!e.href)return;if(h&&!("instant"in e.dataset))return;if(!m&&e.origin!=location.origin&&!("instant"in e.dataset))return;if(!["http:","https:"].includes(e.protocol))return;if(e.protocol=="http:"&&location.protocol=="https:")return;if(!f&&e.search&&!("instant"in e.dataset))return;if(e.hash&&e.pathname+e.search==location.pathname+location.search)return;if("noInstant"in e.dataset)return;return!0}function n(e){if(a.has(e))return;const t=document.createElement("link");t.rel="prefetch",t.href=e,document.head.appendChild(t),a.add(e)}})(),function e(t){"use strict";try{module&&(t=module)}catch{}t._factory=e;function v(e){return"undefined"==typeof e||e}function U(e){const t=Array(e);for(let s=0;s=this.B&&(m||!d[p])){var i,r,l,a=y(u,o,g),c="";switch(this.G){case"full":if(3a;i--)i-a>=this.B&&(l=y(u,o,g,r,a),c=p.substring(a,i),h(this,d,c,l,e,s));break}case"reverse":if(2=this.B&&h(this,d,c,y(u,o,g,r,i),e,s);c=""}case"forward":if(1=this.B&&h(this,d,c,a,e,s);break}default:if(this.C&&(a=Math.min(a/this.C(t,p,g)|0,u-1)),h(this,d,p,a,e,s),m&&1=this.B&&!r[p]){r[p]=1;const t=this.l&&p>a;h(this,f,t?a:p,y(c+(o/2>c?0:1),o,g,i-1,l-1),e,s,t?p:a)}}}}this.m||(this.register[e]=1)}}return this};function y(e,t,n,s,o){return n&&1=this.B&&!s[t])if(this.s||r||this.map[t])l[a++]=t,s[t]=1;else return i;e=l,o=e.length}if(!o)return i;t||(t=100),c=this.depth&&1=s))))break;if(n){if(i)return Y(l,s,0);t[t.length]=l;return}}return!n&&l}function Y(e,t,n){return e=1===e.length?e[0]:[].concat.apply([],e),n||e.length>t?e.slice(n,n+t):e}function D(e,t,n,s){return n?(s=s&&t>n,e=(e=e[s?t:n])&&e[s?n:t]):e=e[t],e}s.contain=function(e){return!!this.register[e]},s.update=function(e,t){return this.remove(e).add(e,t)},s.remove=function(e,t){const n=this.register[e];if(n){if(this.m)for(let t=0,s;tt||n)&&(o=o.slice(n,n+t)),s&&(o=q.call(this,o)),{tag:e,result:o}}function q(e){const t=Array(e.length);for(let n=0,s;n{var e=document.getElementById("mode");e!==null&&(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",e=>{e.matches?(localStorage.setItem("theme","dark"),document.documentElement.setAttribute("data-dark-mode","")):(localStorage.setItem("theme","light"),document.documentElement.removeAttribute("data-dark-mode"))}),e.addEventListener("click",()=>{document.documentElement.toggleAttribute("data-dark-mode"),localStorage.setItem("theme",document.documentElement.hasAttribute("data-dark-mode")?"dark":"light")}),localStorage.getItem("theme")==="dark"?document.documentElement.setAttribute("data-dark-mode",""):document.documentElement.removeAttribute("data-dark-mode"))})(),(()=>{document.addEventListener("DOMContentLoaded",function(){renderMathInElement(document.body,{delimiters:[{left:"$$",right:"$$",display:!0},{left:"$",right:"$",display:!1},{left:"\\(",right:"\\)",display:!1},{left:"\\[",right:"\\]",display:!0}]})})})(),(()=>{if(document.querySelector("#sidebar-default")!==null){let e=document.getElementById("sidebar-default"),t=sessionStorage.getItem("sidebar-scroll");t!==null&&(e.scrollTop=parseInt(t,10)),window.addEventListener("beforeunload",()=>{sessionStorage.setItem("sidebar-scroll",e.scrollTop)})}})(),(()=>{var e=document.getElementById("toTop");e!==null&&(e.style.display="none",window.onscroll=function(){t()});function t(){document.body.scrollTop>40||document.documentElement.scrollTop>40?e.style.display="block":e.style.display="none"}})() \ No newline at end of file diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index f636dc84..00000000 --- a/package-lock.json +++ /dev/null @@ -1,12136 +0,0 @@ -{ - "name": "doks-child-theme", - "version": "0.5.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "doks-child-theme", - "version": "0.5.0", - "hasInstallScript": true, - "license": "MIT", - "devDependencies": { - "@babel/cli": "^7.18", - "@babel/core": "^7.18", - "@babel/preset-env": "^7.18", - "@fullhuman/postcss-purgecss": "^4.1", - "@hyas/doks": "^0.5", - "@hyas/images": "^0.2.1", - "auto-changelog": "^2.4.0", - "autoprefixer": "^10.4", - "bootstrap": "^5.1", - "clipboard": "^2.0", - "eslint": "^8.19", - "exec-bin": "^1.0.0", - "flexsearch": "^0.7.21", - "highlight.js": "^11.5", - "hugo-installer": "^3.1", - "instant.page": "^5.1", - "katex": "^0.16", - "lazysizes": "^5.3", - "markdownlint-cli2": "^0.4.0", - "netlify-plugin-submit-sitemap": "^0.4.0", - "postcss": "^8.4", - "postcss-cli": "^10.1.0", - "purgecss-whitelister": "^2.4", - "shx": "^0.3.4", - "stylelint": "^14.9", - "stylelint-config-standard-scss": "^4.0" - }, - "engines": { - "node": ">=16.16.0" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/cli": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.18.6.tgz", - "integrity": "sha512-jXNHoYCbxZ8rKy+2lyy0VjcaGxS4NPbN0qc95DjIiGZQL/mTNx3o2/yI0TG+X0VrrTuwmO7zH52T9NcNdbF9Uw==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.8", - "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" - }, - "bin": { - "babel": "bin/babel.js", - "babel-external-helpers": "bin/babel-external-helpers.js" - }, - "engines": { - "node": ">=6.9.0" - }, - "optionalDependencies": { - "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", - "chokidar": "^3.4.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", - "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.6.tgz", - "integrity": "sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.6", - "@babel/helper-compilation-targets": "^7.18.6", - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helpers": "^7.18.6", - "@babel/parser": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/generator": { - "version": "7.18.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.7.tgz", - "integrity": "sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.7", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.6.tgz", - "integrity": "sha512-KT10c1oWEpmrIRYnthbzHgoOf6B+Xd6a5yhdbNtdhtG7aO1or5HViuf1TQR36xY/QprXA5nvxO6nAjhJ4y38jw==", - "dev": true, - "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.18.6", - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.6.tgz", - "integrity": "sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.18.6", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.20.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.6.tgz", - "integrity": "sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-function-name": "^7.18.6", - "@babel/helper-member-expression-to-functions": "^7.18.6", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz", - "integrity": "sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0-0" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz", - "integrity": "sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", - "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz", - "integrity": "sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.18.6", - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.6.tgz", - "integrity": "sha512-CeHxqwwipekotzPDUuJOfIMtcIHBuc7WAzLmTYWctVigqS5RktNMQ5bEwQSuGewzYnCtTWa3BARXeiLxDTv+Ng==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.8.tgz", - "integrity": "sha512-che3jvZwIcZxrwh63VfnFTUzcAM9v/lznYkkRxIBGMPt1SudOKHAEec0SIRCfiuIzTcF7VGj/CaTT6gY4eWxvA==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.8", - "@babel/types": "^7.18.8" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz", - "integrity": "sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.6.tgz", - "integrity": "sha512-z5wbmV55TveUPZlCLZvxWHtrjuJd+8inFhk7DG0WW87/oJuGDcjDiu7HIvGcpf5464L6xKCg3vNkmlVVz9hwyQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-wrap-function": "^7.18.6", - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.6.tgz", - "integrity": "sha512-fTf7zoXnUGl9gF25fXCWE26t7Tvtyn6H4hkLSYhATwJvw2uYxd3aoXplMSe0g9XbwK7bmxNes7+FGO0rB/xC0g==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-member-expression-to-functions": "^7.18.6", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.6.tgz", - "integrity": "sha512-4KoLhwGS9vGethZpAhYnMejWkX64wsnHPDwvOsKWU6Fg4+AlK2Jz3TyjQLMEPvz+1zemi/WBdkYxCD0bAfIkiw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.6.tgz", - "integrity": "sha512-I5/LZfozwMNbwr/b1vhhuYD+J/mU+gfGAj5td7l5Rv9WYmH6i3Om69WGKNmlIpsVW/mF6O5bvTKbvDQZVgjqOw==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.6.tgz", - "integrity": "sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ==", - "dev": true, - "dependencies": { - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.8.tgz", - "integrity": "sha512-RSKRfYX20dyH+elbJK2uqAkVyucL+xXzhqlMD5/ZXx+dAAwpyB7HsvnHe/ZUGOF+xLr5Wx9/JoXVTj6BQE2/oA==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", - "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.6.tgz", - "integrity": "sha512-Udgu8ZRgrBrttVz6A0EVL0SJ1z+RLbIeqsu632SA1hf0awEppD6TvdznoH+orIF8wtFFAV/Enmw9Y+9oV8TQcw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.6.tgz", - "integrity": "sha512-WAz4R9bvozx4qwf74M+sfqPMKfSqwM0phxPTR6iJIi8robgzXwkEgmeJG1gEKhm6sDqT/U9aV3lfcqybIpev8w==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-remap-async-to-generator": "^7.18.6", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", - "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.6.tgz", - "integrity": "sha512-zr/QcUlUo7GPo6+X1wC98NJADqmy5QTFWWhqeQWiki4XHafJtLl/YMGkmRB2szDD2IYJCCdBTd4ElwhId9T7Xw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", - "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.6.tgz", - "integrity": "sha512-zMo66azZth/0tVd7gmkxOkOjs2rpHyhpcFo565PUP37hSp6hSd9uUKIfTDFMz58BwqgQKhJ9YxtM5XddjXVn+Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.6.tgz", - "integrity": "sha512-9yuM6wr4rIsKa1wlUAbZEazkCrgw2sMPEXCr4Rnwetu7cEW1NydkCWytLuYletbf8vFxdJxFhwEZqMpOx2eZyw==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.18.6", - "@babel/helper-compilation-targets": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.6.tgz", - "integrity": "sha512-PatI6elL5eMzoypFAiYDpYQyMtXTn+iMhuxxQt5mAXD4fEmKorpSI3PHd+i3JXBJN3xyA6MvJv7at23HffFHwA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.6", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz", - "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz", - "integrity": "sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", - "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", - "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-remap-async-to-generator": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", - "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.6.tgz", - "integrity": "sha512-pRqwb91C42vs1ahSAWJkxOxU1RHWDn16XAa6ggQ72wjLlWyYeAcLvTtE0aM8ph3KNydy9CQF2nLYcjq1WysgxQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.8.tgz", - "integrity": "sha512-RySDoXdF6hgHSHuAW4aLGyVQdmvEX/iJtjVre52k0pxRq4hzqze+rAVP++NmNv596brBpYmaiKgTZby7ziBnVg==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-function-name": "^7.18.6", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.6.tgz", - "integrity": "sha512-9repI4BhNrR0KenoR9vm3/cIc1tSBIo+u1WVjKCAynahj25O8zfbiE6JtAtHPGQSs4yZ+bA8mRasRP+qc+2R5A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.6.tgz", - "integrity": "sha512-tgy3u6lRp17ilY8r1kP4i2+HDUwxlVqq3RTc943eAWSzGgpU1qhiKpqZ5CMyHReIYPHdo3Kg8v8edKtDqSVEyQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", - "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.6.tgz", - "integrity": "sha512-NJU26U/208+sxYszf82nmGYqVF9QN8py2HFTblPT9hbawi8+1C5a9JubODLTGFuT0qlkqVinmkwOD13s0sZktg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", - "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", - "dev": true, - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", - "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.6.tgz", - "integrity": "sha512-kJha/Gbs5RjzIu0CxZwf5e3aTTSlhZnHMT8zPWnJMjNpLOUgqevg+PN5oMH68nMCXnfiMo4Bhgxqj59KHTlAnA==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.18.6", - "@babel/helper-function-name": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.6.tgz", - "integrity": "sha512-x3HEw0cJZVDoENXOp20HlypIHfl0zMIhMVZEBVTfmqbObIpsMxMbmU5nOEO8R7LYT+z5RORKPlTI5Hj4OsO9/Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", - "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz", - "integrity": "sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz", - "integrity": "sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.6.tgz", - "integrity": "sha512-UbPYpXxLjTw6w6yXX2BYNxF3p6QY225wcTkfQCy3OMnSlS/C3xGtwUjEzGkldb/sy6PWLiCQ3NbYfjWUTI3t4g==", - "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", - "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz", - "integrity": "sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", - "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", - "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz", - "integrity": "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", - "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz", - "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "regenerator-transform": "^0.15.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", - "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", - "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.6.tgz", - "integrity": "sha512-ayT53rT/ENF8WWexIRg9AiV9h0aIteyWn5ptfZTZQrjk/+f3WdrJGCY4c9wcgl2+MKkKPhzbYp97FTsquZpDCw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", - "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.6.tgz", - "integrity": "sha512-UuqlRrQmT2SWRvahW46cGSany0uTlcj8NYOS5sRGYi8FxPYPoLd5DDmMd32ZXEj2Jq+06uGVQKHxa/hJx2EzKw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.6.tgz", - "integrity": "sha512-7m71iS/QhsPk85xSjFPovHPcH3H9qeyzsujhTc+vcdnsXavoWYJ74zx0lP5RhpC5+iDnVLO+PPMHzC11qels1g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.6.tgz", - "integrity": "sha512-XNRwQUXYMP7VLuy54cr/KS/WeL3AZeORhrmeZ7iewgu+X2eBqmpaLI/hzqr9ZxCeUoq0ASK4GUzSM0BDhZkLFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", - "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.6.tgz", - "integrity": "sha512-WrthhuIIYKrEFAwttYzgRNQ5hULGmwTj+D6l7Zdfsv5M7IWV/OZbUfbeL++Qrzx1nVJwWROIFhCHRYQV4xbPNw==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.18.6", - "@babel/helper-compilation-targets": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.6", - "@babel/plugin-proposal-async-generator-functions": "^7.18.6", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.18.6", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.6", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.18.6", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.18.6", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.6", - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.18.6", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.18.6", - "@babel/plugin-transform-async-to-generator": "^7.18.6", - "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.18.6", - "@babel/plugin-transform-classes": "^7.18.6", - "@babel/plugin-transform-computed-properties": "^7.18.6", - "@babel/plugin-transform-destructuring": "^7.18.6", - "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.6", - "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.18.6", - "@babel/plugin-transform-function-name": "^7.18.6", - "@babel/plugin-transform-literals": "^7.18.6", - "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.18.6", - "@babel/plugin-transform-modules-commonjs": "^7.18.6", - "@babel/plugin-transform-modules-systemjs": "^7.18.6", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.18.6", - "@babel/plugin-transform-new-target": "^7.18.6", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.18.6", - "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.18.6", - "@babel/plugin-transform-reserved-words": "^7.18.6", - "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.18.6", - "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.6", - "@babel/plugin-transform-typeof-symbol": "^7.18.6", - "@babel/plugin-transform-unicode-escapes": "^7.18.6", - "@babel/plugin-transform-unicode-regex": "^7.18.6", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.18.6", - "babel-plugin-polyfill-corejs2": "^0.3.1", - "babel-plugin-polyfill-corejs3": "^0.5.2", - "babel-plugin-polyfill-regenerator": "^0.3.1", - "core-js-compat": "^3.22.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.6.tgz", - "integrity": "sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz", - "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.6", - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.8.tgz", - "integrity": "sha512-UNg/AcSySJYR/+mIcJQDCv00T+AqRO7j/ZEJLzpaYtgM48rMg5MnkJgyNqkzo88+p4tfRvZJCEiwwfG6h4jkRg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.7", - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-function-name": "^7.18.6", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.18.8", - "@babel/types": "^7.18.8", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.8.tgz", - "integrity": "sha512-qwpdsmraq0aJ3osLJRApsc2ouSJCdnMeZwB0DhbtHAtRpZNZCdlbRnHIgcRKzdE1g0iOGg644fzjOBcdOz9cPw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@csstools/selector-specificity": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz", - "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==", - "dev": true, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2", - "postcss-selector-parser": "^6.0.10" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", - "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.3.2", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.16.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.16.0.tgz", - "integrity": "sha512-A1lrQfpNF+McdPOnnFqY3kSN0AFTy485bTi1bkLk4mVPODIUEcSfhHgRqA+QdXPksrSTTztYXx37NFV+GpGk3Q==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@fullhuman/postcss-purgecss": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@fullhuman/postcss-purgecss/-/postcss-purgecss-4.1.3.tgz", - "integrity": "sha512-jqcsyfvq09VOsMXxJMPLRF6Fhg/NNltzWKnC9qtzva+QKTxerCO4esG6je7hbnmkpZtaDyPTwMBj9bzfWorsrw==", - "dev": true, - "dependencies": { - "purgecss": "^4.1.3" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "node_modules/@hyas/doks": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@hyas/doks/-/doks-0.5.0.tgz", - "integrity": "sha512-fOft8l14zzWfvWRtvRHGfWFVC2G8IebibllU48YorTWAIcN3LlYuFM6qhasq/Qw5jC5Id7QohT46JBQmNhRZPg==", - "dev": true, - "hasInstallScript": true, - "engines": { - "node": ">=16.16.0" - } - }, - "node_modules/@hyas/images": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@hyas/images/-/images-0.2.1.tgz", - "integrity": "sha512-OESrxH316UeTbgpDJsRS1fnoZzOIGh2+evhaaXUBrDXhg+5YT1myR7SKf00bzi1fSbQlw5+JyOmNLll/JNHxoQ==", - "dev": true - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@nicolo-ribaudo/chokidar-2": { - "version": "2.1.8-no-fsevents.3", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", - "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==", - "dev": true, - "optional": true - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@popperjs/core": { - "version": "2.11.5", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz", - "integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==", - "dev": true, - "peer": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - } - }, - "node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "dev": true, - "dependencies": { - "defer-to-connect": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@types/cacheable-request": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", - "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", - "dev": true, - "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "*", - "@types/node": "*", - "@types/responselike": "*" - } - }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", - "dev": true - }, - "node_modules/@types/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==", - "dev": true - }, - "node_modules/@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", - "dev": true - }, - "node_modules/@types/node": { - "version": "18.0.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.3.tgz", - "integrity": "sha512-HzNRZtp4eepNitP+BD6k2L6DROIDG4Q0fm4x+dwfsr6LGmROENnok75VGw40628xf+iR24WeMFcHuuBDUAzzsQ==", - "dev": true - }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", - "dev": true - }, - "node_modules/@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, - "node_modules/@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/auto-changelog": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/auto-changelog/-/auto-changelog-2.4.0.tgz", - "integrity": "sha512-vh17hko1c0ItsEcw6m7qPRf3m45u+XK5QyCrrBFViElZ8jnKrPC1roSznrd1fIB/0vR/zawdECCRJtTuqIXaJw==", - "dev": true, - "dependencies": { - "commander": "^7.2.0", - "handlebars": "^4.7.7", - "node-fetch": "^2.6.1", - "parse-github-url": "^1.0.2", - "semver": "^7.3.5" - }, - "bin": { - "auto-changelog": "src/index.js" - }, - "engines": { - "node": ">=8.3" - } - }, - "node_modules/auto-changelog/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/auto-changelog/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/autoprefixer": { - "version": "10.4.7", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.7.tgz", - "integrity": "sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - } - ], - "dependencies": { - "browserslist": "^4.20.3", - "caniuse-lite": "^1.0.30001335", - "fraction.js": "^4.2.0", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "dependencies": { - "object.assign": "^4.1.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", - "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", - "semver": "^6.1.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", - "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.21.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/bl": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", - "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", - "dev": true, - "dependencies": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/bootstrap": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.3.tgz", - "integrity": "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/bootstrap" - }, - "peerDependencies": { - "@popperjs/core": "^2.10.2" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.1.tgz", - "integrity": "sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001359", - "electron-to-chromium": "^1.4.172", - "node-releases": "^2.0.5", - "update-browserslist-db": "^1.0.4" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dev": true, - "dependencies": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "node_modules/buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", - "dev": true - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", - "dev": true - }, - "node_modules/cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "dev": true, - "engines": { - "node": ">=10.6.0" - } - }, - "node_modules/cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", - "dev": true, - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/camelcase-keys/node_modules/quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001363", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001363.tgz", - "integrity": "sha512-HpQhpzTGGPVMnCjIomjt+jvyUu8vNFo3TaDiZ/RcoTrlOq/5+tC8zHdsbgFB6MxmaY+jCpsH09aD80Bb4Ow3Sg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - } - ] - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/clipboard": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz", - "integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==", - "dev": true, - "dependencies": { - "good-listener": "^1.2.2", - "select": "^1.1.2", - "tiny-emitter": "^2.0.0" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/clone-regexp": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-2.2.0.tgz", - "integrity": "sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==", - "dev": true, - "dependencies": { - "is-regexp": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==", - "dev": true, - "dependencies": { - "mimic-response": "^1.0.0" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/colord": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", - "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==", - "dev": true - }, - "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/compress-brotli": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.8.tgz", - "integrity": "sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ==", - "dev": true, - "dependencies": { - "@types/json-buffer": "~3.0.0", - "json-buffer": "~3.0.1" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/core-js-compat": { - "version": "3.23.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.23.3.tgz", - "integrity": "sha512-WSzUs2h2vvmKsacLHNTdpyOC9k43AEhcGoFlVgCY4L7aw98oSBKtPL6vD0/TqZjRWRQYdDSLkzZIni4Crbbiqw==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.0", - "semver": "7.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "node_modules/cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", - "dev": true, - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/css-functions-list": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.1.0.tgz", - "integrity": "sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==", - "dev": true, - "engines": { - "node": ">=12.22" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/data-uri-to-buffer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", - "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==", - "dev": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==", - "dev": true, - "dependencies": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decamelize-keys/node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decompress": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", - "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==", - "dev": true, - "dependencies": { - "decompress-tar": "^4.0.0", - "decompress-tarbz2": "^4.0.0", - "decompress-targz": "^4.0.0", - "decompress-unzip": "^4.0.1", - "graceful-fs": "^4.1.10", - "make-dir": "^1.0.0", - "pify": "^2.3.0", - "strip-dirs": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decompress-response/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decompress-tar": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", - "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", - "dev": true, - "dependencies": { - "file-type": "^5.2.0", - "is-stream": "^1.1.0", - "tar-stream": "^1.5.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-tarbz2": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", - "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", - "dev": true, - "dependencies": { - "decompress-tar": "^4.1.0", - "file-type": "^6.1.0", - "is-stream": "^1.1.0", - "seek-bzip": "^1.0.5", - "unbzip2-stream": "^1.0.9" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-tarbz2/node_modules/file-type": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", - "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-targz": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", - "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", - "dev": true, - "dependencies": { - "decompress-tar": "^4.1.1", - "file-type": "^5.2.0", - "is-stream": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-unzip": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", - "integrity": "sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==", - "dev": true, - "dependencies": { - "file-type": "^3.8.0", - "get-stream": "^2.2.0", - "pify": "^2.3.0", - "yauzl": "^2.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-unzip/node_modules/file-type": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", - "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decompress/node_modules/make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress/node_modules/make-dir/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dev": true, - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/del": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", - "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", - "dev": true, - "dependencies": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/del/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/delegate": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", - "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==", - "dev": true - }, - "node_modules/dependency-graph": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", - "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.4.185", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.185.tgz", - "integrity": "sha512-9kV/isoOGpKkBt04yYNaSWIBn3187Q5VZRtoReq8oz5NY/A4XmU6cAoqgQlDp7kKJCZMRjWZ8nsQyxfpFHvfyw==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/entities": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", - "dev": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/eslint": { - "version": "8.19.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.19.0.tgz", - "integrity": "sha512-SXOPj3x9VKvPe81TjjUJCYlV4oJjQw68Uek+AM0X4p+33dj2HY5bpTZOgnQHcG2eAm1mtCU9uNMnJi7exU/kYw==", - "dev": true, - "dependencies": { - "@eslint/eslintrc": "^1.3.0", - "@humanwhocodes/config-array": "^0.9.2", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.2", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.16.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.16.0.tgz", - "integrity": "sha512-A1lrQfpNF+McdPOnnFqY3kSN0AFTy485bTi1bkLk4mVPODIUEcSfhHgRqA+QdXPksrSTTztYXx37NFV+GpGk3Q==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/espree": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", - "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", - "dev": true, - "dependencies": { - "acorn": "^8.7.1", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/exec-bin": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/exec-bin/-/exec-bin-1.0.0.tgz", - "integrity": "sha512-p8f8h8b6op2nR7U5rsd+zACUMfsfB+jW8HNIBD2njOQ/gF2WvBfQRo/OU6Q6f/b34WLAyePZcwMJyrDdEjB/fw==", - "dev": true, - "bin": { - "exec-bin": "bin/exec-bin.js" - } - }, - "node_modules/execall": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/execall/-/execall-2.0.0.tgz", - "integrity": "sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==", - "dev": true, - "dependencies": { - "clone-regexp": "^2.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fastest-levenshtein": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", - "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "paypal", - "url": "https://paypal.me/jimmywarting" - } - ], - "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - }, - "engines": { - "node": "^12.20 || >= 14.13" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/file-type": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", - "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz", - "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==", - "dev": true - }, - "node_modules/flexsearch": { - "version": "0.7.21", - "resolved": "https://registry.npmjs.org/flexsearch/-/flexsearch-0.7.21.tgz", - "integrity": "sha512-W7cHV7Hrwjid6lWmy0IhsWDFQboWSng25U3VVywpHOTJnnAZNPScog67G+cVpeX9f7yDD21ih0WDrMMT+JoaYg==", - "dev": true - }, - "node_modules/formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "dev": true, - "dependencies": { - "fetch-blob": "^3.1.2" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", - "dev": true, - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://www.patreon.com/infusion" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "node_modules/fs-extra": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", - "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/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 - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", - "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-stdin": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", - "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", - "integrity": "sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==", - "dev": true, - "dependencies": { - "object-assign": "^4.0.1", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-all": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/glob-all/-/glob-all-3.3.0.tgz", - "integrity": "sha512-30gCh9beSb+YSAh0vsoIlBRm4bSlyMa+5nayax1EJhjwYrCohX0aDxcxvWVe3heOrJikbHgRs75Af6kPLcumew==", - "dev": true, - "dependencies": { - "glob": "^7.1.2", - "yargs": "^15.3.1" - }, - "bin": { - "glob-all": "bin/glob-all" - } - }, - "node_modules/glob-all/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/glob-all/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/glob-all/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/glob-all/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/glob-all/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/glob-all/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "node_modules/glob-all/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/glob-all/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dev": true, - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/globjoin": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", - "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", - "dev": true - }, - "node_modules/gonzales-pe": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", - "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "gonzales": "bin/gonzales.js" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/good-listener": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", - "integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==", - "dev": true, - "dependencies": { - "delegate": "^3.1.2" - } - }, - "node_modules/got": { - "version": "11.8.5", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", - "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=10.19.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "node_modules/handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/highlight.js": { - "version": "11.5.1", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.5.1.tgz", - "integrity": "sha512-LKzHqnxr4CrD2YsNoIf/o5nJ09j4yi/GcH5BnYz9UnVpZdS4ucMgvP61TDty5xJcFGRjnH4DpujkS9bHT3hq0Q==", - "dev": true, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/hpagent": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/hpagent/-/hpagent-0.1.2.tgz", - "integrity": "sha512-ePqFXHtSQWAFXYmj+JtOTHr84iNrII4/QRlAAPPE+zqnKy4xJo7Ie1Y4kC7AdB+LxLxSTTzBMASsEcy0q8YyvQ==", - "dev": true - }, - "node_modules/html-tags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz", - "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true - }, - "node_modules/http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "dev": true, - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/hugo-installer": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hugo-installer/-/hugo-installer-3.1.0.tgz", - "integrity": "sha512-E3yc8m1NRZBROOx0tx5WtUfAa9EcBbjbM4YSfy3KLGXQfHXIpbfD3oQ5YIKvih8aKuyyRtKzBZIdiOHfWAvvtg==", - "dev": true, - "dependencies": { - "decompress": "4.2.x", - "del": "6.0.x", - "got": "11.8.x", - "hpagent": "0.1.x", - "object-path": "0.11.x", - "semver": "7.3.x", - "yargs": "16.2.x" - }, - "bin": { - "hugo-installer": "bin/hugo-installer.js" - } - }, - "node_modules/hugo-installer/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-lazy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", - "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/instant.page": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/instant.page/-/instant.page-5.1.1.tgz", - "integrity": "sha512-7FhcXQ+FSUjN8pqBFVDbwJwcXsV6mPLmQosdb1FYbZGaL9TWUPg08yHaK2RdmgnkJ6lPzEp4T3Opx/HcFDUbRQ==", - "dev": true - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/invariant": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", - "integrity": "sha512-FUiAFCOgp7bBzHfa/fK+Uc/vqywvdN9Wg3CiTprLcE630mrhxjDS5MlBkHzeI6+bC/6bq9VX/hxBt05fPAT5WA==", - "dev": true, - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-natural-number": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", - "integrity": "sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==", - "dev": true - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regexp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-2.1.0.tgz", - "integrity": "sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/katex": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.0.tgz", - "integrity": "sha512-wPRB4iUPysfH97wTgG5/tRLYxmKVq6Q4jRAWRVOUxXB1dsiv4cvcNjqabHkrOvJHM1Bpk3WrgmllSO1vIvP24w==", - "dev": true, - "funding": [ - "https://opencollective.com/katex", - "https://github.com/sponsors/katex" - ], - "dependencies": { - "commander": "^8.0.0" - }, - "bin": { - "katex": "cli.js" - } - }, - "node_modules/katex/node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "dev": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/keyv": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.3.2.tgz", - "integrity": "sha512-kn8WmodVBe12lmHpA6W8OY7SNh6wVR+Z+wZESF4iF5FCazaVXGWOtnbnvX0tMQ1bO+/TmOD9LziuYMvrIIs0xw==", - "dev": true, - "dependencies": { - "compress-brotli": "^1.3.8", - "json-buffer": "3.0.1" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/known-css-properties": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.25.0.tgz", - "integrity": "sha512-b0/9J1O9Jcyik1GC6KC42hJ41jKwdO/Mq8Mdo5sYN+IuRTXs2YFHZC3kZSx6ueusqa95x3wLYe/ytKjbAfGixA==", - "dev": true - }, - "node_modules/lazysizes": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/lazysizes/-/lazysizes-5.3.2.tgz", - "integrity": "sha512-22UzWP+Vedi/sMeOr8O7FWimRVtiNJV2HCa+V8+peZOw6QbswN9k58VUhd7i6iK5bw5QkYrF01LJbeJe0PV8jg==", - "dev": true - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lilconfig": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", - "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/linkify-it": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", - "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", - "dev": true, - "dependencies": { - "uc.micro": "^1.0.1" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/make-dir/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/markdown-it": { - "version": "12.3.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", - "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1", - "entities": "~2.1.0", - "linkify-it": "^3.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - }, - "bin": { - "markdown-it": "bin/markdown-it.js" - } - }, - "node_modules/markdownlint": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.25.1.tgz", - "integrity": "sha512-AG7UkLzNa1fxiOv5B+owPsPhtM4D6DoODhsJgiaNg1xowXovrYgOnLqAgOOFQpWOlHFVQUzjMY5ypNNTeov92g==", - "dev": true, - "dependencies": { - "markdown-it": "12.3.2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/markdownlint-cli2": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/markdownlint-cli2/-/markdownlint-cli2-0.4.0.tgz", - "integrity": "sha512-EcwP5tAbyzzL3ACI0L16LqbNctmh8wNX56T+aVvIxWyTAkwbYNx2V7IheRkXS3mE7R/pnaApZ/RSXcXuzRVPjg==", - "dev": true, - "dependencies": { - "globby": "12.1.0", - "markdownlint": "0.25.1", - "markdownlint-cli2-formatter-default": "0.0.3", - "markdownlint-rule-helpers": "0.16.0", - "micromatch": "4.0.4", - "strip-json-comments": "4.0.0", - "yaml": "1.10.2" - }, - "bin": { - "markdownlint-cli2": "markdownlint-cli2.js", - "markdownlint-cli2-config": "markdownlint-cli2-config.js", - "markdownlint-cli2-fix": "markdownlint-cli2-fix.js" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/markdownlint-cli2-formatter-default": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/markdownlint-cli2-formatter-default/-/markdownlint-cli2-formatter-default-0.0.3.tgz", - "integrity": "sha512-QEAJitT5eqX1SNboOD+SO/LNBpu4P4je8JlR02ug2cLQAqmIhh8IJnSK7AcaHBHhNADqdGydnPpQOpsNcEEqCw==", - "dev": true, - "peerDependencies": { - "markdownlint-cli2": ">=0.0.4" - } - }, - "node_modules/markdownlint-cli2/node_modules/array-union": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", - "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/markdownlint-cli2/node_modules/globby": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-12.1.0.tgz", - "integrity": "sha512-YULDaNwsoUZkRy9TWSY/M7Obh0abamTKoKzTfOI3uU+hfpX2FZqOq8LFDxsjYheF1RH7ITdArgbQnsNBFgcdBA==", - "dev": true, - "dependencies": { - "array-union": "^3.0.1", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.7", - "ignore": "^5.1.9", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/markdownlint-cli2/node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/markdownlint-cli2/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/markdownlint-cli2/node_modules/strip-json-comments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-4.0.0.tgz", - "integrity": "sha512-LzWcbfMbAsEDTRmhjWIioe8GcDRl0fa35YMXFoJKDdiD/quGFmjJjdgPjFJJNwCMaLyQqFIDqCdHD2V4HfLgYA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/markdownlint-rule-helpers": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/markdownlint-rule-helpers/-/markdownlint-rule-helpers-0.16.0.tgz", - "integrity": "sha512-oEacRUVeTJ5D5hW1UYd2qExYI0oELdYK72k1TKGvIeYJIbqQWAz476NAc7LNixSySUhcNl++d02DvX0ccDk9/w==", - "dev": true - }, - "node_modules/mathml-tag-names": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", - "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", - "dev": true - }, - "node_modules/meow": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", - "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", - "dev": true, - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize": "^1.2.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true - }, - "node_modules/minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "dev": true, - "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node_modules/netlify-plugin-submit-sitemap": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/netlify-plugin-submit-sitemap/-/netlify-plugin-submit-sitemap-0.4.0.tgz", - "integrity": "sha512-5ntDtSKZRHaCDrDXh4sH4V7lNEEsoi01lsmSUuqJ/ikPHf0XEErjsKba8TsM3iaZRYEHI9bQse3BWgguwuwIIQ==", - "dev": true, - "dependencies": { - "node-fetch": "^3.2.3" - } - }, - "node_modules/netlify-plugin-submit-sitemap/node_modules/node-fetch": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.6.tgz", - "integrity": "sha512-LAy/HZnLADOVkVPubaxHDft29booGglPFDr2Hw0J1AercRh01UiVFm++KMDnJeH9sHgNB4hsXPii7Sgym/sTbw==", - "dev": true, - "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" - } - }, - "node_modules/node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], - "engines": { - "node": ">=10.5.0" - } - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", - "dev": true - }, - "node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-path": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.8.tgz", - "integrity": "sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==", - "dev": true, - "engines": { - "node": ">= 10.12.0" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-github-url": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-github-url/-/parse-github-url-1.0.2.tgz", - "integrity": "sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==", - "dev": true, - "bin": { - "parse-github-url": "cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", - "dev": true, - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss": { - "version": "8.4.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", - "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - } - ], - "dependencies": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-cli": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-10.1.0.tgz", - "integrity": "sha512-Zu7PLORkE9YwNdvOeOVKPmWghprOtjFQU3srMUGbdz3pHJiFh7yZ4geiZFMkjMfB0mtTFR3h8RemR62rPkbOPA==", - "dev": true, - "dependencies": { - "chokidar": "^3.3.0", - "dependency-graph": "^0.11.0", - "fs-extra": "^11.0.0", - "get-stdin": "^9.0.0", - "globby": "^13.0.0", - "picocolors": "^1.0.0", - "postcss-load-config": "^4.0.0", - "postcss-reporter": "^7.0.0", - "pretty-hrtime": "^1.0.3", - "read-cache": "^1.0.0", - "slash": "^5.0.0", - "yargs": "^17.0.0" - }, - "bin": { - "postcss": "index.js" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-cli/node_modules/globby": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz", - "integrity": "sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==", - "dev": true, - "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.11", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/postcss-cli/node_modules/globby/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/postcss-cli/node_modules/slash": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-5.0.0.tgz", - "integrity": "sha512-n6KkmvKS0623igEVj3FF0OZs1gYYJ0o0Hj939yc1fyxl2xt+xYpLnzJB6xBSqOfV9ZFLEWodBBN/heZJahuIJQ==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/postcss-cli/node_modules/yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/postcss-cli/node_modules/yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/postcss-load-config": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", - "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", - "dev": true, - "dependencies": { - "lilconfig": "^2.0.5", - "yaml": "^2.1.1" - }, - "engines": { - "node": ">= 14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-load-config/node_modules/yaml": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.1.1.tgz", - "integrity": "sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw==", - "dev": true, - "engines": { - "node": ">= 14" - } - }, - "node_modules/postcss-media-query-parser": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", - "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", - "dev": true - }, - "node_modules/postcss-reporter": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.0.5.tgz", - "integrity": "sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==", - "dev": true, - "dependencies": { - "picocolors": "^1.0.0", - "thenby": "^1.3.4" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-resolve-nested-selector": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", - "integrity": "sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==", - "dev": true - }, - "node_modules/postcss-safe-parser": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", - "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", - "dev": true, - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.3.3" - } - }, - "node_modules/postcss-scss": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.4.tgz", - "integrity": "sha512-aBBbVyzA8b3hUL0MGrpydxxXKXFZc5Eqva0Q3V9qsBOLEMsjb6w49WfpsoWzpEgcqJGW4t7Rio8WXVU9Gd8vWg==", - "dev": true, - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.3.3" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/purgecss": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-4.1.3.tgz", - "integrity": "sha512-99cKy4s+VZoXnPxaoM23e5ABcP851nC2y2GROkkjS8eJaJtlciGavd7iYAw2V84WeBqggZ12l8ef44G99HmTaw==", - "dev": true, - "dependencies": { - "commander": "^8.0.0", - "glob": "^7.1.7", - "postcss": "^8.3.5", - "postcss-selector-parser": "^6.0.6" - }, - "bin": { - "purgecss": "bin/purgecss.js" - } - }, - "node_modules/purgecss-whitelister": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/purgecss-whitelister/-/purgecss-whitelister-2.4.0.tgz", - "integrity": "sha512-O0jBUDtY9dU9tUT0vA1FvwFdkKDerxzteYaBV49JCbm+QJLFKMlIsf5Kp5cdbLatHQNjJtV8VB8eXtISoZL2Dg==", - "dev": true, - "dependencies": { - "glob-all": "^3.1.0", - "gonzales-pe": "^4.2.4", - "scss-parser": "1.0.3" - } - }, - "node_modules/purgecss/node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "dev": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/read-pkg/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", - "dev": true, - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, - "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "dev": true - }, - "node_modules/regenerator-transform": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", - "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/regexpu-core": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.1.0.tgz", - "integrity": "sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", - "dev": true - }, - "node_modules/regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "dev": true - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/responselike": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", - "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", - "dev": true, - "dependencies": { - "lowercase-keys": "^2.0.0" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/scss-parser": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/scss-parser/-/scss-parser-1.0.3.tgz", - "integrity": "sha512-XQKCfOJERmhn1yoNRUyxv9wgkf4DIv29Jk0m4FiZforeiCmGxrby8K3not7tQ8GK1yvtd9N0OnNimNetJ8V+zQ==", - "dev": true, - "dependencies": { - "invariant": "2.2.2", - "lodash": "^4.17.4" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/seek-bzip": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", - "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", - "dev": true, - "dependencies": { - "commander": "^2.8.1" - }, - "bin": { - "seek-bunzip": "bin/seek-bunzip", - "seek-table": "bin/seek-bzip-table" - } - }, - "node_modules/seek-bzip/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/select": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", - "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==", - "dev": true - }, - "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "dev": true, - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/shx": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz", - "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==", - "dev": true, - "dependencies": { - "minimist": "^1.2.3", - "shelljs": "^0.8.5" - }, - "bin": { - "shx": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/slice-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", - "dev": true - }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", - "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", - "dev": true, - "dependencies": { - "is-natural-number": "^4.0.1" - } - }, - "node_modules/strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, - "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/style-search": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", - "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==", - "dev": true - }, - "node_modules/stylelint": { - "version": "14.9.1", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.9.1.tgz", - "integrity": "sha512-RdAkJdPiLqHawCSnu21nE27MjNXaVd4WcOHA4vK5GtIGjScfhNnaOuWR2wWdfKFAvcWQPOYe311iveiVKSmwsA==", - "dev": true, - "dependencies": { - "@csstools/selector-specificity": "^2.0.1", - "balanced-match": "^2.0.0", - "colord": "^2.9.2", - "cosmiconfig": "^7.0.1", - "css-functions-list": "^3.1.0", - "debug": "^4.3.4", - "execall": "^2.0.0", - "fast-glob": "^3.2.11", - "fastest-levenshtein": "^1.0.12", - "file-entry-cache": "^6.0.1", - "get-stdin": "^8.0.0", - "global-modules": "^2.0.0", - "globby": "^11.1.0", - "globjoin": "^0.1.4", - "html-tags": "^3.2.0", - "ignore": "^5.2.0", - "import-lazy": "^4.0.0", - "imurmurhash": "^0.1.4", - "is-plain-object": "^5.0.0", - "known-css-properties": "^0.25.0", - "mathml-tag-names": "^2.1.3", - "meow": "^9.0.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.14", - "postcss-media-query-parser": "^0.2.3", - "postcss-resolve-nested-selector": "^0.1.1", - "postcss-safe-parser": "^6.0.0", - "postcss-selector-parser": "^6.0.10", - "postcss-value-parser": "^4.2.0", - "resolve-from": "^5.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "style-search": "^0.1.0", - "supports-hyperlinks": "^2.2.0", - "svg-tags": "^1.0.0", - "table": "^6.8.0", - "v8-compile-cache": "^2.3.0", - "write-file-atomic": "^4.0.1" - }, - "bin": { - "stylelint": "bin/stylelint.js" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/stylelint" - } - }, - "node_modules/stylelint-config-recommended": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-7.0.0.tgz", - "integrity": "sha512-yGn84Bf/q41J4luis1AZ95gj0EQwRX8lWmGmBwkwBNSkpGSpl66XcPTulxGa/Z91aPoNGuIGBmFkcM1MejMo9Q==", - "dev": true, - "peerDependencies": { - "stylelint": "^14.4.0" - } - }, - "node_modules/stylelint-config-recommended-scss": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-6.0.0.tgz", - "integrity": "sha512-6QOe2/OzXV2AP5FE12A7+qtKdZik7Saf42SMMl84ksVBBPpTdrV+9HaCbPYiRMiwELY9hXCVdH4wlJ+YJb5eig==", - "dev": true, - "dependencies": { - "postcss-scss": "^4.0.2", - "stylelint-config-recommended": "^7.0.0", - "stylelint-scss": "^4.0.0" - }, - "peerDependencies": { - "stylelint": "^14.4.0" - } - }, - "node_modules/stylelint-config-standard": { - "version": "25.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-25.0.0.tgz", - "integrity": "sha512-21HnP3VSpaT1wFjFvv9VjvOGDtAviv47uTp3uFmzcN+3Lt+RYRv6oAplLaV51Kf792JSxJ6svCJh/G18E9VnCA==", - "dev": true, - "dependencies": { - "stylelint-config-recommended": "^7.0.0" - }, - "peerDependencies": { - "stylelint": "^14.4.0" - } - }, - "node_modules/stylelint-config-standard-scss": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-4.0.0.tgz", - "integrity": "sha512-xizu8PTEyB6zYXBiVg6VtvUYn9m57x+6ZtaOdaxsfpbe5eagLPGNlbYnKfm/CfN69ArUpnwR6LjgsTHzlGbtXQ==", - "dev": true, - "dependencies": { - "stylelint-config-recommended-scss": "^6.0.0", - "stylelint-config-standard": "^25.0.0" - }, - "peerDependencies": { - "stylelint": "^14.4.0" - } - }, - "node_modules/stylelint-scss": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.3.0.tgz", - "integrity": "sha512-GvSaKCA3tipzZHoz+nNO7S02ZqOsdBzMiCx9poSmLlb3tdJlGddEX/8QzCOD8O7GQan9bjsvLMsO5xiw6IhhIQ==", - "dev": true, - "dependencies": { - "lodash": "^4.17.21", - "postcss-media-query-parser": "^0.2.3", - "postcss-resolve-nested-selector": "^0.1.1", - "postcss-selector-parser": "^6.0.6", - "postcss-value-parser": "^4.1.0" - }, - "peerDependencies": { - "stylelint": "^14.5.1" - } - }, - "node_modules/stylelint/node_modules/balanced-match": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", - "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", - "dev": true - }, - "node_modules/stylelint/node_modules/get-stdin": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", - "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/stylelint/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/svg-tags": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", - "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", - "dev": true - }, - "node_modules/table": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", - "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", - "dev": true, - "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/tar-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", - "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", - "dev": true, - "dependencies": { - "bl": "^1.0.0", - "buffer-alloc": "^1.2.0", - "end-of-stream": "^1.0.0", - "fs-constants": "^1.0.0", - "readable-stream": "^2.3.0", - "to-buffer": "^1.1.1", - "xtend": "^4.0.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/thenby": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", - "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==", - "dev": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "node_modules/tiny-emitter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", - "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==", - "dev": true - }, - "node_modules/to-buffer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", - "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", - "dev": true - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "node_modules/trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", - "dev": true - }, - "node_modules/uglify-js": { - "version": "3.16.2", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.16.2.tgz", - "integrity": "sha512-AaQNokTNgExWrkEYA24BTNMSjyqEXPSfhqoS0AxmHkCJ4U+Dyy5AvbGV/sqxuxficEfGGoX3zWw9R7QpLFfEsg==", - "dev": true, - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "dev": true, - "dependencies": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz", - "integrity": "sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist-lint": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/web-streams-polyfill": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", - "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", - "dev": true - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/write-file-atomic": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", - "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dev": true, - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - } - }, - "dependencies": { - "@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@babel/cli": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.18.6.tgz", - "integrity": "sha512-jXNHoYCbxZ8rKy+2lyy0VjcaGxS4NPbN0qc95DjIiGZQL/mTNx3o2/yI0TG+X0VrrTuwmO7zH52T9NcNdbF9Uw==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.8", - "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", - "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" - } - }, - "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, - "requires": { - "@babel/highlight": "^7.18.6" - } - }, - "@babel/compat-data": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", - "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==", - "dev": true - }, - "@babel/core": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.6.tgz", - "integrity": "sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.6", - "@babel/helper-compilation-targets": "^7.18.6", - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helpers": "^7.18.6", - "@babel/parser": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - } - }, - "@babel/generator": { - "version": "7.18.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.7.tgz", - "integrity": "sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A==", - "dev": true, - "requires": { - "@babel/types": "^7.18.7", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.6.tgz", - "integrity": "sha512-KT10c1oWEpmrIRYnthbzHgoOf6B+Xd6a5yhdbNtdhtG7aO1or5HViuf1TQR36xY/QprXA5nvxO6nAjhJ4y38jw==", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.18.6", - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.6.tgz", - "integrity": "sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.18.6", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.20.2", - "semver": "^6.3.0" - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.6.tgz", - "integrity": "sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-function-name": "^7.18.6", - "@babel/helper-member-expression-to-functions": "^7.18.6", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz", - "integrity": "sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.1.0" - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - } - }, - "@babel/helper-environment-visitor": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz", - "integrity": "sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==", - "dev": true - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", - "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-function-name": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz", - "integrity": "sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==", - "dev": true, - "requires": { - "@babel/template": "^7.18.6", - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.6.tgz", - "integrity": "sha512-CeHxqwwipekotzPDUuJOfIMtcIHBuc7WAzLmTYWctVigqS5RktNMQ5bEwQSuGewzYnCtTWa3BARXeiLxDTv+Ng==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-module-transforms": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.8.tgz", - "integrity": "sha512-che3jvZwIcZxrwh63VfnFTUzcAM9v/lznYkkRxIBGMPt1SudOKHAEec0SIRCfiuIzTcF7VGj/CaTT6gY4eWxvA==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.8", - "@babel/types": "^7.18.8" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz", - "integrity": "sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==", - "dev": true - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.6.tgz", - "integrity": "sha512-z5wbmV55TveUPZlCLZvxWHtrjuJd+8inFhk7DG0WW87/oJuGDcjDiu7HIvGcpf5464L6xKCg3vNkmlVVz9hwyQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-wrap-function": "^7.18.6", - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-replace-supers": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.6.tgz", - "integrity": "sha512-fTf7zoXnUGl9gF25fXCWE26t7Tvtyn6H4hkLSYhATwJvw2uYxd3aoXplMSe0g9XbwK7bmxNes7+FGO0rB/xC0g==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-member-expression-to-functions": "^7.18.6", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-simple-access": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.6.tgz", - "integrity": "sha512-4KoLhwGS9vGethZpAhYnMejWkX64wsnHPDwvOsKWU6Fg4+AlK2Jz3TyjQLMEPvz+1zemi/WBdkYxCD0bAfIkiw==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true - }, - "@babel/helper-wrap-function": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.6.tgz", - "integrity": "sha512-I5/LZfozwMNbwr/b1vhhuYD+J/mU+gfGAj5td7l5Rv9WYmH6i3Om69WGKNmlIpsVW/mF6O5bvTKbvDQZVgjqOw==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6" - } - }, - "@babel/helpers": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.6.tgz", - "integrity": "sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ==", - "dev": true, - "requires": { - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6" - } - }, - "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.8.tgz", - "integrity": "sha512-RSKRfYX20dyH+elbJK2uqAkVyucL+xXzhqlMD5/ZXx+dAAwpyB7HsvnHe/ZUGOF+xLr5Wx9/JoXVTj6BQE2/oA==", - "dev": true - }, - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", - "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.6.tgz", - "integrity": "sha512-Udgu8ZRgrBrttVz6A0EVL0SJ1z+RLbIeqsu632SA1hf0awEppD6TvdznoH+orIF8wtFFAV/Enmw9Y+9oV8TQcw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.6" - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.6.tgz", - "integrity": "sha512-WAz4R9bvozx4qwf74M+sfqPMKfSqwM0phxPTR6iJIi8robgzXwkEgmeJG1gEKhm6sDqT/U9aV3lfcqybIpev8w==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-remap-async-to-generator": "^7.18.6", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", - "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.6.tgz", - "integrity": "sha512-zr/QcUlUo7GPo6+X1wC98NJADqmy5QTFWWhqeQWiki4XHafJtLl/YMGkmRB2szDD2IYJCCdBTd4ElwhId9T7Xw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", - "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.6.tgz", - "integrity": "sha512-zMo66azZth/0tVd7gmkxOkOjs2rpHyhpcFo565PUP37hSp6hSd9uUKIfTDFMz58BwqgQKhJ9YxtM5XddjXVn+Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.6.tgz", - "integrity": "sha512-9yuM6wr4rIsKa1wlUAbZEazkCrgw2sMPEXCr4Rnwetu7cEW1NydkCWytLuYletbf8vFxdJxFhwEZqMpOx2eZyw==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.18.6", - "@babel/helper-compilation-targets": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.18.6" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.6.tgz", - "integrity": "sha512-PatI6elL5eMzoypFAiYDpYQyMtXTn+iMhuxxQt5mAXD4fEmKorpSI3PHd+i3JXBJN3xyA6MvJv7at23HffFHwA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.6", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-proposal-private-property-in-object": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz", - "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-import-assertions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz", - "integrity": "sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", - "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", - "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-remap-async-to-generator": "^7.18.6" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", - "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.6.tgz", - "integrity": "sha512-pRqwb91C42vs1ahSAWJkxOxU1RHWDn16XAa6ggQ72wjLlWyYeAcLvTtE0aM8ph3KNydy9CQF2nLYcjq1WysgxQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.8.tgz", - "integrity": "sha512-RySDoXdF6hgHSHuAW4aLGyVQdmvEX/iJtjVre52k0pxRq4hzqze+rAVP++NmNv596brBpYmaiKgTZby7ziBnVg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-function-name": "^7.18.6", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.6.tgz", - "integrity": "sha512-9repI4BhNrR0KenoR9vm3/cIc1tSBIo+u1WVjKCAynahj25O8zfbiE6JtAtHPGQSs4yZ+bA8mRasRP+qc+2R5A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.6.tgz", - "integrity": "sha512-tgy3u6lRp17ilY8r1kP4i2+HDUwxlVqq3RTc943eAWSzGgpU1qhiKpqZ5CMyHReIYPHdo3Kg8v8edKtDqSVEyQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", - "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.6.tgz", - "integrity": "sha512-NJU26U/208+sxYszf82nmGYqVF9QN8py2HFTblPT9hbawi8+1C5a9JubODLTGFuT0qlkqVinmkwOD13s0sZktg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", - "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", - "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.6.tgz", - "integrity": "sha512-kJha/Gbs5RjzIu0CxZwf5e3aTTSlhZnHMT8zPWnJMjNpLOUgqevg+PN5oMH68nMCXnfiMo4Bhgxqj59KHTlAnA==", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.18.6", - "@babel/helper-function-name": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.6.tgz", - "integrity": "sha512-x3HEw0cJZVDoENXOp20HlypIHfl0zMIhMVZEBVTfmqbObIpsMxMbmU5nOEO8R7LYT+z5RORKPlTI5Hj4OsO9/Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", - "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz", - "integrity": "sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz", - "integrity": "sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.6.tgz", - "integrity": "sha512-UbPYpXxLjTw6w6yXX2BYNxF3p6QY225wcTkfQCy3OMnSlS/C3xGtwUjEzGkldb/sy6PWLiCQ3NbYfjWUTI3t4g==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", - "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz", - "integrity": "sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", - "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", - "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz", - "integrity": "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", - "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz", - "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "regenerator-transform": "^0.15.0" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", - "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", - "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.6.tgz", - "integrity": "sha512-ayT53rT/ENF8WWexIRg9AiV9h0aIteyWn5ptfZTZQrjk/+f3WdrJGCY4c9wcgl2+MKkKPhzbYp97FTsquZpDCw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.6" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", - "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.6.tgz", - "integrity": "sha512-UuqlRrQmT2SWRvahW46cGSany0uTlcj8NYOS5sRGYi8FxPYPoLd5DDmMd32ZXEj2Jq+06uGVQKHxa/hJx2EzKw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.6.tgz", - "integrity": "sha512-7m71iS/QhsPk85xSjFPovHPcH3H9qeyzsujhTc+vcdnsXavoWYJ74zx0lP5RhpC5+iDnVLO+PPMHzC11qels1g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.6.tgz", - "integrity": "sha512-XNRwQUXYMP7VLuy54cr/KS/WeL3AZeORhrmeZ7iewgu+X2eBqmpaLI/hzqr9ZxCeUoq0ASK4GUzSM0BDhZkLFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", - "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/preset-env": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.6.tgz", - "integrity": "sha512-WrthhuIIYKrEFAwttYzgRNQ5hULGmwTj+D6l7Zdfsv5M7IWV/OZbUfbeL++Qrzx1nVJwWROIFhCHRYQV4xbPNw==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.18.6", - "@babel/helper-compilation-targets": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.6", - "@babel/plugin-proposal-async-generator-functions": "^7.18.6", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.18.6", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.6", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.18.6", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.18.6", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.6", - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.18.6", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.18.6", - "@babel/plugin-transform-async-to-generator": "^7.18.6", - "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.18.6", - "@babel/plugin-transform-classes": "^7.18.6", - "@babel/plugin-transform-computed-properties": "^7.18.6", - "@babel/plugin-transform-destructuring": "^7.18.6", - "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.6", - "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.18.6", - "@babel/plugin-transform-function-name": "^7.18.6", - "@babel/plugin-transform-literals": "^7.18.6", - "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.18.6", - "@babel/plugin-transform-modules-commonjs": "^7.18.6", - "@babel/plugin-transform-modules-systemjs": "^7.18.6", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.18.6", - "@babel/plugin-transform-new-target": "^7.18.6", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.18.6", - "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.18.6", - "@babel/plugin-transform-reserved-words": "^7.18.6", - "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.18.6", - "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.6", - "@babel/plugin-transform-typeof-symbol": "^7.18.6", - "@babel/plugin-transform-unicode-escapes": "^7.18.6", - "@babel/plugin-transform-unicode-regex": "^7.18.6", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.18.6", - "babel-plugin-polyfill-corejs2": "^0.3.1", - "babel-plugin-polyfill-corejs3": "^0.5.2", - "babel-plugin-polyfill-regenerator": "^0.3.1", - "core-js-compat": "^3.22.1", - "semver": "^6.3.0" - } - }, - "@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/runtime": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.6.tgz", - "integrity": "sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/template": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz", - "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.6", - "@babel/types": "^7.18.6" - } - }, - "@babel/traverse": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.8.tgz", - "integrity": "sha512-UNg/AcSySJYR/+mIcJQDCv00T+AqRO7j/ZEJLzpaYtgM48rMg5MnkJgyNqkzo88+p4tfRvZJCEiwwfG6h4jkRg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.7", - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-function-name": "^7.18.6", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.18.8", - "@babel/types": "^7.18.8", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.8.tgz", - "integrity": "sha512-qwpdsmraq0aJ3osLJRApsc2ouSJCdnMeZwB0DhbtHAtRpZNZCdlbRnHIgcRKzdE1g0iOGg644fzjOBcdOz9cPw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "to-fast-properties": "^2.0.0" - } - }, - "@csstools/selector-specificity": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz", - "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==", - "dev": true, - "requires": {} - }, - "@eslint/eslintrc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", - "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.3.2", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "globals": { - "version": "13.16.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.16.0.tgz", - "integrity": "sha512-A1lrQfpNF+McdPOnnFqY3kSN0AFTy485bTi1bkLk4mVPODIUEcSfhHgRqA+QdXPksrSTTztYXx37NFV+GpGk3Q==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - } - } - }, - "@fullhuman/postcss-purgecss": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@fullhuman/postcss-purgecss/-/postcss-purgecss-4.1.3.tgz", - "integrity": "sha512-jqcsyfvq09VOsMXxJMPLRF6Fhg/NNltzWKnC9qtzva+QKTxerCO4esG6je7hbnmkpZtaDyPTwMBj9bzfWorsrw==", - "dev": true, - "requires": { - "purgecss": "^4.1.3" - } - }, - "@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - } - }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "@hyas/doks": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@hyas/doks/-/doks-0.5.0.tgz", - "integrity": "sha512-fOft8l14zzWfvWRtvRHGfWFVC2G8IebibllU48YorTWAIcN3LlYuFM6qhasq/Qw5jC5Id7QohT46JBQmNhRZPg==", - "dev": true - }, - "@hyas/images": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@hyas/images/-/images-0.2.1.tgz", - "integrity": "sha512-OESrxH316UeTbgpDJsRS1fnoZzOIGh2+evhaaXUBrDXhg+5YT1myR7SKf00bzi1fSbQlw5+JyOmNLll/JNHxoQ==", - "dev": true - }, - "@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@nicolo-ribaudo/chokidar-2": { - "version": "2.1.8-no-fsevents.3", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", - "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==", - "dev": true, - "optional": true - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@popperjs/core": { - "version": "2.11.5", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz", - "integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==", - "dev": true, - "peer": true - }, - "@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "dev": true - }, - "@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "dev": true, - "requires": { - "defer-to-connect": "^2.0.0" - } - }, - "@types/cacheable-request": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", - "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", - "dev": true, - "requires": { - "@types/http-cache-semantics": "*", - "@types/keyv": "*", - "@types/node": "*", - "@types/responselike": "*" - } - }, - "@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", - "dev": true - }, - "@types/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==", - "dev": true - }, - "@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", - "dev": true - }, - "@types/node": { - "version": "18.0.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.3.tgz", - "integrity": "sha512-HzNRZtp4eepNitP+BD6k2L6DROIDG4Q0fm4x+dwfsr6LGmROENnok75VGw40628xf+iR24WeMFcHuuBDUAzzsQ==", - "dev": true - }, - "@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", - "dev": true - }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, - "@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", - "dev": true - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true - }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true - }, - "auto-changelog": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/auto-changelog/-/auto-changelog-2.4.0.tgz", - "integrity": "sha512-vh17hko1c0ItsEcw6m7qPRf3m45u+XK5QyCrrBFViElZ8jnKrPC1roSznrd1fIB/0vR/zawdECCRJtTuqIXaJw==", - "dev": true, - "requires": { - "commander": "^7.2.0", - "handlebars": "^4.7.7", - "node-fetch": "^2.6.1", - "parse-github-url": "^1.0.2", - "semver": "^7.3.5" - }, - "dependencies": { - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true - }, - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "autoprefixer": { - "version": "10.4.7", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.7.tgz", - "integrity": "sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==", - "dev": true, - "requires": { - "browserslist": "^4.20.3", - "caniuse-lite": "^1.0.30001335", - "fraction.js": "^4.2.0", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "requires": { - "object.assign": "^4.1.0" - } - }, - "babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", - "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", - "semver": "^6.1.1" - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", - "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.21.0" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "bl": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", - "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", - "dev": true, - "requires": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "bootstrap": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.3.tgz", - "integrity": "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==", - "dev": true, - "requires": {} - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browserslist": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.1.tgz", - "integrity": "sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001359", - "electron-to-chromium": "^1.4.172", - "node-releases": "^2.0.5", - "update-browserslist-db": "^1.0.4" - } - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dev": true, - "requires": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", - "dev": true - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true - }, - "buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", - "dev": true - }, - "cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "dev": true - }, - "cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", - "dev": true, - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - } - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "dependencies": { - "quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true - } - } - }, - "caniuse-lite": { - "version": "1.0.30001363", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001363.tgz", - "integrity": "sha512-HpQhpzTGGPVMnCjIomjt+jvyUu8vNFo3TaDiZ/RcoTrlOq/5+tC8zHdsbgFB6MxmaY+jCpsH09aD80Bb4Ow3Sg==", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, - "clipboard": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz", - "integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==", - "dev": true, - "requires": { - "good-listener": "^1.2.2", - "select": "^1.1.2", - "tiny-emitter": "^2.0.0" - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "clone-regexp": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-2.2.0.tgz", - "integrity": "sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==", - "dev": true, - "requires": { - "is-regexp": "^2.0.0" - } - }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==", - "dev": true, - "requires": { - "mimic-response": "^1.0.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "colord": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", - "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==", - "dev": true - }, - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true - }, - "compress-brotli": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.8.tgz", - "integrity": "sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ==", - "dev": true, - "requires": { - "@types/json-buffer": "~3.0.0", - "json-buffer": "~3.0.1" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "core-js-compat": { - "version": "3.23.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.23.3.tgz", - "integrity": "sha512-WSzUs2h2vvmKsacLHNTdpyOC9k43AEhcGoFlVgCY4L7aw98oSBKtPL6vD0/TqZjRWRQYdDSLkzZIni4Crbbiqw==", - "dev": true, - "requires": { - "browserslist": "^4.21.0", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } - } - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", - "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "css-functions-list": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.1.0.tgz", - "integrity": "sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==", - "dev": true - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true - }, - "data-uri-to-buffer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", - "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==", - "dev": true - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true - }, - "decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==", - "dev": true, - "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", - "dev": true - } - } - }, - "decompress": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", - "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==", - "dev": true, - "requires": { - "decompress-tar": "^4.0.0", - "decompress-tarbz2": "^4.0.0", - "decompress-targz": "^4.0.0", - "decompress-unzip": "^4.0.1", - "graceful-fs": "^4.1.10", - "make-dir": "^1.0.0", - "pify": "^2.3.0", - "strip-dirs": "^2.0.0" - }, - "dependencies": { - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "requires": { - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true - } - } - } - } - }, - "decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "requires": { - "mimic-response": "^3.1.0" - }, - "dependencies": { - "mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true - } - } - }, - "decompress-tar": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", - "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", - "dev": true, - "requires": { - "file-type": "^5.2.0", - "is-stream": "^1.1.0", - "tar-stream": "^1.5.2" - } - }, - "decompress-tarbz2": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", - "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", - "dev": true, - "requires": { - "decompress-tar": "^4.1.0", - "file-type": "^6.1.0", - "is-stream": "^1.1.0", - "seek-bzip": "^1.0.5", - "unbzip2-stream": "^1.0.9" - }, - "dependencies": { - "file-type": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", - "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==", - "dev": true - } - } - }, - "decompress-targz": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", - "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", - "dev": true, - "requires": { - "decompress-tar": "^4.1.1", - "file-type": "^5.2.0", - "is-stream": "^1.1.0" - } - }, - "decompress-unzip": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", - "integrity": "sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==", - "dev": true, - "requires": { - "file-type": "^3.8.0", - "get-stream": "^2.2.0", - "pify": "^2.3.0", - "yauzl": "^2.4.2" - }, - "dependencies": { - "file-type": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", - "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==", - "dev": true - } - } - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "dev": true - }, - "define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dev": true, - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "del": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", - "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", - "dev": true, - "requires": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - }, - "dependencies": { - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - } - } - }, - "delegate": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", - "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==", - "dev": true - }, - "dependency-graph": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", - "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", - "dev": true - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "electron-to-chromium": { - "version": "1.4.185", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.185.tgz", - "integrity": "sha512-9kV/isoOGpKkBt04yYNaSWIBn3187Q5VZRtoReq8oz5NY/A4XmU6cAoqgQlDp7kKJCZMRjWZ8nsQyxfpFHvfyw==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "entities": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", - "dev": true - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "eslint": { - "version": "8.19.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.19.0.tgz", - "integrity": "sha512-SXOPj3x9VKvPe81TjjUJCYlV4oJjQw68Uek+AM0X4p+33dj2HY5bpTZOgnQHcG2eAm1mtCU9uNMnJi7exU/kYw==", - "dev": true, - "requires": { - "@eslint/eslintrc": "^1.3.0", - "@humanwhocodes/config-array": "^0.9.2", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.2", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "globals": { - "version": "13.16.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.16.0.tgz", - "integrity": "sha512-A1lrQfpNF+McdPOnnFqY3kSN0AFTy485bTi1bkLk4mVPODIUEcSfhHgRqA+QdXPksrSTTztYXx37NFV+GpGk3Q==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - } - } - }, - "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } - } - }, - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true - }, - "espree": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", - "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", - "dev": true, - "requires": { - "acorn": "^8.7.1", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - } - }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "exec-bin": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/exec-bin/-/exec-bin-1.0.0.tgz", - "integrity": "sha512-p8f8h8b6op2nR7U5rsd+zACUMfsfB+jW8HNIBD2njOQ/gF2WvBfQRo/OU6Q6f/b34WLAyePZcwMJyrDdEjB/fw==", - "dev": true - }, - "execall": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/execall/-/execall-2.0.0.tgz", - "integrity": "sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==", - "dev": true, - "requires": { - "clone-regexp": "^2.1.0" - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "fastest-levenshtein": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", - "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", - "dev": true - }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "requires": { - "pend": "~1.2.0" - } - }, - "fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "dev": true, - "requires": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - } - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "file-type": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", - "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz", - "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==", - "dev": true - }, - "flexsearch": { - "version": "0.7.21", - "resolved": "https://registry.npmjs.org/flexsearch/-/flexsearch-0.7.21.tgz", - "integrity": "sha512-W7cHV7Hrwjid6lWmy0IhsWDFQboWSng25U3VVywpHOTJnnAZNPScog67G+cVpeX9f7yDD21ih0WDrMMT+JoaYg==", - "dev": true - }, - "formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "dev": true, - "requires": { - "fetch-blob": "^3.1.2" - } - }, - "fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", - "dev": true - }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "fs-extra": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", - "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "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": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-intrinsic": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", - "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - } - }, - "get-stdin": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", - "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", - "dev": true - }, - "get-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", - "integrity": "sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==", - "dev": true, - "requires": { - "object-assign": "^4.0.1", - "pinkie-promise": "^2.0.0" - } - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-all": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/glob-all/-/glob-all-3.3.0.tgz", - "integrity": "sha512-30gCh9beSb+YSAh0vsoIlBRm4bSlyMa+5nayax1EJhjwYrCohX0aDxcxvWVe3heOrJikbHgRs75Af6kPLcumew==", - "dev": true, - "requires": { - "glob": "^7.1.2", - "yargs": "^15.3.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dev": true, - "requires": { - "global-prefix": "^3.0.0" - } - }, - "global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "dependencies": { - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "dependencies": { - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - } - } - }, - "globjoin": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", - "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", - "dev": true - }, - "gonzales-pe": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", - "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "good-listener": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", - "integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==", - "dev": true, - "requires": { - "delegate": "^3.1.2" - } - }, - "got": { - "version": "11.8.5", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", - "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", - "dev": true, - "requires": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - } - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "dev": true, - "requires": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4", - "wordwrap": "^1.0.0" - } - }, - "hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true - }, - "highlight.js": { - "version": "11.5.1", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.5.1.tgz", - "integrity": "sha512-LKzHqnxr4CrD2YsNoIf/o5nJ09j4yi/GcH5BnYz9UnVpZdS4ucMgvP61TDty5xJcFGRjnH4DpujkS9bHT3hq0Q==", - "dev": true - }, - "hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "hpagent": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/hpagent/-/hpagent-0.1.2.tgz", - "integrity": "sha512-ePqFXHtSQWAFXYmj+JtOTHr84iNrII4/QRlAAPPE+zqnKy4xJo7Ie1Y4kC7AdB+LxLxSTTzBMASsEcy0q8YyvQ==", - "dev": true - }, - "html-tags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz", - "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==", - "dev": true - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true - }, - "http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "dev": true, - "requires": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - } - }, - "hugo-installer": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hugo-installer/-/hugo-installer-3.1.0.tgz", - "integrity": "sha512-E3yc8m1NRZBROOx0tx5WtUfAa9EcBbjbM4YSfy3KLGXQfHXIpbfD3oQ5YIKvih8aKuyyRtKzBZIdiOHfWAvvtg==", - "dev": true, - "requires": { - "decompress": "4.2.x", - "del": "6.0.x", - "got": "11.8.x", - "hpagent": "0.1.x", - "object-path": "0.11.x", - "semver": "7.3.x", - "yargs": "16.2.x" - }, - "dependencies": { - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "import-lazy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", - "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", - "dev": true - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "instant.page": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/instant.page/-/instant.page-5.1.1.tgz", - "integrity": "sha512-7FhcXQ+FSUjN8pqBFVDbwJwcXsV6mPLmQosdb1FYbZGaL9TWUPg08yHaK2RdmgnkJ6lPzEp4T3Opx/HcFDUbRQ==", - "dev": true - }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true - }, - "invariant": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", - "integrity": "sha512-FUiAFCOgp7bBzHfa/fK+Uc/vqywvdN9Wg3CiTprLcE630mrhxjDS5MlBkHzeI6+bC/6bq9VX/hxBt05fPAT5WA==", - "dev": true, - "requires": { - "loose-envify": "^1.0.0" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-natural-number": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", - "integrity": "sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true - }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "dev": true - }, - "is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true - }, - "is-regexp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-2.1.0.tgz", - "integrity": "sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "dev": true - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "katex": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.0.tgz", - "integrity": "sha512-wPRB4iUPysfH97wTgG5/tRLYxmKVq6Q4jRAWRVOUxXB1dsiv4cvcNjqabHkrOvJHM1Bpk3WrgmllSO1vIvP24w==", - "dev": true, - "requires": { - "commander": "^8.0.0" - }, - "dependencies": { - "commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "dev": true - } - } - }, - "keyv": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.3.2.tgz", - "integrity": "sha512-kn8WmodVBe12lmHpA6W8OY7SNh6wVR+Z+wZESF4iF5FCazaVXGWOtnbnvX0tMQ1bO+/TmOD9LziuYMvrIIs0xw==", - "dev": true, - "requires": { - "compress-brotli": "^1.3.8", - "json-buffer": "3.0.1" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "known-css-properties": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.25.0.tgz", - "integrity": "sha512-b0/9J1O9Jcyik1GC6KC42hJ41jKwdO/Mq8Mdo5sYN+IuRTXs2YFHZC3kZSx6ueusqa95x3wLYe/ytKjbAfGixA==", - "dev": true - }, - "lazysizes": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/lazysizes/-/lazysizes-5.3.2.tgz", - "integrity": "sha512-22UzWP+Vedi/sMeOr8O7FWimRVtiNJV2HCa+V8+peZOw6QbswN9k58VUhd7i6iK5bw5QkYrF01LJbeJe0PV8jg==", - "dev": true - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "lilconfig": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", - "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", - "dev": true - }, - "lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "linkify-it": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", - "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", - "dev": true, - "requires": { - "uc.micro": "^1.0.1" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true - }, - "markdown-it": { - "version": "12.3.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", - "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", - "dev": true, - "requires": { - "argparse": "^2.0.1", - "entities": "~2.1.0", - "linkify-it": "^3.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - } - }, - "markdownlint": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.25.1.tgz", - "integrity": "sha512-AG7UkLzNa1fxiOv5B+owPsPhtM4D6DoODhsJgiaNg1xowXovrYgOnLqAgOOFQpWOlHFVQUzjMY5ypNNTeov92g==", - "dev": true, - "requires": { - "markdown-it": "12.3.2" - } - }, - "markdownlint-cli2": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/markdownlint-cli2/-/markdownlint-cli2-0.4.0.tgz", - "integrity": "sha512-EcwP5tAbyzzL3ACI0L16LqbNctmh8wNX56T+aVvIxWyTAkwbYNx2V7IheRkXS3mE7R/pnaApZ/RSXcXuzRVPjg==", - "dev": true, - "requires": { - "globby": "12.1.0", - "markdownlint": "0.25.1", - "markdownlint-cli2-formatter-default": "0.0.3", - "markdownlint-rule-helpers": "0.16.0", - "micromatch": "4.0.4", - "strip-json-comments": "4.0.0", - "yaml": "1.10.2" - }, - "dependencies": { - "array-union": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", - "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", - "dev": true - }, - "globby": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-12.1.0.tgz", - "integrity": "sha512-YULDaNwsoUZkRy9TWSY/M7Obh0abamTKoKzTfOI3uU+hfpX2FZqOq8LFDxsjYheF1RH7ITdArgbQnsNBFgcdBA==", - "dev": true, - "requires": { - "array-union": "^3.0.1", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.7", - "ignore": "^5.1.9", - "merge2": "^1.4.1", - "slash": "^4.0.0" - } - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true - }, - "strip-json-comments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-4.0.0.tgz", - "integrity": "sha512-LzWcbfMbAsEDTRmhjWIioe8GcDRl0fa35YMXFoJKDdiD/quGFmjJjdgPjFJJNwCMaLyQqFIDqCdHD2V4HfLgYA==", - "dev": true - } - } - }, - "markdownlint-cli2-formatter-default": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/markdownlint-cli2-formatter-default/-/markdownlint-cli2-formatter-default-0.0.3.tgz", - "integrity": "sha512-QEAJitT5eqX1SNboOD+SO/LNBpu4P4je8JlR02ug2cLQAqmIhh8IJnSK7AcaHBHhNADqdGydnPpQOpsNcEEqCw==", - "dev": true, - "requires": {} - }, - "markdownlint-rule-helpers": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/markdownlint-rule-helpers/-/markdownlint-rule-helpers-0.16.0.tgz", - "integrity": "sha512-oEacRUVeTJ5D5hW1UYd2qExYI0oELdYK72k1TKGvIeYJIbqQWAz476NAc7LNixSySUhcNl++d02DvX0ccDk9/w==", - "dev": true - }, - "mathml-tag-names": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", - "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", - "dev": true - }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", - "dev": true - }, - "meow": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", - "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", - "dev": true, - "requires": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize": "^1.2.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - } - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true - }, - "min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true - }, - "minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "netlify-plugin-submit-sitemap": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/netlify-plugin-submit-sitemap/-/netlify-plugin-submit-sitemap-0.4.0.tgz", - "integrity": "sha512-5ntDtSKZRHaCDrDXh4sH4V7lNEEsoi01lsmSUuqJ/ikPHf0XEErjsKba8TsM3iaZRYEHI9bQse3BWgguwuwIIQ==", - "dev": true, - "requires": { - "node-fetch": "^3.2.3" - }, - "dependencies": { - "node-fetch": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.6.tgz", - "integrity": "sha512-LAy/HZnLADOVkVPubaxHDft29booGglPFDr2Hw0J1AercRh01UiVFm++KMDnJeH9sHgNB4hsXPii7Sgym/sTbw==", - "dev": true, - "requires": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - } - } - } - }, - "node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "dev": true - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", - "dev": true - }, - "normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "requires": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true - }, - "normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object-path": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.8.tgz", - "integrity": "sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==", - "dev": true - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "dev": true - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-github-url": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-github-url/-/parse-github-url-1.0.2.tgz", - "integrity": "sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==", - "dev": true - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "postcss": { - "version": "8.4.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", - "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", - "dev": true, - "requires": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - }, - "postcss-cli": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-10.1.0.tgz", - "integrity": "sha512-Zu7PLORkE9YwNdvOeOVKPmWghprOtjFQU3srMUGbdz3pHJiFh7yZ4geiZFMkjMfB0mtTFR3h8RemR62rPkbOPA==", - "dev": true, - "requires": { - "chokidar": "^3.3.0", - "dependency-graph": "^0.11.0", - "fs-extra": "^11.0.0", - "get-stdin": "^9.0.0", - "globby": "^13.0.0", - "picocolors": "^1.0.0", - "postcss-load-config": "^4.0.0", - "postcss-reporter": "^7.0.0", - "pretty-hrtime": "^1.0.3", - "read-cache": "^1.0.0", - "slash": "^5.0.0", - "yargs": "^17.0.0" - }, - "dependencies": { - "globby": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz", - "integrity": "sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==", - "dev": true, - "requires": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.11", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "dependencies": { - "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true - } - } - }, - "slash": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-5.0.0.tgz", - "integrity": "sha512-n6KkmvKS0623igEVj3FF0OZs1gYYJ0o0Hj939yc1fyxl2xt+xYpLnzJB6xBSqOfV9ZFLEWodBBN/heZJahuIJQ==", - "dev": true - }, - "yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - } - }, - "yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", - "dev": true - } - } - }, - "postcss-load-config": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", - "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", - "dev": true, - "requires": { - "lilconfig": "^2.0.5", - "yaml": "^2.1.1" - }, - "dependencies": { - "yaml": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.1.1.tgz", - "integrity": "sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw==", - "dev": true - } - } - }, - "postcss-media-query-parser": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", - "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", - "dev": true - }, - "postcss-reporter": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.0.5.tgz", - "integrity": "sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==", - "dev": true, - "requires": { - "picocolors": "^1.0.0", - "thenby": "^1.3.4" - } - }, - "postcss-resolve-nested-selector": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", - "integrity": "sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==", - "dev": true - }, - "postcss-safe-parser": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", - "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", - "dev": true, - "requires": {} - }, - "postcss-scss": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.4.tgz", - "integrity": "sha512-aBBbVyzA8b3hUL0MGrpydxxXKXFZc5Eqva0Q3V9qsBOLEMsjb6w49WfpsoWzpEgcqJGW4t7Rio8WXVU9Gd8vWg==", - "dev": true, - "requires": {} - }, - "postcss-selector-parser": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "purgecss": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-4.1.3.tgz", - "integrity": "sha512-99cKy4s+VZoXnPxaoM23e5ABcP851nC2y2GROkkjS8eJaJtlciGavd7iYAw2V84WeBqggZ12l8ef44G99HmTaw==", - "dev": true, - "requires": { - "commander": "^8.0.0", - "glob": "^7.1.7", - "postcss": "^8.3.5", - "postcss-selector-parser": "^6.0.6" - }, - "dependencies": { - "commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "dev": true - } - } - }, - "purgecss-whitelister": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/purgecss-whitelister/-/purgecss-whitelister-2.4.0.tgz", - "integrity": "sha512-O0jBUDtY9dU9tUT0vA1FvwFdkKDerxzteYaBV49JCbm+QJLFKMlIsf5Kp5cdbLatHQNjJtV8VB8eXtISoZL2Dg==", - "dev": true, - "requires": { - "glob-all": "^3.1.0", - "gonzales-pe": "^4.2.4", - "scss-parser": "1.0.3" - } - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true - }, - "read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, - "requires": { - "pify": "^2.3.0" - } - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", - "dev": true, - "requires": { - "resolve": "^1.1.6" - } - }, - "redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, - "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - } - }, - "regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", - "dev": true, - "requires": { - "regenerate": "^1.4.2" - } - }, - "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "dev": true - }, - "regenerator-transform": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", - "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.4" - } - }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, - "regexpu-core": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.1.0.tgz", - "integrity": "sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA==", - "dev": true, - "requires": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - } - }, - "regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", - "dev": true - }, - "regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true - } - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "dev": true - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "responselike": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", - "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", - "dev": true, - "requires": { - "lowercase-keys": "^2.0.0" - } - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "scss-parser": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/scss-parser/-/scss-parser-1.0.3.tgz", - "integrity": "sha512-XQKCfOJERmhn1yoNRUyxv9wgkf4DIv29Jk0m4FiZforeiCmGxrby8K3not7tQ8GK1yvtd9N0OnNimNetJ8V+zQ==", - "dev": true, - "requires": { - "invariant": "2.2.2", - "lodash": "^4.17.4" - } - }, - "seek-bzip": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", - "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", - "dev": true, - "requires": { - "commander": "^2.8.1" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - } - } - }, - "select": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", - "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "dev": true, - "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - } - }, - "shx": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz", - "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==", - "dev": true, - "requires": { - "minimist": "^1.2.3", - "shelljs": "^0.8.5" - } - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true - }, - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - } - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", - "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", - "dev": true, - "requires": { - "is-natural-number": "^4.0.1" - } - }, - "strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, - "requires": { - "min-indent": "^1.0.0" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "style-search": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", - "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==", - "dev": true - }, - "stylelint": { - "version": "14.9.1", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.9.1.tgz", - "integrity": "sha512-RdAkJdPiLqHawCSnu21nE27MjNXaVd4WcOHA4vK5GtIGjScfhNnaOuWR2wWdfKFAvcWQPOYe311iveiVKSmwsA==", - "dev": true, - "requires": { - "@csstools/selector-specificity": "^2.0.1", - "balanced-match": "^2.0.0", - "colord": "^2.9.2", - "cosmiconfig": "^7.0.1", - "css-functions-list": "^3.1.0", - "debug": "^4.3.4", - "execall": "^2.0.0", - "fast-glob": "^3.2.11", - "fastest-levenshtein": "^1.0.12", - "file-entry-cache": "^6.0.1", - "get-stdin": "^8.0.0", - "global-modules": "^2.0.0", - "globby": "^11.1.0", - "globjoin": "^0.1.4", - "html-tags": "^3.2.0", - "ignore": "^5.2.0", - "import-lazy": "^4.0.0", - "imurmurhash": "^0.1.4", - "is-plain-object": "^5.0.0", - "known-css-properties": "^0.25.0", - "mathml-tag-names": "^2.1.3", - "meow": "^9.0.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.14", - "postcss-media-query-parser": "^0.2.3", - "postcss-resolve-nested-selector": "^0.1.1", - "postcss-safe-parser": "^6.0.0", - "postcss-selector-parser": "^6.0.10", - "postcss-value-parser": "^4.2.0", - "resolve-from": "^5.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "style-search": "^0.1.0", - "supports-hyperlinks": "^2.2.0", - "svg-tags": "^1.0.0", - "table": "^6.8.0", - "v8-compile-cache": "^2.3.0", - "write-file-atomic": "^4.0.1" - }, - "dependencies": { - "balanced-match": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", - "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", - "dev": true - }, - "get-stdin": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", - "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", - "dev": true - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } - } - }, - "stylelint-config-recommended": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-7.0.0.tgz", - "integrity": "sha512-yGn84Bf/q41J4luis1AZ95gj0EQwRX8lWmGmBwkwBNSkpGSpl66XcPTulxGa/Z91aPoNGuIGBmFkcM1MejMo9Q==", - "dev": true, - "requires": {} - }, - "stylelint-config-recommended-scss": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-6.0.0.tgz", - "integrity": "sha512-6QOe2/OzXV2AP5FE12A7+qtKdZik7Saf42SMMl84ksVBBPpTdrV+9HaCbPYiRMiwELY9hXCVdH4wlJ+YJb5eig==", - "dev": true, - "requires": { - "postcss-scss": "^4.0.2", - "stylelint-config-recommended": "^7.0.0", - "stylelint-scss": "^4.0.0" - } - }, - "stylelint-config-standard": { - "version": "25.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-25.0.0.tgz", - "integrity": "sha512-21HnP3VSpaT1wFjFvv9VjvOGDtAviv47uTp3uFmzcN+3Lt+RYRv6oAplLaV51Kf792JSxJ6svCJh/G18E9VnCA==", - "dev": true, - "requires": { - "stylelint-config-recommended": "^7.0.0" - } - }, - "stylelint-config-standard-scss": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-4.0.0.tgz", - "integrity": "sha512-xizu8PTEyB6zYXBiVg6VtvUYn9m57x+6ZtaOdaxsfpbe5eagLPGNlbYnKfm/CfN69ArUpnwR6LjgsTHzlGbtXQ==", - "dev": true, - "requires": { - "stylelint-config-recommended-scss": "^6.0.0", - "stylelint-config-standard": "^25.0.0" - } - }, - "stylelint-scss": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.3.0.tgz", - "integrity": "sha512-GvSaKCA3tipzZHoz+nNO7S02ZqOsdBzMiCx9poSmLlb3tdJlGddEX/8QzCOD8O7GQan9bjsvLMsO5xiw6IhhIQ==", - "dev": true, - "requires": { - "lodash": "^4.17.21", - "postcss-media-query-parser": "^0.2.3", - "postcss-resolve-nested-selector": "^0.1.1", - "postcss-selector-parser": "^6.0.6", - "postcss-value-parser": "^4.1.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "svg-tags": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", - "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", - "dev": true - }, - "table": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", - "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", - "dev": true, - "requires": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } - } - }, - "tar-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", - "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", - "dev": true, - "requires": { - "bl": "^1.0.0", - "buffer-alloc": "^1.2.0", - "end-of-stream": "^1.0.0", - "fs-constants": "^1.0.0", - "readable-stream": "^2.3.0", - "to-buffer": "^1.1.1", - "xtend": "^4.0.0" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "thenby": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", - "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "tiny-emitter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", - "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==", - "dev": true - }, - "to-buffer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", - "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true - }, - "uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", - "dev": true - }, - "uglify-js": { - "version": "3.16.2", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.16.2.tgz", - "integrity": "sha512-AaQNokTNgExWrkEYA24BTNMSjyqEXPSfhqoS0AxmHkCJ4U+Dyy5AvbGV/sqxuxficEfGGoX3zWw9R7QpLFfEsg==", - "dev": true, - "optional": true - }, - "unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "dev": true, - "requires": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, - "unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true - }, - "unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", - "dev": true - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true - }, - "update-browserslist-db": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz", - "integrity": "sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "web-streams-polyfill": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", - "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", - "dev": true - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", - "dev": true - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "write-file-atomic": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", - "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - } - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true - }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dev": true, - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index 19e180f7..00000000 --- a/package.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "name": "doks-child-theme", - "description": "Doks child theme", - "version": "0.5.0", - "engines": { - "node": ">=16.16.0" - }, - "browserslist": [ - "defaults" - ], - "repository": "https://github.com/h-enk/doks", - "license": "MIT", - "publishConfig": { - "access": "public" - }, - "scripts": { - "init": "shx rm -rf .git && git init -b main", - "create": "exec-bin node_modules/.bin/hugo/hugo new", - "prestart": "npm run clean", - "start": "exec-bin node_modules/.bin/hugo/hugo server --bind=0.0.0.0 --disableFastRender", - "prebuild": "npm run clean", - "build": "exec-bin node_modules/.bin/hugo/hugo --gc --minify", - "build:preview": "npm run build -D -F", - "clean": "shx rm -rf public resources", - "clean:install": "shx rm -rf package-lock.json node_modules ", - "lint": "npm run -s lint:scripts && npm run -s lint:styles && npm run -s lint:markdown", - "lint:scripts": "eslint assets/js config functions", - "lint:styles": "stylelint \"assets/scss/**/*.{css,sass,scss,sss,less}\"", - "lint:markdown": "markdownlint-cli2 \"*.md\" \"content/**/*.md\"", - "lint:markdown-fix": "markdownlint-cli2-fix \"*.md\" \"content/**/*.md\"", - "server": "exec-bin node_modules/.bin/hugo/hugo server", - "test": "npm run -s lint", - "env": "env", - "precheck": "npm version", - "check": "exec-bin node_modules/.bin/hugo/hugo version", - "copy:katex-fonts": "shx cp ./node_modules/katex/dist/fonts/* ./static/fonts/", - "postinstall": "hugo-installer --version otherDependencies.hugo --extended --destination node_modules/.bin/hugo", - "version": "auto-changelog -p && git add CHANGELOG.md" - }, - "devDependencies": { - "@babel/cli": "^7.18", - "@babel/core": "^7.18", - "@babel/preset-env": "^7.18", - "@fullhuman/postcss-purgecss": "^4.1", - "@hyas/doks": "^0.5", - "@hyas/images": "^0.2.1", - "auto-changelog": "^2.4.0", - "autoprefixer": "^10.4", - "bootstrap": "^5.1", - "clipboard": "^2.0", - "eslint": "^8.19", - "exec-bin": "^1.0.0", - "flexsearch": "^0.7.21", - "highlight.js": "^11.5", - "hugo-installer": "^3.1", - "instant.page": "^5.1", - "katex": "^0.16", - "lazysizes": "^5.3", - "markdownlint-cli2": "^0.4.0", - "netlify-plugin-submit-sitemap": "^0.4.0", - "postcss": "^8.4", - "postcss-cli": "^10.1.0", - "purgecss-whitelister": "^2.4", - "shx": "^0.3.4", - "stylelint": "^14.9", - "stylelint-config-standard-scss": "^4.0" - }, - "otherDependencies": { - "hugo": "0.101.0" - } -} diff --git a/pdf/linux-book.pdf b/pdf/linux-book.pdf deleted file mode 100644 index 4aab295a..00000000 Binary files a/pdf/linux-book.pdf and /dev/null differ diff --git a/robots.txt b/robots.txt new file mode 100644 index 00000000..2203ee3a --- /dev/null +++ b/robots.txt @@ -0,0 +1,4 @@ +User-agent: * +Allow: / + +Sitemap: https://ubunchuu-truong-us.github.io/sitemap.xml \ No newline at end of file diff --git a/site.webmanifest b/site.webmanifest new file mode 100644 index 00000000..d641eb71 --- /dev/null +++ b/site.webmanifest @@ -0,0 +1 @@ +{"name":"Doks Theme","short_name":"Doks","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#fff","background_color":"#fff","display":"standalone"} \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 00000000..7e67c8c5 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1 @@ +https://ubunchuu-truong-us.github.io/docs/linux-overview/2023-06-01T15:39:22+07:00weekly0.5https://ubunchuu-truong-us.github.io/docs/linux-distribution/2023-06-01T15:39:22+07:00weekly0.5https://ubunchuu-truong-us.github.io/docs/installation-guide/2023-06-01T15:39:22+07:00weekly0.5https://ubunchuu-truong-us.github.io/docs/15dfwt/2023-06-01T15:39:22+07:00weekly0.5https://ubunchuu-truong-us.github.io/docs/gi%E1%BB%9Bi-thi%E1%BB%87u-v%E1%BB%81-linux/2024-01-01T13:52:22+07:00weekly0.5https://ubunchuu-truong-us.github.io/docs/v%C3%AC-sao-n%C3%AAn-s%E1%BB%AD-d%E1%BB%A5ng-linux/2024-01-01T13:52:22+07:00weekly0.5https://ubunchuu-truong-us.github.io/docs/so-s%C3%A1nh-linux-v%E1%BB%9Bi-c%C3%A1c-h%E1%BB%87-%C4%91i%E1%BB%81u-h%C3%A0nh-kh%C3%A1c/2024-01-01T13:52:22+07:00weekly0.5https://ubunchuu-truong-us.github.io/docs/t%C3%ACm-hi%E1%BB%83u-chung-v%E1%BB%81-linux-distro/2024-01-01T13:52:22+07:00weekly0.5https://ubunchuu-truong-us.github.io/docs/ch%E1%BB%8Dn-ra-distro-ph%C3%B9-h%E1%BB%A3p-nh%E1%BA%A5t-v%E1%BB%9Bi-m%C3%ACnh/2023-06-01T15:39:22+07:00weekly0.5https://ubunchuu-truong-us.github.io/docs/c%C3%A0i-%C4%91%E1%BA%B7t-ubuntu-clean-install/2024-01-01T14:06:03+07:00weekly0.5https://ubunchuu-truong-us.github.io/docs/c%C3%A0i-%C4%91%E1%BA%B7t-ubuntu-cho-ng%C6%B0%E1%BB%9Di-d%C3%B9ng-song-song-v%E1%BB%9Bi-windows/2024-01-01T14:06:03+07:00weekly0.5https://ubunchuu-truong-us.github.io/docs/c%C3%A0i-%C4%91%E1%BA%B7t-v%C3%A0-%C4%91%E1%BB%93ng-b%E1%BB%99-onedrive-cho-linux/2024-01-16T14:34:23+07:00weekly0.5https://ubunchuu-truong-us.github.io/docs/day-0-ch%C3%A0o-m%E1%BB%ABng-%C4%91%E1%BA%BFn-v%E1%BB%9Bi-linux/2024-01-16T14:34:23+07:00weekly0.5https://ubunchuu-truong-us.github.io/docs/day-1-c%C3%A2u-l%E1%BB%87nh-c%C6%A1-b%E1%BA%A3n-v%E1%BB%9Bi-terminal/2024-01-16T14:34:23+07:00weekly0.5https://ubunchuu-truong-us.github.io/contributors/thangbuiq/2024-01-16T14:34:23+07:00weekly0.5https://ubunchuu-truong-us.github.io/docs/day-2-c%E1%BA%A5u-h%C3%ACnh-terminal-emulator/2024-01-01T13:52:22+07:00weekly0.5https://ubunchuu-truong-us.github.io/contributors/lelouvincx/2024-01-16T14:34:23+07:00weekly0.5https://ubunchuu-truong-us.github.io/contributors/chimlun0910/2024-01-16T14:34:23+07:00weekly0.5https://ubunchuu-truong-us.github.io/docs/2022-12-24T13:17:43+07:00weekly0.5https://ubunchuu-truong-us.github.io/contributors/lelouvincx-thangbuiq-chimlun0910/2024-01-01T14:06:03+07:00weekly0.5https://ubunchuu-truong-us.github.io/2022-12-24T13:17:43+07:00weekly0.5https://ubunchuu-truong-us.github.io/contributors/henk-verlinde/2022-12-24T13:17:43+07:00weekly0.5https://ubunchuu-truong-us.github.io/contributors/2022-12-24T13:17:43+07:00weekly0.5https://ubunchuu-truong-us.github.io/categories/weekly0.5https://ubunchuu-truong-us.github.io/tags/weekly0.5 \ No newline at end of file diff --git a/tags/index.html b/tags/index.html new file mode 100644 index 00000000..57787703 --- /dev/null +++ b/tags/index.html @@ -0,0 +1,9 @@ +Tags Ubunchuu Trường Ú

Tags

+ + + + + \ No newline at end of file diff --git a/tags/index.xml b/tags/index.xml new file mode 100644 index 00000000..5b789c5f --- /dev/null +++ b/tags/index.xml @@ -0,0 +1 @@ +Tags onhttps://ubunchuu-truong-us.github.io/tags/Recent content in Tags onHugo -- gohugo.io \ No newline at end of file diff --git a/tags/page/1/index.html b/tags/page/1/index.html new file mode 100644 index 00000000..ccfd548e --- /dev/null +++ b/tags/page/1/index.html @@ -0,0 +1 @@ +https://ubunchuu-truong-us.github.io/tags/ \ No newline at end of file diff --git a/theme.toml b/theme.toml deleted file mode 100644 index dd525df0..00000000 --- a/theme.toml +++ /dev/null @@ -1,14 +0,0 @@ -name = "Doks child theme" -license = "MIT" -licenselink = "https://github.com/h-enk/doks/blob/master/LICENSE" -description = "Hugo theme helping you build modern documentation websites that are secure, fast, and SEO-ready — by default." - -homepage = "https://github.com/h-enk/doks-child-theme" -demosite = "https://doks-child-theme.netlify.app" - -tags = ["landing page", "documentation", "blog", "minimal", "modern", "customizable", "search", "dark mode", "bootstrap"] -features = ["security aware", "fast by default", "seo-ready", "development tools", "bootstrap framework", "netlify-ready", "full text search", "page layouts", "dark mode"] - -[author] - name = "Henk Verlinde" - homepage = "https://henkverlinde.com" diff --git a/videos/flower.mp4 b/videos/flower.mp4 new file mode 100644 index 00000000..bd91051d Binary files /dev/null and b/videos/flower.mp4 differ diff --git a/videos/flower.webm b/videos/flower.webm new file mode 100644 index 00000000..5b8edf7d Binary files /dev/null and b/videos/flower.webm differ